From admin at opensuse.org Thu Apr 1 01:38:15 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 01 Apr 2021 01:38:15 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <606524201e57d_3cfe2b26f3f885f01789a8@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: [ 122s] [COMPILING libboard/qmod/source/board_qmod.c] [ 122s] [COMPILING libboard/qmod/source/card_pres.c] [ 122s] [COMPILING libboard/qmod/source/i2c.c] [ 122s] [COMPILING libboard/qmod/source/wwan_led.c] [ 122s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 122s] [COMPILING apps/dfu/main.c] [ 123s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 123s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 123s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 123s] Memory region Used Size Region Size %age Used [ 123s] rom: 16592 B 16 KB 101.27% [ 123s] ram: 11680 B 48 KB 23.76/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' [ 123s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 208 bytes [ 123s] collect2: error: ld returned 1 exit status [ 123s] % [ 123s] make[2]: *** [Makefile:230: flash] Error 1 [ 123s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 123s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 123s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 123s] dh_auto_build: error: make -j1 returned exit code 2 [ 123s] make: *** [debian/rules:16: build] Error 25 [ 123s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 123s] ### VM INTERACTION START ### [ 126s] [ 114.209398] sysrq: Power Off [ 126s] [ 114.212219] reboot: Power down [ 126s] ### VM INTERACTION END ### [ 126s] [ 126s] wildcard2 failed "build simtrace2_0.7.0.76.62ad.dsc" at Thu Apr 1 01:38:12 UTC 2021. [ 126s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Apr 1 01:39:57 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 01 Apr 2021 01:39:57 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <606524795dfe6_3cfe2b26f3f885f017923d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 119s] [COMPILING apps/dfu/main.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 119s] Memory region Used Size Region Size %age Used [ 119s] rom: 16600 B 16 KB 101.32% [ 119s] ram: 11688 B 48 KB 23.78/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 216 bytes [ 119s] collect2: error: ld returned 1 exit status [ 119s] % [ 119s] make[2]: *** [Makefile:230: 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.164843] sysrq: Power Off [ 122s] [ 112.171717] reboot: Power down [ 122s] ### VM INTERACTION END ### [ 122s] [ 122s] sheep87 failed "build simtrace2_0.7.0.76.62ad.dsc" at Thu Apr 1 01:39:47 UTC 2021. [ 122s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Apr 1 08:06:25 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 08:06:25 +0000 Subject: Change in pysim[master]: ts_102_221: use keywords to avoid conflicts with positional args In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23563 ) Change subject: ts_102_221: use keywords to avoid conflicts with positional args ...................................................................... ts_102_221: use keywords to avoid conflicts with positional args The Change I83d718ff9c3ff6aef47930f38d7f50424f9b880f removes the keyword arguments from the CardProfile class constructor. This requires us to use the keywords during instantiation since we can not rely on the position anymore. Change-Id: Ia62597c59287848662dbbedcc38ba90f183c4aca --- M pySim/ts_102_221.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/pySim/ts_102_221.py b/pySim/ts_102_221.py index 256a697..b8fce1b 100644 --- a/pySim/ts_102_221.py +++ b/pySim/ts_102_221.py @@ -294,4 +294,4 @@ }, } - super().__init__('UICC', 'ETSI TS 102 221', files, sw) + super().__init__('UICC', desc='ETSI TS 102 221', files_in_mf=files, sw=sw) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia62597c59287848662dbbedcc38ba90f183c4aca Gerrit-Change-Number: 23563 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 08:51:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 08:51:21 +0000 Subject: Change in docker-playground[master]: ogt: Add support to build open5gs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23562 ) Change subject: ogt: Add support to build open5gs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id329726f93251b617219beeb674046065c30a436 Gerrit-Change-Number: 23562 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 08:51: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 Apr 1 13:18:06 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 13:18:06 +0000 Subject: Change in pysim[master]: commands: conserve write cycles In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23539 ) Change subject: commands: conserve write cycles ...................................................................... Patch Set 2: > Patch Set 1: > > I think the name is not very self-explanatory. > > Some random ideas: > conserve_write_cycles? > verify_before_write? > write_only_if_different? > skip_useless_writes? Do you mean the name of the set variable? Unfortunately it is difficult to pick a good name here. Its not about verifying, apart from that the parameter "verify" is already used by the actual verify functionality. I also wanted to keep it short. We could pick "conserve_write_cycles" as set variable, but its long. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ifd1b80d3ede15a7caa29077a37ac7cf58c9053f1 Gerrit-Change-Number: 23539 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 13:18: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 Thu Apr 1 13:37:32 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 13:37:32 +0000 Subject: Change in pysim[master]: pySim-shell: add availability check for elementry files In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/23403 ) Change subject: pySim-shell: add availability check for elementry files ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9248e2fc067f822d9c4ccc4e48d378eea9ce3354 Gerrit-Change-Number: 23403 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 13:51:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:51:57 +0000 Subject: Change in pysim[master]: commands: conserve write cycles In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23539 ) Change subject: commands: conserve write cycles ...................................................................... Patch Set 2: > > Some random ideas: > > conserve_write_cycles? > > verify_before_write? > > write_only_if_different? > > skip_useless_writes? > > Do you mean the name of the set variable? Unfortunately it is difficult to pick a good name here. Its not about verifying, apart from that the parameter "verify" is already used by the actual verify functionality. I also wanted to keep it short. We could pick "conserve_write_cycles" as set variable, but its long. I think most users would benefit from an undeerstandable name, rather than a short one that is difficult to understand. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ifd1b80d3ede15a7caa29077a37ac7cf58c9053f1 Gerrit-Change-Number: 23539 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 13:51: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 Thu Apr 1 13:52:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:52:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Provider_IPL4: Implement new "endpoint" mode In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23542 ) Change subject: NS_Provider_IPL4: Implement new "endpoint" mode ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05a50b966b8ce93497372ca403d40fd383dd35f7 Gerrit-Change-Number: 23542 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 01 Apr 2021 13: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 Thu Apr 1 13:52:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:52:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Use the "endpoint" mode of NS_Provider_IPL4 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23543 ) Change subject: NS_Emulation: Use the "endpoint" mode of NS_Provider_IPL4 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id7360f17e528706e8145d33a14550789d50cded9 Gerrit-Change-Number: 23543 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 01 Apr 2021 13:52: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 Apr 1 13:52:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:52:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Use endpoint list for SNS-CONFIG payload In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23544 ) Change subject: NS_Emulation: Use endpoint list for SNS-CONFIG payload ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ifa91510430a017fa29592a3d5fa2a3697d29c9da Gerrit-Change-Number: 23544 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: Thu, 01 Apr 2021 13:52:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 13:52:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:52:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Generalize as_count_bvc_block() into as_count_bvc_sts() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23547 ) Change subject: gbproxy: Generalize as_count_bvc_block() into as_count_bvc_sts() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I33ceace527d6a0cd816fb4e042fdcffd8f0dd23f Gerrit-Change-Number: 23547 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: Thu, 01 Apr 2021 13: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 Thu Apr 1 13:52:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:52:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Make f_{block, unblock}_ptp_bvc_from_pcu handle multiple SGSNs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23548 ) Change subject: Make f_{block,unblock}_ptp_bvc_from_pcu handle multiple SGSNs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8c3ec4e00b78cff40ac72bc857161fa7abc352b0 Gerrit-Change-Number: 23548 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: Thu, 01 Apr 2021 13:52:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 13:52:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:52:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Provider_IPL4: Implement new "endpoint" mode In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23542 ) Change subject: NS_Provider_IPL4: Implement new "endpoint" mode ...................................................................... NS_Provider_IPL4: Implement new "endpoint" mode This adds a new, optional "endpoint" mode to the IPL4 provider, where we remove the constraint of "one NSVC per provider", which in turn is a pre-requirement for real IP-SNS support with full mesh of NS-VCs. This code doesn't introduce any users of this "endpoint" mode yet. Change-Id: I05a50b966b8ce93497372ca403d40fd383dd35f7 --- M library/NS_Provider_IPL4.ttcn 1 file changed, 142 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/NS_Provider_IPL4.ttcn b/library/NS_Provider_IPL4.ttcn index 9d72075..33f3529 100644 --- a/library/NS_Provider_IPL4.ttcn +++ b/library/NS_Provider_IPL4.ttcn @@ -1,5 +1,5 @@ /* NS Provider for NS/UDP/IP - * (C) 2020 Harald Welte + * (C) 2020-2021 Harald Welte * contributions by sysmocom - s.f.m.c. GmbH * All rights reserved. * @@ -9,43 +9,144 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ +/* This provider can be operated in two modes: + * + * 1) the "classic" mode, where - similar to the NS_Provider_FR - there is + * only one NSVC per provider. In this mode, the "NSE" port is used to + * exchange data with the next higher level component, such as a NSVC_CT + * or a RAW_NS_CT. + * + * 2) the enew "endpoint" mode, where one provider can host a number of different + * NSVCs. This is needed in most non-trivial IP-SNS scenarios. The 'NSE' + * port of this component is no longer used. Instead, there is a NSVC port + * array, one of which will be used for each NSVC. The NSVCs are dynamically + * added and removed via the PROC procedure port, controlled by NS_CT. + */ + module NS_Provider_IPL4 { +import from Misc_Helpers all; import from NS_Emulation all; import from NS_Types all; import from IPL4asp_Types all; import from IPL4asp_PortType all; +/* maximum number of NS-VCs within one Provider (== IP endpoint) */ +private const integer NUM_MAX_NSVC := 16; + type component NS_Provider_IPL4_CT extends NS_Provider_CT { /* down-facing port towards IPL4asp to IUT */ port IPL4asp_PT IPL4; var integer g_conn_id := -1; + + /* per-NSVC ports and state */ + port NS_PROVIDER_PT NSVC[NUM_MAX_NSVC]; + var PerNsvcState g_nsvc[NUM_MAX_NSVC]; + + /* management port via which */ + port NSPIP_PROC_PT PROC; }; -function main(NSVCConfiguration config, NSConfiguration nsconfig, charstring id) runs on NS_Provider_IPL4_CT { +type record PerNsvcState { + charstring remote_ip, + PortNumber remote_port, + NSVC_CT vc_nsvc +}; - /* connect socket */ +signature NSPIP_add_nsvc(charstring remote_ip, PortNumber remote_port, NSVC_CT vc_nsvc); +signature NSPIP_del_nsvc(charstring remote_ip, PortNumber remote_port); + +type port NSPIP_PROC_PT procedure { + inout NSPIP_add_nsvc, NSPIP_del_nsvc; +} with { extension "internal" }; + +/* add a new NSVC to the provider */ +private function f_nsvc_add(PerNsvcState nsvc) runs on NS_Provider_IPL4_CT +{ + for (var integer i := 0; i < sizeof(g_nsvc); i := i+1) { + if (g_nsvc[i].vc_nsvc == null) { + g_nsvc[i] := nsvc; + connect(self:NSVC[i], nsvc.vc_nsvc:NSCP); + NSVC[i].send(NS_Provider_Evt:{link_status := NS_PROV_LINK_STATUS_UP}); + return; + } + } + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Overflow of g_nsvc array")); +} + +private function f_nsvc_del(PerNsvcState nsvc) runs on NS_Provider_IPL4_CT +{ + for (var integer i := 0; i < sizeof(g_nsvc); i := i+1) { + if (g_nsvc[i].vc_nsvc != null and + g_nsvc[i].remote_ip == nsvc.remote_ip and + g_nsvc[i].remote_port == nsvc.remote_port) { + g_nsvc[i] := { + remote_ip := -, + remote_port := -, + vc_nsvc := null + } + NSVC[i].send(NS_Provider_Evt:{link_status := NS_PROV_LINK_STATUS_DOWN}); + disconnect(self:NSVC[i], nsvc.vc_nsvc:NSCP); + return; + } + } + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("attempt to delete unknown NSVC")); +} + +private function f_get_nsvc_idx(charstring remote_ip, PortNumber remote_port) +runs on NS_Provider_IPL4_CT return integer +{ + for (var integer i := 0; i < sizeof(g_nsvc); i := i+1) { + if (g_nsvc[i].vc_nsvc != null and + g_nsvc[i].remote_ip == remote_ip and g_nsvc[i].remote_port == remote_port) { + return i; + } + } + return -1; +} + +function main(NSVCConfiguration config, NSConfiguration nsconfig, charstring id) runs on NS_Provider_IPL4_CT { + for (var integer i := 0; i < sizeof(g_nsvc); i := i+1) { + g_nsvc[i].vc_nsvc := null; + } + + /* in order to support any number of NSVC on this endpoiint, we only bind the socket + * to its local ip/port, but do not connect it to the remote peer provided in 'config'. */ map(self:IPL4, system:IPL4); - var Result res := f_IPL4_connect(IPL4, config.provider.ip.remote_ip, - config.provider.ip.remote_udp_port, - config.provider.ip.local_ip, - config.provider.ip.local_udp_port, 0, { udp := {}}); + var Result res := f_IPL4_listen(IPL4, config.provider.ip.local_ip, + config.provider.ip.local_udp_port, { udp := {}}); if (not ispresent(res.connId)) { setverdict(fail, "Could not connect NS UDP socket ", config.provider.ip); mtc.stop; } g_conn_id := res.connId; - NSE.send(NS_Provider_Evt:{link_status := NS_PROV_LINK_STATUS_UP}); + + if (NSE.checkstate("Connected")) { + NSE.send(NS_Provider_Evt:{link_status := NS_PROV_LINK_STATUS_UP}); + } /* transceive between user-facing port and UDP socket */ while (true) { var ASP_RecvFrom rx_rf; var PDU_NS rx_pdu; + var integer rx_idx; + var charstring remote_ip; + var PortNumber remote_port; + var NSVC_CT vc_nsvc; + var NS_CT vc_caller; alt { [] IPL4.receive(ASP_RecvFrom:?) -> value rx_rf { - NSE.send(dec_PDU_NS(rx_rf.msg)); + /* we have to resolve the NS-VC based on the remote peer */ + var integer nsvc_idx := f_get_nsvc_idx(rx_rf.remName, rx_rf.remPort); + if (nsvc_idx == -1) { + /* backwards compatibility; if there's no NSVC, send to NSE port */ + NSE.send(dec_PDU_NS(rx_rf.msg)); + } else { + /* endpoint mode; send to the per-NSVC component via NSVC port */ + NSVC[nsvc_idx].send(dec_PDU_NS(rx_rf.msg)); + } } [] IPL4.receive(ASP_ConnId_ReadyToRelease:?) { @@ -54,8 +155,39 @@ [] IPL4.receive(ASP_Event:?) { } + [] any from NSVC.receive(PDU_NS:?) -> value rx_pdu @index value rx_idx { + /* we can use the port array index directly into the g_nsvc array in order + * to resolve the IP + port of the remote peer to which to send */ + var ASP_SendTo tx := { + connId := g_conn_id, + remName := g_nsvc[rx_idx].remote_ip, + remPort := g_nsvc[rx_idx].remote_port, + proto := { udp := {} }, + msg := enc_PDU_NS(rx_pdu) + }; + IPL4.send(tx); + } [] NSE.receive(PDU_NS:?) -> value rx_pdu { - IPL4.send(ASP_Send:{connId := g_conn_id, proto := { udp := {} }, msg := enc_PDU_NS(rx_pdu)}); + /* backwards compatibility: If user uses the NSE port, use the destination + * provided during main() initialization */ + var ASP_SendTo tx := { + connId := g_conn_id, + remName := config.provider.ip.remote_ip, + remPort := config.provider.ip.remote_udp_port, + proto := { udp := {} }, + msg := enc_PDU_NS(rx_pdu) + }; + IPL4.send(tx); + } + + /* procedure port to add/remove NSVCs from this provider */ + [] PROC.getcall(NSPIP_add_nsvc:{?,?,?}) -> param (remote_ip, remote_port, vc_nsvc) sender vc_caller { + f_nsvc_add(PerNsvcState:{remote_ip, remote_port, vc_nsvc}); + PROC.reply(NSPIP_add_nsvc:{remote_ip, remote_port, vc_nsvc}) to vc_caller; + } + [] PROC.getcall(NSPIP_del_nsvc:{?,?}) -> param (remote_ip, remote_port) sender vc_caller { + f_nsvc_del(PerNsvcState:{remote_ip, remote_port}); + PROC.reply(NSPIP_del_nsvc:{remote_ip, remote_port}) to vc_caller; } } /* alt */ @@ -63,6 +195,4 @@ } /* main */ - - } /* module */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05a50b966b8ce93497372ca403d40fd383dd35f7 Gerrit-Change-Number: 23542 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 13:52:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:52:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Use the "endpoint" mode of NS_Provider_IPL4 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23543 ) Change subject: NS_Emulation: Use the "endpoint" mode of NS_Provider_IPL4 ...................................................................... NS_Emulation: Use the "endpoint" mode of NS_Provider_IPL4 Thew newly-introduced "endpoint" mode of NS_Provider_IPL4 allows us to have multiple NS-VC within one endpoint. NS_CT takes care of creating the NS_Provider_IPL4 components on-the-fly, and then associating the per-NSVC components with it. For the user nothing changes, other than that he can now configure multiple NSVCs with identical local IP + port, which was not possible before. Change-Id: Id7360f17e528706e8145d33a14550789d50cded9 --- M library/NS_Emulation.ttcnpp M library/NS_Provider_IPL4.ttcn 2 files changed, 92 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 38f132a..85869da 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -214,6 +214,11 @@ var NSConfiguration g_config; var charstring g_id; + /* references to the endpoint provider components */ + var IpEndpointTable g_ip_endpoints := {}; + /* control port for NS-IP provider */ + port NSPIP_PROC_PT NSPIP_PROC; + /* references to the per-NSVC components */ var NsvcTable g_nsvcs := {}; /* list of indexes to g_nsvcs[] of currently unblocked NSVCs */ @@ -226,6 +231,17 @@ NsvcState state }; type record of NsvcTableEntry NsvcTable; + type record IpEndpointTableEntry { + /* configuration */ + AddressFamily address_family, + PortNumber local_udp_port, + charstring local_ip, + uint8_t data_weight, + uint8_t signalling_weight, + /* state */ + NS_Provider_IPL4_CT provider_ct + }; + type record of IpEndpointTableEntry IpEndpointTable; /* internal port from the NS-VC point of view */ type port NSint_SP_PT message { @@ -267,20 +283,82 @@ ForceAliveState (3) }; + function f_ipep_find(AddressFamily af, PortNumber local_udp_port, charstring local_ip, + out IpEndpointTableEntry ret) + runs on NS_CT return boolean { + var integer i; + for (i := 0; i < lengthof(g_ip_endpoints); i := i+1) { + var IpEndpointTableEntry ipep := g_ip_endpoints[i]; + if (ipep.address_family == af and ipep.local_udp_port == local_udp_port and + ipep.local_ip == local_ip) { + ret := ipep; + return true; + } + } + return false + } + + /* find or create IP endpoint component for [local part of] nsvc_cfg */ + function f_ipep_find_or_create(NSVCConfiguration nsvc_cfg) + runs on NS_CT return NS_Provider_IPL4_CT { + var IpEndpointTableEntry ipep; + if (f_ipep_find(nsvc_cfg.provider.ip.address_family, + nsvc_cfg.provider.ip.local_udp_port, + nsvc_cfg.provider.ip.local_ip, ipep)) { + return ipep.provider_ct; + } else { + var charstring nsvc_id := g_id & "-NSVCI" & int2str(nsvc_cfg.nsvci); + ipep := { + address_family := nsvc_cfg.provider.ip.address_family, + local_udp_port := nsvc_cfg.provider.ip.local_udp_port, + local_ip := nsvc_cfg.provider.ip.local_ip, + data_weight := nsvc_cfg.provider.ip.data_weight, + signalling_weight := nsvc_cfg.provider.ip.signalling_weight, + provider_ct := - + }; + /* Create ipep and add it to the list */ + log("Creating NSIP provider for ", ipep.local_ip, ":", + ipep.local_udp_port); + ipep.provider_ct := NS_Provider_IPL4_CT.create(nsvc_id & "-provIP"); + connect(self:NSPIP_PROC, ipep.provider_ct:PROC); + ipep.provider_ct.start(NS_Provider_IPL4.main(nsvc_cfg, g_config, nsvc_id)); + g_ip_endpoints := g_ip_endpoints & { ipep }; + return ipep.provider_ct; + } + } + /* add one NSVC (component and table entry */ function f_nsvc_add(NSVCConfiguration nsvc_cfg) runs on NS_CT { var charstring nsvc_id := g_id & "-NSVCI" & int2str(nsvc_cfg.nsvci); var NsvcTableEntry te; + var NS_Provider_IPL4_CT vc_ipep := null; + + /* For the IP provider, we have one provider component per local endpoint, + * which we must create before adding the NSVcs (for each remote endpoint) + * to it */ + if (ischosen(nsvc_cfg.provider.ip)) { + vc_ipep := f_ipep_find_or_create(nsvc_cfg); + } + + /* Start the actual NSVC component */ te.cfg := nsvc_cfg; te.vc_conn := NSVC_CT.create(nsvc_id); te.state := NSVC_S_DEAD_BLOCKED; connect(self:NSVC, te.vc_conn:NS_SP); - te.vc_conn.start(NSVCStart(nsvc_cfg, g_config, nsvc_id)); + log("Starting NSVC component for ", nsvc_cfg); + te.vc_conn.start(NSVCStart(nsvc_cfg, g_config, nsvc_id, vc_ipep)); g_nsvcs := g_nsvcs & { te }; /* no need to add to g_unblocked_nsvcs, as state is always DEAD_BLOCKED above */ + + /* For the IP provider, we must explicitly associate each NSVC with it */ + if (ischosen(nsvc_cfg.provider.ip)) { + /* this causes NS_Provider_IPL4.f_nsvc_add() to be executed */ + f_nspip_add_nsvc(vc_ipep, nsvc_cfg.provider.ip.remote_ip, + nsvc_cfg.provider.ip.remote_udp_port, te.vc_conn); + } } function f_nsvc_find_idx(Nsvci nsvci) runs on NS_CT return integer { @@ -555,19 +633,18 @@ timer Tns_reset := 10.0; } - function NSVCStart(NSVCConfiguration init_config, NSConfiguration init_g_config, charstring id := testcasename()) runs on NSVC_CT { + function NSVCStart(NSVCConfiguration init_config, NSConfiguration init_g_config, charstring id := +testcasename(), NS_Provider_IPL4_CT nsp_ip := null) runs on NSVC_CT { g_nsvc_config := init_config; g_config := init_g_config; - f_init(id & "-NSVCemu" & int2str(g_nsvc_config.nsvci)); + f_init(id & "-NSVCemu" & int2str(g_nsvc_config.nsvci), nsp_ip); f_ScanEvents(); } - private function f_init(charstring id) runs on NSVC_CT { + private function f_init(charstring id, NS_Provider_IPL4_CT nsp_ip) runs on NSVC_CT { if (ischosen(g_nsvc_config.provider.ip)) { - /* Connect the UDP socket */ - vc_NSP_IP := NS_Provider_IPL4_CT.create(id & "-provIP"); - connect(self:NSCP, vc_NSP_IP:NSE); - vc_NSP_IP.start(NS_Provider_IPL4.main(g_nsvc_config, g_config, id)); + /* the provider already exists; we just associate with it */ + vc_NSP_IP := nsp_ip #ifdef NS_EMULATION_FR } else if (ischosen(g_nsvc_config.provider.fr)) { vc_NSP_FR := NS_Provider_FR_CT.create(id & "-provFR"); diff --git a/library/NS_Provider_IPL4.ttcn b/library/NS_Provider_IPL4.ttcn index 33f3529..8145c13 100644 --- a/library/NS_Provider_IPL4.ttcn +++ b/library/NS_Provider_IPL4.ttcn @@ -195,4 +195,11 @@ } /* main */ +function f_nspip_add_nsvc(NS_Provider_IPL4_CT vc_ipep, charstring remote_ip, PortNumber remote_port, NSVC_CT vc_nsvc) +runs on NS_CT { + NSPIP_PROC.call(NSPIP_add_nsvc:{remote_ip, remote_port, vc_nsvc}) to vc_ipep { + [] NSPIP_PROC.getreply(NSPIP_add_nsvc:{?,?,?}); + } +} + } /* module */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id7360f17e528706e8145d33a14550789d50cded9 Gerrit-Change-Number: 23543 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 13:52:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:52:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Use endpoint list for SNS-CONFIG payload In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23544 ) Change subject: NS_Emulation: Use endpoint list for SNS-CONFIG payload ...................................................................... NS_Emulation: Use endpoint list for SNS-CONFIG payload We used to have no distinction between endpoints and NSVCs, meaning that we could not have more than one NSVC per endpoint, which in turn meant it was ok to iterate the list of NSVCs for generating the endpoint lists in the SNS-CONFIG payload. With Change-Id I05a50b966b8ce93497372ca403d40fd383dd35f7 we remove that constraint and introduce an actual local IP endpoint list. Let's use that one for SNS-CONFIG. Change-Id: Ifa91510430a017fa29592a3d5fa2a3697d29c9da --- M library/NS_Emulation.ttcnpp 1 file changed, 13 insertions(+), 18 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 85869da..d58dc45 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -504,30 +504,25 @@ } } - /* generate a list of v4 + v6 endpoints based on the NSVConfigurations. This is not strictly - * accurate, as we should create a list of _endpoints_, while we actually create a list of - * NSVCs. Those are only identical as long as our peer only implements one endpoint */ + /* generate a list of v4 + v6 endpoints based on the IpEndpointTable */ private function gen_sns_ip_elems(out template (omit) IP4_Elements v4_out, out template (omit) IP6_Elements v6_out) runs on NS_CT { var integer i; var IP4_Elements v4 := {}; var IP6_Elements v6 := {}; - for (i := 0; i < lengthof(g_config.nsvc); i := i + 1) { - var NSVCConfiguration nsvc_cfg := g_config.nsvc[i]; - if (not ischosen(nsvc_cfg.provider.ip)) { - continue; - } - if (nsvc_cfg.provider.ip.address_family == AF_INET) { - v4 := v4 & { valueof(ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, - nsvc_cfg.provider.ip.local_udp_port, - nsvc_cfg.provider.ip.signalling_weight, - nsvc_cfg.provider.ip.data_weight)) }; - } else if (nsvc_cfg.provider.ip.address_family == AF_INET6) { - v6 := v6 & { valueof(ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, - nsvc_cfg.provider.ip.local_udp_port, - nsvc_cfg.provider.ip.signalling_weight, - nsvc_cfg.provider.ip.data_weight)) }; + for (i := 0; i < lengthof(g_ip_endpoints); i := i + 1) { + var IpEndpointTableEntry ipep := g_ip_endpoints[i]; + if (ipep.address_family == AF_INET) { + v4 := v4 & { valueof(ts_SNS_IPv4(ipep.local_ip, + ipep.local_udp_port, + ipep.signalling_weight, + ipep.data_weight)) }; + } else if (ipep.address_family == AF_INET6) { + v6 := v6 & { valueof(ts_SNS_IPv6(ipep.local_ip, + ipep.local_udp_port, + ipep.signalling_weight, + ipep.data_weight)) }; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ifa91510430a017fa29592a3d5fa2a3697d29c9da Gerrit-Change-Number: 23544 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 Thu Apr 1 13:52:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:52:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Generalize as_count_bvc_block() into as_count_bvc_sts() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23547 ) Change subject: gbproxy: Generalize as_count_bvc_block() into as_count_bvc_sts() ...................................................................... gbproxy: Generalize as_count_bvc_block() into as_count_bvc_sts() ... and while add it, add as_count_bvc_unblock() based on it. Related: OS#4968 Change-Id: I33ceace527d6a0cd816fb4e042fdcffd8f0dd23f --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 14 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index f1e5c79..5ae153f 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2521,14 +2521,26 @@ f_cleanup(); } -private altstep as_count_bvc_block(integer sgsn_idx, BssgpBvci bvci, inout roro_integer roroi) +private altstep as_count_bvc_sts(integer sgsn_idx, BssgpBvci bvci, + template (present) BvcState exp_bvc_state, inout roro_integer roroi) runs on test_CT { var BSSGP_BVC_CT sgsn_bvc_ct := f_get_sgsn_bvc_ct(sgsn_idx, bvci); - [] SGSN_MGMT.receive(tr_BssgpStsInd(?, bvci, BVC_S_BLOCKED)) from sgsn_bvc_ct { + [] SGSN_MGMT.receive(tr_BssgpStsInd(?, bvci, exp_bvc_state)) from sgsn_bvc_ct { roroi[sgsn_idx] := roroi[sgsn_idx] & { bvci }; repeat; } } + +private altstep as_count_bvc_block(integer sgsn_idx, BssgpBvci bvci, inout roro_integer roroi) +runs on test_CT { + [] as_count_bvc_sts(sgsn_idx, bvci, BVC_S_BLOCKED, roroi); +} + +private altstep as_count_bvc_unblock(integer sgsn_idx, BssgpBvci bvci, inout roro_integer roroi) +runs on test_CT { + [] as_count_bvc_sts(sgsn_idx, bvci, BVC_S_UNBLOCKED, roroi); +} + /* reset the signaling BVC from one BSS; expect no signaling BVC reset on SGSN; but BVC-BLOCK for PTP */ testcase TC_bvc_reset_sig_from_bss() runs on test_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I33ceace527d6a0cd816fb4e042fdcffd8f0dd23f Gerrit-Change-Number: 23547 Gerrit-PatchSet: 1 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 Apr 1 13:52:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 13:52:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Make f_{block, unblock}_ptp_bvc_from_pcu handle multiple SGSNs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23548 ) Change subject: Make f_{block,unblock}_ptp_bvc_from_pcu handle multiple SGSNs ...................................................................... Make f_{block,unblock}_ptp_bvc_from_pcu handle multiple SGSNs Those tests predated SGSN pooling support and needed to update their assumptions to also cover other SGSNs in the pool. We could come up with more complex, auto-scaling mechanisms to handle different numbers of SGSNs, but that would make the code quite unreadable, as it means we cannot use interleave but have to dynamically activate altsteps for counting. I went for the simpler approach instead. Change-Id: I8c3ec4e00b78cff40ac72bc857161fa7abc352b0 Related: OS#4968 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 9 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/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 5ae153f..91ccbb0 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -325,6 +325,9 @@ type record of NSConfiguration NSConfigurations; type record of BssgpCellId BssgpCellIds; +/* you cannot simply change this to any larger number of SGSNs and expect all test + * cases to work. This would have overly complicated the code. Check below for + * tests that use interleave on SGSN_MGMT.receive() for each SGSN NSEI for example */ const integer NUM_SGSN := 2; type component test_CT { @@ -2399,7 +2402,9 @@ /* expect state on both PCU and SGSN side to change */ interleave { [] PCU_MGMT.receive(tr_BssgpStsInd(nsei_pcu, bvc_cfg.bvci, BVC_S_BLOCKED)) from bvc_ct; - [] SGSN_MGMT.receive(tr_BssgpStsInd(*, bvc_cfg.bvci, BVC_S_BLOCKED)); + [] SGSN_MGMT.receive(tr_BssgpStsInd(mp_nsconfig_sgsn[0].nsei, bvc_cfg.bvci, BVC_S_BLOCKED)); + [] SGSN_MGMT.receive(tr_BssgpStsInd(mp_nsconfig_sgsn[1].nsei, bvc_cfg.bvci, BVC_S_BLOCKED)); + /* Doesn't auto-scale with NUM_SGSN */ } setverdict(pass); } @@ -2425,7 +2430,9 @@ /* expect state on both PCU and SGSN side to change */ interleave { [] PCU_MGMT.receive(tr_BssgpStsInd(nsei_pcu, bvc_cfg.bvci, BVC_S_UNBLOCKED)) from bvc_ct; - [] SGSN_MGMT.receive(tr_BssgpStsInd(*, bvc_cfg.bvci, BVC_S_UNBLOCKED)); + [] SGSN_MGMT.receive(tr_BssgpStsInd(mp_nsconfig_sgsn[0].nsei, bvc_cfg.bvci, BVC_S_UNBLOCKED)); + [] SGSN_MGMT.receive(tr_BssgpStsInd(mp_nsconfig_sgsn[1].nsei, bvc_cfg.bvci, BVC_S_UNBLOCKED)); + /* Doesn't auto-scale with NUM_SGSN */ } setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8c3ec4e00b78cff40ac72bc857161fa7abc352b0 Gerrit-Change-Number: 23548 Gerrit-PatchSet: 1 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 Apr 1 14:26:14 2021 From: gerrit-no-reply at lists.osmocom.org (merlinchlosta) Date: Thu, 1 Apr 2021 14:26:14 +0000 Subject: Change in pysim[master]: Add decoder/encoder for EF.SUCI_Calc_Info References: Message-ID: merlinchlosta has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23564 ) Change subject: Add decoder/encoder for EF.SUCI_Calc_Info ...................................................................... Add decoder/encoder for EF.SUCI_Calc_Info Change-Id: I848a766e6d00be497c7db905475e0681cce197ac --- M pySim/ts_31_102.py M tests/test_utils.py 2 files changed, 179 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/64/23564/1 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 02b0aea..2e0541e 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -274,6 +274,126 @@ import pySim.ts_102_221 +# TS 31.102 4.4.11.8 +class EF_SUCI_Calc_Info(TransparentEF): + def __init__(self, fid="4f07", sfid=0x07, name='EF.SUCI_Calc_Info', size={2, None}, + desc='SUCI Calc Info'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + + def _encode_prot_scheme_id_list(self, in_list): + out_bytes = [0xa0] + out_bytes.append(len(in_list)*2) # two byte per entry + + # position in list determines priority; high-priority items (low index) come first + for scheme in sorted(in_list, key=lambda item: item["priority"]): + out_bytes.append(scheme["identifier"]) + out_bytes.append(scheme["key_index"]) + + return out_bytes + + def _encode_hnet_pubkey_list(self, hnet_pubkey_list): + out_bytes = [0xa1] # pubkey list tag + out_bytes.append(0x00) # length filled later + length = 0 + + for key in hnet_pubkey_list: + out_bytes.append(0x80) # identifier tag + out_bytes.append(0x01) # TODO size, fixed to 1 byte + out_bytes.append(key["hnet_pubkey_identifier"]) + out_bytes.append(0x81) # key tag + out_bytes.append(len(key["hnet_pubkey"])//2) + length += 5+len(key["hnet_pubkey"])//2 + + pubkey_bytes = h2b(key["hnet_pubkey"]) + out_bytes += pubkey_bytes + + # fill length + out_bytes[1] = length + return out_bytes + + def _encode_hex(self, in_json): + out_bytes = self._encode_prot_scheme_id_list(in_json['prot_scheme_id_list']) + out_bytes += self._encode_hnet_pubkey_list(in_json['hnet_pubkey_list']) + return "".join(["%02X" % i for i in out_bytes]) + + def _decode_prot_scheme_id_list(self, in_bytes): + prot_scheme_id_list = [] + pos = 0 + # two bytes per entry + while pos < len(in_bytes): + prot_scheme = { + 'priority': pos//2, # first in list: high priority + 'identifier': in_bytes[pos], + 'key_index': in_bytes[pos+1] + } + pos += 2 + prot_scheme_id_list.append(prot_scheme) + return prot_scheme_id_list + + def _decode_hnet_pubkey_list(self, in_bytes): + hnet_pubkey_list = [] + pos = 0 + if in_bytes[pos] != 0xa1: + print("missing Home Network Public Key List data object") + return {} + pos += 1 + hnet_pubkey_list_len = in_bytes[pos] + pos += 1 + + while pos < hnet_pubkey_list_len: + if in_bytes[pos] != 0x80: + print("missing Home Network Public Key Identifier tag") + return {} + pos += 1 + hnet_pubkey_id_len = in_bytes[pos] # TODO might be more than 1 byte? + pos += 1 + hnet_pubkey_id = in_bytes[pos:pos+hnet_pubkey_id_len][0] + pos += hnet_pubkey_id_len + if in_bytes[pos] != 0x81: + print("missing Home Network Public Key tag") + return {} + pos += 1 + hnet_pubkey_len = in_bytes[pos] + pos += 1 + hnet_pubkey = in_bytes[pos:pos+hnet_pubkey_len] + pos += hnet_pubkey_len + + hnet_pubkey_list.append({ + 'hnet_pubkey_identifier': hnet_pubkey_id, + 'hnet_pubkey': b2h(hnet_pubkey) + }) + + return hnet_pubkey_list + + def _decode_bin(self, in_bin): + return self._decode_hex(b2h(in_hex)) + + def _decode_hex(self, in_hex): + in_bytes = h2b(in_hex) + pos = 0 + + if in_bytes[pos] != 0xa0: + print("missing Protection Scheme Identifier List data object tag") + return {} + pos += 1 + + prot_scheme_id_list_len = in_bytes[pos] # TODO maybe more than 1 byte + pos += 1 + # decode Protection Scheme Identifier List data object + prot_scheme_id_list = self._decode_prot_scheme_id_list(in_bytes[pos:pos+prot_scheme_id_list_len]) + pos += prot_scheme_id_list_len + + # remaining data holds Home Network Public Key Data Object + hnet_pubkey_list = self._decode_hnet_pubkey_list(in_bytes[pos:]) + + return { + 'prot_scheme_id_list': prot_scheme_id_list, + 'hnet_pubkey_list': hnet_pubkey_list + } + + def _encode_bin(self, in_json): + return h2b(self._encode_hex(in_json)) + class EF_LI(TransRecEF): def __init__(self, fid='6f05', sfid=None, name='EF.LI', size={2,None}, rec_len=2, desc='Language Indication'): @@ -340,6 +460,27 @@ """Deactivate a service within EF.UST""" self._cmd.card.update_ust(int(arg), 0) +class DF_USIM_5GS(CardDF): + def __init__(self, fid='5FC0', name='DF.5GS', desc='5GS related files'): + super().__init__(fid=fid, name=name, desc=desc) + files = [ + # I'm looking at 31.102 R15.9 + TransparentEF('4F01', None, 'EF.5GS3GPPLOCI', '5GS 3GPP location information', size={20,20}), + TransparentEF('4F02', None, 'EF.5GSN3GPPLOCI', '5GS non-3GPP location information', size={20,20}), + #LinFixedEF('4F03', None, 'EF.5GS3GPPNSC', '5GS 3GPP Access NAS Security Context'), + #LinFixedEF('4F04', None, 'EF.5GSN3GPPNSC', '5GS non-3GPP Access NAS Security Context'), + TransparentEF('4F05', None, 'EF.5GAUTHKEYS', '5G authentication keys', size={68, None}), + TransparentEF('4F06', None, 'EF.UAC_AIC', 'UAC Access Identities Configuration', size={4, 4}), + EF_SUCI_Calc_Info(), #TransparentEF('4F07', None, 'EF.SUCI_Calc_Info', 'SUCI Calculation Information', size={2, None}), + TransparentEF('4F08', None, 'EF.OPL5G', '5GS Operator PLMN List', size={10, None}), + # TransparentEF('4F09', None, 'EF.NSI', 'Network Specific Identifier'), # FFS + TransparentEF('4F0A', None, 'EF.Routing_Indicator', 'Routing Indicator', size={4,4}), + ] + + self.add_files(files) + + def decode_select_response(self, data_hex): + return data_hex class ADF_USIM(CardADF): def __init__(self, aid='a0000000871002', name='ADF.USIM', fid=None, sfid=None, @@ -370,6 +511,7 @@ EF_CBMID(sfid=0x0e), EF_ECC(sfid=0x01), EF_CBMIR(), + DF_USIM_5GS(), ] self.add_files(files) diff --git a/tests/test_utils.py b/tests/test_utils.py old mode 100644 new mode 100755 index bcf6140..9fa2ba0 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,7 +1,8 @@ #!/usr/bin/env python3 import unittest -import pySim.utils as utils +from pySim import utils +from pySim.ts_31_102 import EF_SUCI_Calc_Info class DecTestCase(unittest.TestCase): @@ -81,5 +82,40 @@ expected += "\tffffff0000 # unused\n" self.assertEqual(utils.format_xplmn_w_act(input_str), expected) + + def testDecodeSuciCalcInfo(self): + # TS31.121 4.9.4 EF_SUCI_Calc_Info test file + testfile = "A006020101020000A14B80011B81210272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD180011E81205A8D38864820197C3394B92613B20B91633CBD897119273BF8E4A6F4EEC0A650" + expected = { + 'prot_scheme_id_list': [ + {'priority': 0, 'identifier': 2, 'key_index': 1}, + {'priority': 1, 'identifier': 1, 'key_index': 2}, + {'priority': 2, 'identifier': 0, 'key_index': 0}], + 'hnet_pubkey_list': [ + {'hnet_pubkey_identifier': 27, 'hnet_pubkey': '0272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD1'.lower()}, # because h2b/b2h returns all lower-case + {'hnet_pubkey_identifier': 30, 'hnet_pubkey': '5A8D38864820197C3394B92613B20B91633CBD897119273BF8E4A6F4EEC0A650'.lower()}] + } + suci_calc_info = EF_SUCI_Calc_Info() + decoded = suci_calc_info._decode_hex(testfile) + self.assertDictEqual(expected, decoded) + + def testEncodeSuciCalcInfo(self): + # TS31.121 4.9.4 EF_SUCI_Calc_Info test file + expected = "A006020101020000A14B80011B81210272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD180011E81205A8D38864820197C3394B92613B20B91633CBD897119273BF8E4A6F4EEC0A650" + + decoded_testfile = { + 'prot_scheme_id_list': [ + {'priority': 0, 'identifier': 2, 'key_index': 1}, + {'priority': 1, 'identifier': 1, 'key_index': 2}, + {'priority': 2, 'identifier': 0, 'key_index': 0}], + 'hnet_pubkey_list': [ + {'hnet_pubkey_identifier': 27, 'hnet_pubkey': '0272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD1'.lower()}, + {'hnet_pubkey_identifier': 30, 'hnet_pubkey': '5A8D38864820197C3394B92613B20B91633CBD897119273BF8E4A6F4EEC0A650'.lower()}] + } + + suci_calc_info = EF_SUCI_Calc_Info() + encoded = suci_calc_info._encode_hex(decoded_testfile) + self.assertEqual(encoded.lower(), expected.lower()) + if __name__ == "__main__": unittest.main() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I848a766e6d00be497c7db905475e0681cce197ac Gerrit-Change-Number: 23564 Gerrit-PatchSet: 1 Gerrit-Owner: merlinchlosta Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 14:32:56 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 1 Apr 2021 14:32:56 +0000 Subject: Change in libosmocore[master]: gprs_ns2: NSVC fsm: reorder notification on_enter() References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23565 ) Change subject: gprs_ns2: NSVC fsm: reorder notification on_enter() ...................................................................... gprs_ns2: NSVC fsm: reorder notification on_enter() The start_procedure() can't be called after ns2_nse_notify_unblocked() because ns2_nse_notify_unblocked() might free the nsvc. Otherwise the fsm will do use-after-free on the NSVC memory. Related: SYS#5416 Change-Id: If97dfd123eefd71fc6c3fe886a243a21784aeeb4 --- 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/65/23565/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index a8cb570..85cd2ad 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -460,8 +460,8 @@ if (old_state != GPRS_NS2_ST_RECOVERING) priv->N = 0; - ns2_nse_notify_unblocked(priv->nsvc, false); start_test_procedure(fi, true); + ns2_nse_notify_unblocked(priv->nsvc, false); } static const struct osmo_fsm_state ns2_vc_states[] = { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If97dfd123eefd71fc6c3fe886a243a21784aeeb4 Gerrit-Change-Number: 23565 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 Apr 1 14:32:57 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 1 Apr 2021 14:32:57 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: ensure the sns->alive state is correct References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23566 ) Change subject: gprs_ns2: sns: ensure the sns->alive state is correct ...................................................................... gprs_ns2: sns: ensure the sns->alive state is correct The SNS fsms also track the NSE however since the NSVC starts now in ALIVE for SNS the SNS must check when synchronize the alive state when entering the ST_CONFIGURED. Related: SYS#5416 Change-Id: Ib6a1cc1fd84959e69c07b72ef780642205d2cd18 --- M src/gb/gprs_ns2_sns.c 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/66/23566/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index b8c44f1..552e4b8 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1355,7 +1355,19 @@ static void ns2_sns_st_configured_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { + struct gprs_ns2_vc *nsvc; + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); + /* NS-VC status updates are only parsed in ST_CONFIGURED. + * Do an initial check if there are any nsvc alive atm */ + llist_for_each_entry(nsvc, &nse->nsvc, list) { + if (ns2_vc_is_unblocked(nsvc)) { + gss->alive = true; + osmo_timer_del(&fi->timer); + break; + } + } + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6a1cc1fd84959e69c07b72ef780642205d2cd18 Gerrit-Change-Number: 23566 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 Apr 1 14:35:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 1 Apr 2021 14:35:00 +0000 Subject: Change in libosmocore[master]: gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/23565 ) Change subject: gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() ...................................................................... gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() The start_procedure() can't be called after ns2_nse_notify_unblocked() because ns2_nse_notify_unblocked() might free the nsvc. Otherwise the fsm will do use-after-free on the NSVC memory. Related: SYS#5416 Change-Id: If97dfd123eefd71fc6c3fe886a243a21784aeeb4 --- 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/65/23565/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If97dfd123eefd71fc6c3fe886a243a21784aeeb4 Gerrit-Change-Number: 23565 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 14:35:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 1 Apr 2021 14:35:00 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: ensure the sns->alive state is correct In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/23566 ) Change subject: gprs_ns2: sns: ensure the sns->alive state is correct ...................................................................... gprs_ns2: sns: ensure the sns->alive state is correct The SNS fsms also track the NSE however since the NSVC starts now in ALIVE for SNS the SNS must check when synchronize the alive state when entering the ST_CONFIGURED. Related: SYS#5416 Change-Id: Ib6a1cc1fd84959e69c07b72ef780642205d2cd18 --- M src/gb/gprs_ns2_sns.c 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/66/23566/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6a1cc1fd84959e69c07b72ef780642205d2cd18 Gerrit-Change-Number: 23566 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 14:43:47 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 1 Apr 2021 14:43:47 +0000 Subject: Change in pysim[master]: Add decoder/encoder for EF.SUCI_Calc_Info In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23564 ) Change subject: Add decoder/encoder for EF.SUCI_Calc_Info ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23564/1/tests/test_utils.py File tests/test_utils.py: https://gerrit.osmocom.org/c/pysim/+/23564/1/tests/test_utils.py at 95 PS1, Line 95: 0272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD1 I would move this and the other key into separate [class] variables, so there would be no need to repeat it here and there: HNET_PUBKEY27 = '...' HNET_PUBKEY30 = '...' FILE = '...' + HNET_PUBKEY27 + '...' + HNET_PUBKEY30 def testFoo(self): ... def testBar(self): ... -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I848a766e6d00be497c7db905475e0681cce197ac Gerrit-Change-Number: 23564 Gerrit-PatchSet: 1 Gerrit-Owner: merlinchlosta Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 01 Apr 2021 14:43:47 +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 Apr 1 15:07:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:07:54 +0000 Subject: Change in libosmocore[master]: gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23565 ) Change subject: gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If97dfd123eefd71fc6c3fe886a243a21784aeeb4 Gerrit-Change-Number: 23565 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 15:07:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 15:08:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:08:54 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: ensure the sns->alive state is correct In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23566 ) Change subject: gprs_ns2: sns: ensure the sns->alive state is correct ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6a1cc1fd84959e69c07b72ef780642205d2cd18 Gerrit-Change-Number: 23566 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 15:08: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 Apr 1 15:19:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:19:42 +0000 Subject: Change in pysim[master]: Add decoder/encoder for EF.SUCI_Calc_Info In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23564 ) Change subject: Add decoder/encoder for EF.SUCI_Calc_Info ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23564/1/pySim/ts_31_102.py File pySim/ts_31_102.py: https://gerrit.osmocom.org/c/pysim/+/23564/1/pySim/ts_31_102.py at 301 PS1, Line 301: out_bytes.append(0x01) # TODO size, fixed to 1 byte this manual TLV encoding/decoding works, but is of course quite a bit of a hack. we traditionally used pytlv for decoding, but @dexter has been proposing to move to uttlv. However, even that is not a proper BER-TLV encoder/decoder. We can merge this as-is, but in case you are working on more related code, I think now would be a good time to settle on a new TLV encoder/decoder before introducing more hand-crafted hacks. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I848a766e6d00be497c7db905475e0681cce197ac Gerrit-Change-Number: 23564 Gerrit-PatchSet: 1 Gerrit-Owner: merlinchlosta Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 15:19: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 Thu Apr 1 15:21:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:21:42 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix segfault on trx_phy_inst_open() failure In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23399 ) Change subject: osmo-bts-trx: fix segfault on trx_phy_inst_open() failure ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1f128813528f505fede04799e84456f6271058d0 Gerrit-Change-Number: 23399 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 15:21:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 15:21:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:21:44 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix segfault on trx_phy_inst_open() failure In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23399 ) Change subject: osmo-bts-trx: fix segfault on trx_phy_inst_open() failure ...................................................................... osmo-bts-trx: fix segfault on trx_phy_inst_open() failure If for whatever reason it fails to initialize the TRXD or TRXC interface, trx_phy_inst_open() would return an error. This would cause bts_model_phy_link_open() to call trx_if_close() on each of the PHY links, including those that were never opened. This leads to a segfault in trx_if_close(). Make sure that in trx_if_init() we properly init 'struct trx_l1h', so it's safe to call trx_if_close() at any time and in any state. Change-Id: I1f128813528f505fede04799e84456f6271058d0 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 6 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index c6701cb..2e97319 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -193,6 +193,12 @@ { l1h->trx_ctrl_timer.cb = trx_ctrl_timer_cb; l1h->trx_ctrl_timer.data = l1h; + + /* initialize ctrl queue */ + INIT_LLIST_HEAD(&l1h->trx_ctrl_list); + + l1h->trx_ofd_ctrl.fd = -1; + l1h->trx_ofd_data.fd = -1; } /*! Send a new TRX control command. @@ -1215,9 +1221,6 @@ LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, "Open transceiver\n"); - /* initialize ctrl queue */ - INIT_LLIST_HEAD(&l1h->trx_ctrl_list); - /* open sockets */ rc = trx_udp_open(l1h, &l1h->trx_ofd_ctrl, plink->u.osmotrx.local_ip, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1f128813528f505fede04799e84456f6271058d0 Gerrit-Change-Number: 23399 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 15:22:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:22:36 +0000 Subject: Change in osmo-dev[master]: net/templates/osmo-sgsn.cfg: update format In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/23418 ) Change subject: net/templates/osmo-sgsn.cfg: update format ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/23418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ie0a6d4a55f725ebcc6a55b6bd71c52ad72accbd2 Gerrit-Change-Number: 23418 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Assignee: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Thu, 01 Apr 2021 15:22: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 Apr 1 15:22:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:22:50 +0000 Subject: Change in osmo-dev[master]: net/templates/osmo-gbproxy.cfg: update format In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/23419 ) Change subject: net/templates/osmo-gbproxy.cfg: update format ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/23419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ia7008d6d2d26030aa4c35439f1525a53957443a1 Gerrit-Change-Number: 23419 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 15: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 Thu Apr 1 15:23:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:23:27 +0000 Subject: Change in osmo-bsc[master]: generate_ma_for_ts: check num_cell_arfcns to guarantee no out-of-boun... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/20290 ) Change subject: generate_ma_for_ts: check num_cell_arfcns to guarantee no out-of-bounds access ...................................................................... Patch Set 1: @fixeria, ping? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/20290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2ee8e8b4ba5e16b955685ba42bd58dc2ea08720f Gerrit-Change-Number: 20290 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Assignee: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 15:23: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 Thu Apr 1 15:23:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:23:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: refactor and fix TC_pcu_socket_connect_multi In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23466 ) Change subject: BTS_Tests: refactor and fix TC_pcu_socket_connect_multi ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I898b8b14515d79766b12d652ebb1ddf834e2863c Gerrit-Change-Number: 23466 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 15:23: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 Apr 1 15:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:24:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: refactor and fix TC_pcu_socket_connect_multi In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23466 ) Change subject: BTS_Tests: refactor and fix TC_pcu_socket_connect_multi ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I898b8b14515d79766b12d652ebb1ddf834e2863c Gerrit-Change-Number: 23466 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 15:24: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 Apr 1 15:25:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:25:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add vty `nse <0-65535> restart sns` In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23184 ) Change subject: gprs_ns2: add vty `nse <0-65535> restart sns` ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23184/1/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/23184/1/src/gb/gprs_ns2_vty.c at 1920 PS1, Line 1920: gprs_ns2_free_nsvcs(nse); > Will this actually restart the SIZE/CONFIG procedure? Since we now have IP-SNS in both SGSN and BSS [?] The SGSN cannot re-start SNS. Only the BSS can do this by sending SNS-SIZE. So I think this command only makes sense in PCU/BSS role and the command should ensure it is not used on a SGSN role. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23184 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb55d8449908d348ab10572eebcf971737fba00d Gerrit-Change-Number: 23184 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 15:25:35 +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 Apr 1 15:33:49 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:33:49 +0000 Subject: Change in pysim[master]: filesystem: decode select response for MF In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23209 ) Change subject: filesystem: decode select response for MF ...................................................................... Patch Set 4: I think we will have to abandon this. The problem here is that the file system exporter needs the select response to determine the file type etc. However I see that one still can select EF.ICCID for example and use read_binary. Maybe we can just get the information from an alternative source for files that do not have a parser for the select response. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23209 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib2b2476fc0e7d34cdacf7eb100ffadceb788c4d2 Gerrit-Change-Number: 23209 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-Comment-Date: Thu, 01 Apr 2021 15:33: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 Thu Apr 1 15:34:05 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:34:05 +0000 Subject: Change in pysim[master]: filesystem: allow selection of arbitrary files 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/pysim/+/23533 to look at the new patch set (#3). Change subject: filesystem: allow selection of arbitrary files ...................................................................... filesystem: allow selection of arbitrary files Some cards may have additional propritary EF files which pySim-shell does not support. If the user knows the exact FID the file can still be selected and it is possible to read the file type and memory model from the select response. This info can be used to create a new file object at runtime that will work like any other EF/DF. Change-Id: Iafff97443130f8bb8c5bc68f51d2fe1d93fff07c Related: OS#4963 --- M pySim/filesystem.py 1 file changed, 51 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/33/23533/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iafff97443130f8bb8c5bc68f51d2fe1d93fff07c Gerrit-Change-Number: 23533 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Apr 1 15:34:05 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:34:05 +0000 Subject: Change in pysim[master]: pySim-shell: automatic ADM pin from CSV-File 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/pysim/+/23538 to look at the new patch set (#3). Change subject: pySim-shell: automatic ADM pin from CSV-File ...................................................................... pySim-shell: automatic ADM pin from CSV-File It can be hard to manage ADM pins when working with different cards at the same time. To make this easier, add an automatic way to determine the ADM pin for each card from a CSV file. - add a CardData clas model that can be extended to to get the data from various different sources. For now use CSV-Files. Also add a way how multiple CardData classes can be registered so that one global get function can query all registered CardData classes at once. - automatically check for CSV-File in home directory and use it as default CardData source unless the user specifies a CSV file via commandline argument. - extend the verify_adm command so that it automatically queries the ADM pin if no argument is given. Also do not try to authenticate if no ADM pin could be determined. Change-Id: I51835ccb16bcbce35e7f3765e8927a4451509e77 Related: OS#4963 --- M pySim-shell.py A pySim/card_data.py 2 files changed, 146 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/38/23538/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I51835ccb16bcbce35e7f3765e8927a4451509e77 Gerrit-Change-Number: 23538 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Apr 1 15:34:05 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:34:05 +0000 Subject: Change in pysim[master]: pySim-shells: complete CHV/PIN management tools 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/pysim/+/23541 to look at the new patch set (#3). Change subject: pySim-shells: complete CHV/PIN management tools ...................................................................... pySim-shells: complete CHV/PIN management tools At the moment we only have a basic version of a verify_chv commnad, but in order to handle any CHV/PIN related situation we also need commands to enable, disable, change and unblock CHV. - fix verify_chv commnad: more distinct parameter names, better help strings, correct pin code encoding and add external source lookup - Add unblock_chv, change_chv, enable_chv and disable_chv commands - add/fix related functions in commands.py Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Related: OS#4963 --- M pySim-shell.py M pySim/card_data.py M pySim/commands.py 3 files changed, 115 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/41/23541/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Gerrit-Change-Number: 23541 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 15:34:07 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:34:07 +0000 Subject: Change in pysim[master]: pySim-shell: prevent inconsitancy when walking through the FS tree References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23567 ) Change subject: pySim-shell: prevent inconsitancy when walking through the FS tree ...................................................................... pySim-shell: prevent inconsitancy when walking through the FS tree When using the method walk() to walk through the filesystem tree, then the action() callback must not change the currently selected file. Unfortunately this can easily happen and result in unpredictable behavior. Lets add a check + an exeception for this to make debugging easier. Change-Id: I6778faa87bdf5552da74659206bf7a6fc0348d0c Related: OS#4963 --- M pySim-shell.py 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/67/23567/1 diff --git a/pySim-shell.py b/pySim-shell.py index 11953eb..2ac0b26 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -263,7 +263,14 @@ self.walk(indent + 1, action, context) fcp_dec = self._cmd.rs.select("..", self._cmd) elif action: + df_before_action = self._cmd.rs.selected_file action(f, context) + # When walking through the file system tree the action must not + # always restore the currently selected file to the file that + # was selected before executing the action() callback. + if df_before_action != self._cmd.rs.selected_file: + raise RuntimeError("inconsistant walk, %s is currently selected but expecting %s to be selected" + % (str(self._cmd.rs.selected_file), str(df_before_action))) def do_tree(self, opts): """Display a filesystem-tree with all selectable files""" -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6778faa87bdf5552da74659206bf7a6fc0348d0c Gerrit-Change-Number: 23567 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 Apr 1 15:34:07 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:34:07 +0000 Subject: Change in pysim[master]: pySim-shell: fix and improve file system exporter References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23568 ) Change subject: pySim-shell: fix and improve file system exporter ...................................................................... pySim-shell: fix and improve file system exporter The file system exporter function export() selects the exported EF from inside a try block. It also selects the parent DF again when leaving the try block. If an exception ocurrs during select this is fine, but if it happens during read it leaves the EF selected which makes messes up the recursive filesystem walk. There are also minor inconsistancies with the exception strings and the path displayed in the execption strings Related: OS#4963 Change-Id: Ie9b1712b37e5b39e9016497185510a2a45c4ca6c --- M pySim-shell.py 1 file changed, 20 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/68/23568/1 diff --git a/pySim-shell.py b/pySim-shell.py index 2ac0b26..3c56f51 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -277,28 +277,33 @@ self.walk() def export(self, filename, context): + """ Select and export a single file """ context['COUNT'] += 1 - path_list = self._cmd.rs.selected_file.fully_qualified_path(True) - path_list_fid = self._cmd.rs.selected_file.fully_qualified_path(False) + df = self._cmd.rs.selected_file + + if not isinstance(df, CardDF): + raise RuntimeError("currently selected file %s is not a DF or ADF" % str(df)) + + df_path_list = df.fully_qualified_path(True) + df_path_list_fid = df.fully_qualified_path(False) self._cmd.poutput("#" * 80) - file_str = '/'.join(path_list) + "/" + str(filename) + " " * 80 + file_str = '/'.join(df_path_list) + "/" + str(filename) + " " * 80 self._cmd.poutput("# " + file_str[0:77] + "#") self._cmd.poutput("#" * 80) - self._cmd.poutput("# directory: %s (%s)" % ('/'.join(path_list), '/'.join(path_list_fid))) + self._cmd.poutput("# directory: %s (%s)" % ('/'.join(df_path_list), '/'.join(df_path_list_fid))) try: fcp_dec = self._cmd.rs.select(filename, self._cmd) - path_list = self._cmd.rs.selected_file.fully_qualified_path(True) - path_list_fid = self._cmd.rs.selected_file.fully_qualified_path(False) - self._cmd.poutput("# file: %s (%s)" % (path_list[-1], path_list_fid[-1])) + self._cmd.poutput("# file: %s (%s)" % (self._cmd.rs.selected_file.name, self._cmd.rs.selected_file.fid)) fd = fcp_dec['file_descriptor'] structure = fd['structure'] self._cmd.poutput("# structure: %s" % str(structure)) - for f in path_list: + for f in df_path_list: self._cmd.poutput("select " + str(f)) + self._cmd.poutput("select " + self._cmd.rs.selected_file.name) if structure == 'transparent': result = self._cmd.rs.read_binary() @@ -308,13 +313,18 @@ for r in range(1, num_of_rec + 1): result = self._cmd.rs.read_record(r) self._cmd.poutput("update_record %d %s" % (r, str(result[0]))) - fcp_dec = self._cmd.rs.select("..", self._cmd) except Exception as e: - bad_file_str = '/'.join(path_list) + "/" + str(filename) + ", " + str(e) + bad_file_str = '/'.join(df_path_list) + "/" + str(filename) + ", " + str(e) self._cmd.poutput("# bad file: %s" % bad_file_str) context['ERR'] += 1 context['BAD'].append(bad_file_str) + # When reading the file is done, make sure the parent file is + # selected again. This will be the usual case, however we need + # to check before since we must not select the same DF twice + if df != self._cmd.rs.selected_file: + self._cmd.rs.select(df.fid or df.aid, self._cmd) + self._cmd.poutput("#") export_parser = argparse.ArgumentParser() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9b1712b37e5b39e9016497185510a2a45c4ca6c Gerrit-Change-Number: 23568 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 Apr 1 15:34:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 1 Apr 2021 15:34:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: refactor and fix TC_pcu_socket_connect_multi In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23466 ) Change subject: BTS_Tests: refactor and fix TC_pcu_socket_connect_multi ...................................................................... BTS_Tests: refactor and fix TC_pcu_socket_connect_multi The expectations of this test case were wrong. The IUT would first accept() an additional connection and then close() it immediately. Since there may be other messages, like TIME.ind and DATA.ind, the 'alt' statement would not match successful connection result, and instead would unblock the flow due to timeout. The titan.TestPorts.UNIX_DOMAIN_SOCKETasp had to be changed [1] to send UD_connect_result with ERROR if recv() returns zero or a negative. [1] https://github.com/eclipse/titan.TestPorts.UNIX_DOMAIN_SOCKETasp/pull/4 Change-Id: I898b8b14515d79766b12d652ebb1ddf834e2863c --- M bts/BTS_Tests.ttcn M deps/Makefile 2 files changed, 21 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/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index c0ec728..555fe0c 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -5465,25 +5465,39 @@ /* Ensure that PCUIF socket can accept only a single connection */ testcase TC_pcu_socket_connect_multi() runs on test_CT { + var boolean connected := false; + var UD_connect_result cr; + var integer cid; timer T := 5.0; + var template UD_Result tr_ok := { result_code := SUCCESS, err := omit }; + var template UD_Result tr_err := { result_code := ERROR, err := ? }; + /* this (among other things) establishes the first connection to the PCUIF socket */ f_init_with_pcuif(); - /* try to establish a second connection, expect it to fail */ + /* try to establish a second connection */ PCU.send(UD_connect:{mp_pcu_socket, -1}); T.start; alt { - [] PCU.receive(UD_connect_result:{id := ?, result := { result_code := ERROR, err := ? }}) { + /* the IUT will first accept() the new connection, and close() it immediately */ + [not connected] PCU.receive(UD_connect_result:{ id := ?, result := tr_ok }) -> value cr { + log("BTS has accept()ed connection"); + connected := true; + cid := cr.id; + repeat; + } + [connected] PCU.receive(UD_connect_result:{ id := cid, result := tr_err }) { + log("BTS has close()d connection"); setverdict(pass); } - [] PCU.receive(UD_connect_result:?) { - setverdict(fail, "Unexpected unix domain connect result"); - } + /* ignore other messages related to the first connection */ + [] PCU.receive { repeat; } [] T.timeout { - setverdict(pass); + setverdict(fail, "Timeout waiting for connection result"); } } + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } diff --git a/deps/Makefile b/deps/Makefile index 9057463..c63dca7 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -126,7 +126,7 @@ titan.TestPorts.TCPasp_commit= R.9.A-5-g2c91bc6 titan.TestPorts.TELNETasp_commit= 873fe539642542cd9a901c208f1ec11c6d2f5387 titan.TestPorts.UDPasp_commit= c20d77a34f288dd70dd4aaa30e520778876e9336 -titan.TestPorts.UNIX_DOMAIN_SOCKETasp_commit= R.2.A-8-g7ec4fe0 +titan.TestPorts.UNIX_DOMAIN_SOCKETasp_commit= R.2.A-13-gd34ab71 titan.TestPorts.USB_commit= master osmo-uecups_commit= master -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I898b8b14515d79766b12d652ebb1ddf834e2863c Gerrit-Change-Number: 23466 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 15:35:15 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:35:15 +0000 Subject: Change in pysim[master]: filesystem: allow selection of arbitrary files In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23533 ) Change subject: filesystem: allow selection of arbitrary files ...................................................................... Patch Set 3: > Patch Set 1: > > I'm sorry, I don't like that approach. I always thought we should support arbitrary files, but not by users creating it on the command line. I think we should try to be more elegant without requiring the user to specify things we can discover. > > Alternative, for example: Simply allow the user to select any FID (two-digit hex number), and then use the FCP returned by the card to create an EF instance of proper nature (transparent / record / size / ...). > > Another idea is to have some kind of configuration file (similar to the idea with regard to the ADM/PIN) where users can configure more files. But TBH, I would rather prefer writing proper python code for all the relevant files. > > I also don't think it's worth investing sysmocom time on this at the moment. I have now integrated the functionality of add_ef into select. I also think that this is better. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iafff97443130f8bb8c5bc68f51d2fe1d93fff07c Gerrit-Change-Number: 23533 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 15:35: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 Apr 1 15:35:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 1 Apr 2021 15:35:18 +0000 Subject: Change in osmo-bsc[master]: generate_ma_for_ts: check num_cell_arfcns to guarantee no out-of-boun... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/20290 ) Change subject: generate_ma_for_ts: check num_cell_arfcns to guarantee no out-of-bounds access ...................................................................... Patch Set 1: > Patch Set 1: > > @fixeria, ping? I have reworked this patch, still need to test it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/20290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2ee8e8b4ba5e16b955685ba42bd58dc2ea08720f Gerrit-Change-Number: 20290 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Assignee: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 15:35: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 Thu Apr 1 15:40:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:40:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Update config for IP BSS to use SNS References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23569 ) Change subject: gbproxy: Update config for IP BSS to use SNS ...................................................................... gbproxy: Update config for IP BSS to use SNS This reflects the more realistic use cases: IP-SNS is used on the BSS side, where osmo-gbproxy then behaves in SGSN role. Change-Id: I90bd101096979b170c38fa2a80abb80d296c4d2e --- M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.cfg 2 files changed, 13 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/23569/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index d3c6df6..dcf72b0 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -134,7 +134,7 @@ { nsei := 2001, role_sgsn := false, - handle_sns := false, + handle_sns := true, nsvc := { { provider := { @@ -143,7 +143,7 @@ local_udp_port := 21010, local_ip := "127.0.1.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1", + remote_ip := "127.0.0.2", data_weight := 1, signalling_weight := 1 } @@ -155,7 +155,7 @@ { nsei := 2002, role_sgsn := false, - handle_sns := false, + handle_sns := true, nsvc := { { provider := { @@ -164,7 +164,7 @@ local_udp_port := 21020, local_ip := "127.0.2.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1", + remote_ip := "127.0.0.2", data_weight := 1, signalling_weight := 1 } @@ -176,7 +176,7 @@ { nsei := 2003, role_sgsn := false, - handle_sns := false, + handle_sns := true, nsvc := { { provider := { @@ -185,7 +185,7 @@ local_udp_port := 21030, local_ip := "127.0.3.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1", + remote_ip := "127.0.0.2", data_weight := 1, signalling_weight := 1 } diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index efd0499..b2ccb3b 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -24,15 +24,19 @@ name second nri add 4 ns - bind udp local + bind udp sgsn-side listen 127.0.0.1 23000 accept-ipaccess nse 101 - ip-sns-bind local + ip-sns-bind sgsn-side ip-sns-remote 127.0.0.10 7777 nse 102 - ip-sns-bind local + ip-sns-bind sgsn-side ip-sns-remote 127.0.0.11 8888 + bind udp bss-side + listen 127.0.0.2 23000 + accept-dynamic-ip-sns + ip-sns-default bind bss-side timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90bd101096979b170c38fa2a80abb80d296c4d2e Gerrit-Change-Number: 23569 Gerrit-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 Apr 1 15:40:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 15:40:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23570 ) Change subject: SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN ...................................................................... SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN Change-Id: I821d998704756fa30278f41d0371051db9d3fc58 --- M library/RAW_NS.ttcnpp M pcu/osmo-pcu-sns.cfg M sgsn/SGSN_Tests_NS.ttcn A sgsn/SGSN_Tests_SNS.cfg A sgsn/osmo-sgsn.sns.cfg 5 files changed, 261 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/70/23570/1 diff --git a/library/RAW_NS.ttcnpp b/library/RAW_NS.ttcnpp index 76ac0a2..ff73348 100644 --- a/library/RAW_NS.ttcnpp +++ b/library/RAW_NS.ttcnpp @@ -34,6 +34,7 @@ #endif var NSConfiguration g_nsconfig; timer g_T_guard; + var boolean g_handle_rx_alive := false; } public altstep as_Tguard() runs on RAW_NS_CT { @@ -99,6 +100,7 @@ var default d := activate(ax_rx_fail_on_any_ns()); alt { [] NSCP[idx].receive(PDU_NS: exp_rx) -> value nrf { } + [g_handle_rx_alive] as_rx_alive_tx_ack(); } deactivate(d); return nrf; @@ -109,6 +111,7 @@ NSCP[idx].send(t_NS_ALIVE); alt { [] NSCP[idx].receive(t_NS_ALIVE_ACK); + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } } } @@ -122,6 +125,7 @@ [] NSCP[idx].receive(t_NS_ALIVE_ACK) { setverdict(fail, "Received unexpected NS-ALIVE ACK"); } + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } [] T.timeout { setverdict(pass); @@ -138,6 +142,7 @@ [] NSCP[idx].receive(ts_NS_RESET_ACK(g_nsconfig.nsvc[idx].nsvci, g_nsconfig.nsei)) { setverdict(pass); } + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } [] T.timeout { setverdict(fail, "Failed to receive a RESET ACK"); @@ -150,6 +155,7 @@ NSCP[idx].send(ts_NS_BLOCK(cause, g_nsconfig.nsvc[idx].nsvci)); alt { [] NSCP[idx].receive(tr_NS_BLOCK_ACK(g_nsconfig.nsvc[idx].nsvci)); + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } } } @@ -159,6 +165,7 @@ NSCP[idx].send(t_NS_UNBLOCK); alt { [] NSCP[idx].receive(t_NS_UNBLOCK_ACK); + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } } } @@ -198,6 +205,7 @@ [not exp_ack] T.timeout { setverdict(pass); } + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } } } @@ -298,22 +306,23 @@ } /* perform outbound SNS-SIZE procedure */ -function f_outgoing_sns_size(template (omit) NsCause cause := omit, integer idx:= 0) +function f_outgoing_sns_size(template (omit) NsCause cause := omit, integer max_nsvcs := 1, + integer num_ip := 1, integer idx:= 0) runs on RAW_NS_CT { log("f_outgoing_sns_size(idx=", idx, ")"); var PDU_NS rx; var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { - NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, - num_v4 := 1, num_v6 := omit) + NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := max_nsvcs, + num_v4 := num_ip, num_v6 := omit) ); } else { - NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, - num_v4 := omit, num_v6 := 1) + NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := max_nsvcs, + num_v4 := omit, num_v6 := num_ip) ); } - /* expect one single SNS-SIZE with RESET flag; 4x v4 EP; no v6 EP */ + /* expect one single SNS-SIZE */ rx := f_ns_exp(tr_SNS_SIZE_ACK(g_nsconfig.nsei, cause), idx); } diff --git a/pcu/osmo-pcu-sns.cfg b/pcu/osmo-pcu-sns.cfg index a8a26bd..cfe4ccf 100644 --- a/pcu/osmo-pcu-sns.cfg +++ b/pcu/osmo-pcu-sns.cfg @@ -23,3 +23,5 @@ gamma 0 pcu-socket /tmp/pcu_bts gb-dialect ip-sns +ns + timer tns-test 10 diff --git a/sgsn/SGSN_Tests_NS.ttcn b/sgsn/SGSN_Tests_NS.ttcn index dd68b05..e5d012f 100644 --- a/sgsn/SGSN_Tests_NS.ttcn +++ b/sgsn/SGSN_Tests_NS.ttcn @@ -47,9 +47,74 @@ f_clean_ns_codec(); } +/* perform outgoing SNS-SIZE procedure */ +testcase TC_SNS_size() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + setverdict(pass); +} + +/* outgoing SNS-SIZE procedure with more BSS side IPs than SGSN can handle */ +testcase TC_SNS_size_too_big() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(cause := NS_CAUSE_INVALID_NR_OF_NSVCS, num_ip := 100); + setverdict(pass); +} + +/* perform outgoing SNS-CONFIG procedure (for BSS) */ +testcase TC_SNS_config_bss() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + setverdict(pass); +} + +/* perform incoming SNS-CONFIG procedure (for SGSN) */ +testcase TC_SNS_config_sgsn() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + setverdict(pass); +} + +/* perform full SNS handshake and then outbound NS-ALIVE */ +testcase TC_SNS_and_alive() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 120.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + f_outgoing_ns_alive(); + setverdict(pass); +} + control { - execute( TC_NS_connect_alive() ); - execute( TC_NS_connect_reset() ); + + if (mp_nsconfig[0].handle_sns) { + execute( TC_SNS_size() ); + execute( TC_SNS_size_too_big() ); + execute( TC_SNS_config_bss() ); + execute( TC_SNS_config_sgsn() ); + execute( TC_SNS_and_alive() ); + } else { + execute( TC_NS_connect_alive() ); + execute( TC_NS_connect_reset() ); + } } } diff --git a/sgsn/SGSN_Tests_SNS.cfg b/sgsn/SGSN_Tests_SNS.cfg new file mode 100644 index 0000000..d4dcea0 --- /dev/null +++ b/sgsn/SGSN_Tests_SNS.cfg @@ -0,0 +1,72 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./SGSN_Tests.default" + +# Local configuration below + +[LOGGING] + +[TESTPORT_PARAMETERS] +*.SGSNVTY.CTRL_HOSTNAME := "127.0.0.10" + +[MODULE_PARAMETERS] +SGSN_Tests.mp_nsconfig := { + { + handle_sns := true, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.103", + remote_ip := "127.0.0.10" + } + } + } + } + }, + { + handle_sns := true, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.103", + remote_ip := "127.0.0.10" + } + } + } + } + }, + { + handle_sns := true, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.103", + remote_ip := "127.0.0.10" + } + } + } + } + } +} +SGSN_Tests.mp_ranap_cfg := { + { + sctp_addr := { 23908, "127.0.0.103", 2905, "127.0.0.200" } + } +} +SGSN_Tests.mp_hlr_ip := "127.0.0.103" +SGSN_Tests.mp_ggsn_ip := "127.0.0.103" + +[MAIN_CONTROLLER] + +[EXECUTE] +SGSN_Tests.control +SGSN_Tests_Iu.control +SGSN_Tests_NS.control diff --git a/sgsn/osmo-sgsn.sns.cfg b/sgsn/osmo-sgsn.sns.cfg new file mode 100644 index 0000000..69f5147 --- /dev/null +++ b/sgsn/osmo-sgsn.sns.cfg @@ -0,0 +1,105 @@ +! +! OsmoSGSN (1.2.0.46-e77e-dirty) configuration saved from vty +!! +! +log gsmtap 127.0.0.1 + logging level set-all debug + logging filter all 1 +! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging print category-hex 0 + logging timestamp 1 + logging print extended-timestamp 1 + logging print file 1 + logging level all everything + logging level mm debug + logging level pag notice + logging level meas notice + logging level ref notice + logging level gprs debug + logging level lns debug + logging level lbssgp info + logging level llc debug + logging level sndcp debug + logging level slhc notice + logging level ranap info + logging level sua info + logging level v42bis info + logging level lglobal info + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms notice + logging level lctrl notice + logging level lgtp debug + logging level lstats notice + logging level lgsup debug + logging level loap notice + logging level lss7 notice + logging level lsccp info + logging level lsua notice + logging level lm3ua notice + logging level lmgcp notice +! +stats interval 5 +! +line vty + no login + bind 127.0.0.10 +ctrl + bind 127.0.0.10 +! +cs7 instance 0 + point-code 0.23.4 + asp asp-clnt-OsmoSGSN-A 2905 0 m3ua + remote-ip 127.0.0.200 + as as-clnt-OsmoSGSN-A m3ua + asp asp-clnt-OsmoSGSN-A + routing-key 3 0.23.4 +ns + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 30 + timer tns-alive 3 + timer tns-alive-retries 10 + bind udp local10 + listen 127.0.0.10 23000 + accept-dynamic-ip-sns + bind udp local10_1 + listen 127.0.0.10 23001 + ip-sns-default bind local10 + !ip-sns-default bind local10_1 +bssgp +sgsn + gtp local-ip 127.0.0.10 + ggsn 0 remote-ip 127.0.0.103 + ggsn 0 gtp-version 1 + gsup remote-ip 127.0.0.103 + gsup remote-port 4222 + auth-policy remote + gsup oap-id 0 + ! apn * ggsn 0 + no cdr filename + no cdr trap + cdr interval 600 + timer t3312 600 + timer t3322 6 + timer t3350 6 + timer t3360 6 + timer t3370 6 + timer t3313 30 + timer t3314 44 + timer t3316 44 + timer t3385 8 + timer t3386 8 + timer t3395 8 + timer t3397 8 + no compression rfc1144 + no compression v42bis -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I821d998704756fa30278f41d0371051db9d3fc58 Gerrit-Change-Number: 23570 Gerrit-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 Apr 1 15:44:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:44:55 +0000 Subject: Change in pysim[master]: pySim-shell: automatic ADM pin from CSV-File In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23538 ) Change subject: pySim-shell: automatic ADM pin from CSV-File ...................................................................... Patch Set 3: (4 comments) https://gerrit.osmocom.org/c/pysim/+/23538/1/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/23538/1/pySim-shell.py at 368 PS1, Line 368: csv_ > I would go for something like ~/.osmocom/pysim/card_data.csv [?] Done https://gerrit.osmocom.org/c/pysim/+/23538/1/pySim-shell.py at 372 PS1, Line 372: card_data_register(CardDataCsv(csv_default)) > they might not be exclusive-or. You could register them in the order that the opts. [?] Done https://gerrit.osmocom.org/c/pysim/+/23538/1/pySim/card_data.py File pySim/card_data.py: https://gerrit.osmocom.org/c/pysim/+/23538/1/pySim/card_data.py at 33 PS1, Line 33: """abstract implementation of gst_data that only verifies the function parameters""" > get_data Done https://gerrit.osmocom.org/c/pysim/+/23538/1/pySim/card_data.py at 70 PS1, Line 70: if not cr: > This way you open, read, parse and search the CSV file on every get(). [?] As far as I remember there were problems. I believe it was the CSV DictReader which can not jump to the beginning of the file again. I will keep it like this. Also reading all at once into memory has disadvantage. It would not be possible to update/edit the CSV without restarting pysim. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I51835ccb16bcbce35e7f3765e8927a4451509e77 Gerrit-Change-Number: 23538 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 15:44: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 Thu Apr 1 15:46:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:46:16 +0000 Subject: Change in pysim[master]: pySim-shells: complete CHV/PIN management tools In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23541 ) Change subject: pySim-shells: complete CHV/PIN management tools ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23541/1/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/23541/1/pySim-shell.py at 146 PS1, Line 146: auto > I would rather use tuple here, it's immutable. Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Gerrit-Change-Number: 23541 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 15:46:16 +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 Apr 1 15:47:50 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:47:50 +0000 Subject: Change in pysim[master]: fileystem: fix ADF selection 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/pysim/+/23536 to look at the new patch set (#4). Change subject: fileystem: fix ADF selection ...................................................................... fileystem: fix ADF selection When the ADF is selected, then this is done by the AID. At the moment only the first 7 bytes of the AID are used to select the ADF. sysmo-isim-sja2 tolerates this, but sysmo-usim-sjs1 does not. The Cards class already has methods to deal with this problem. The method select_adf_by_aid takes an ADF name and completes the AID from an internal list. This can be extended to support partial hexadecimal AIDs as well. Change-Id: If99b143ae5ff42a889c52e8023084692e709e1b1 Related: OS#4963 --- M pySim-read.py M pySim/cards.py M pySim/filesystem.py 3 files changed, 26 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/36/23536/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If99b143ae5ff42a889c52e8023084692e709e1b1 Gerrit-Change-Number: 23536 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Apr 1 15:47:50 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 1 Apr 2021 15:47:50 +0000 Subject: Change in pysim[master]: pySim-shell: complete CHV/PIN management tools 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/pysim/+/23541 to look at the new patch set (#4). Change subject: pySim-shell: complete CHV/PIN management tools ...................................................................... pySim-shell: complete CHV/PIN management tools At the moment we only have a basic version of a verify_chv commnad, but in order to handle any CHV/PIN related situation we also need commands to enable, disable, change and unblock CHV. - fix verify_chv commnad: more distinct parameter names, better help strings, correct pin code encoding and add external source lookup - Add unblock_chv, change_chv, enable_chv and disable_chv commands - add/fix related functions in commands.py Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Related: OS#4963 --- M pySim-shell.py M pySim/card_data.py M pySim/commands.py 3 files changed, 115 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/41/23541/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Gerrit-Change-Number: 23541 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 16:10:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 1 Apr 2021 16:10:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Update config for IP BSS to use SNS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23569 ) Change subject: gbproxy: Update config for IP BSS to use SNS ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90bd101096979b170c38fa2a80abb80d296c4d2e Gerrit-Change-Number: 23569 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 16: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 Thu Apr 1 16:11:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 1 Apr 2021 16:11:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23570 ) Change subject: SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I821d998704756fa30278f41d0371051db9d3fc58 Gerrit-Change-Number: 23570 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 16:11: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 Apr 1 19:27:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:27:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ggsn: Fix TC_pdp4_act_deact_with_single_dns() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23571 ) Change subject: ggsn: Fix TC_pdp4_act_deact_with_single_dns() ...................................................................... ggsn: Fix TC_pdp4_act_deact_with_single_dns() In TC_pdp4_act_deact_with_single_dns we activate, deactivate and then re-activate a PDP context. Hoewver, we re-use the same variable and don't reset the state in between. This results in the second PDP CTX activation to include an end-user-address (static IP allocation), which OsmoGGSN doesn't implement. Before osmo-ggsn Change-Id Iac8868438655fe4e5e07d167d7dbd6273dbb7678, the test passed as osmo-ggsn simply ignored the requested static address. After that change, we reject static addresses and hence the test starts to fail. Change-Id: I1b1869bc2cee39c8fddd8fa63f48bdaa6a65e462 Related: OS#5097 --- M ggsn_tests/GGSN_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/71/23571/1 diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn index be0e565..a0c7b16 100644 --- a/ggsn_tests/GGSN_Tests.ttcn +++ b/ggsn_tests/GGSN_Tests.ttcn @@ -1147,6 +1147,7 @@ f_pdp_ctx_del(ctx, '1'B); /* PCO with secondary DNS only */ + ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn))); ctx.pco_req := valueof(ts_PCO_IPv4_SEC_DNS_IPCP); f_pdp_ctx_act(ctx); pco_neg_dns := f_PCO_extract_proto(ctx.pco_neg, '8021'O, 1); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1b1869bc2cee39c8fddd8fa63f48bdaa6a65e462 Gerrit-Change-Number: 23571 Gerrit-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 Apr 1 19:27:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:27:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Implement minimal PCU-side SNS functionality References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23572 ) Change subject: NS_Emulation: Implement minimal PCU-side SNS functionality ...................................................................... NS_Emulation: Implement minimal PCU-side SNS functionality Using this code, we can run a TTCN3 test using NS_Emulation in IP-SNS mode. It only covers the most basic cases but works for simple scenarios. Change-Id: Id1fb0fcb7a497a9614e82beb8a2c64b5af88150d --- M library/NS_Emulation.ttcnpp 1 file changed, 79 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/72/23572/1 diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index d58dc45..b5fc807 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -413,6 +413,9 @@ f_nsvc_add(nsvc_cfg); } + if (g_config.handle_sns and not g_config.role_sgsn) { + f_sns_outbound_size_config(); + } while (true) { alt { [] as_ns_common() {} @@ -473,6 +476,7 @@ } [g_config.handle_sns and g_config.role_sgsn] as_vcg_sns_sgsn(); + [g_config.handle_sns and not g_config.role_sgsn] as_vcg_sns_pcu(); [] NSVC.receive(tr_NsUdInd(?, ?, ?)) -> value rx_nsudi { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, @@ -545,6 +549,81 @@ } } + /* perform an outbound SNS-SIZE + SNS-CONFIG */ + private function f_sns_outbound_size_config(integer idx := 0) runs on NS_CT { + var NSVCConfiguration nsvc_cfg := g_config.nsvc[idx]; + var NSVC_CT vc; + + if (nsvc_cfg.provider.ip.address_family == AF_INET) { + NSVC.send(SnsRequest:{nsvc_cfg.nsvci, ts_SNS_SIZE(g_config.nsei, rst_flag := true, + max_nsvcs := 1, + num_v4 := 1, num_v6 := omit)}); + } else { + NSVC.send(SnsRequest:{nsvc_cfg.nsvci, ts_SNS_SIZE(g_config.nsei, rst_flag := true, + max_nsvcs := 1, + num_v4 := omit, num_v6 := 1)}); + } + /* expect SIZE-ACK */ + alt { + [] NSVC.receive(SnsIndication:{?, tr_SNS_SIZE_ACK(g_config.nsei, omit)}) -> sender vc; + [] NSVC.receive(NsStatusIndication:?) { repeat; } + } + /* send a SNS-CONFIG in response and expect a SNS-CONFIG-ACK */ + var template (omit) IP4_Elements v4; + var template (omit) IP6_Elements v6; + gen_sns_ip_elems(v4, v6); + NSVC.send(SnsRequest:{nsvc_cfg.nsvci, + ts_SNS_CONFIG(g_config.nsei, true, v4, v6)}) to vc; + alt { + [] as_ns_common_status() { + repeat; + } + [] NSVC.receive(SnsIndication:{?, + tr_SNS_CONFIG_ACK(g_config.nsei, omit)}) from vc { + /* success */ + log("Outbound SNS Config succeeded."); + } + [] NSVC.receive(SnsIndication:{?, + tr_SNS_CONFIG_ACK(g_config.nsei, ?)}) from vc { + setverdict(fail, "Unexpected SNS-CONFIG-NACK"); + self.stop; + } + } + } + + /* simple IP Sub-Network Service responder for the PCU/BSS side. This is not a full implementation + * of the protocol, merely sufficient to make the SGSN side happy to proceed */ + private altstep as_vcg_sns_pcu() runs on NS_CT { + var SnsIndication sind; + var NSVC_CT vc; + + /* FIXME: We assume our peer has only one endpoint */ + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, true, + {tr_SNS_IPv4(g_config.nsvc[0].provider.ip.remote_ip, + g_config.nsvc[0].provider.ip.remote_udp_port)})}) + -> value sind sender vc { + /* blindly acknowledge whatever the SGSN sends */ + NSVC.send(SnsRequest:{sind.nsvci, ts_SNS_CONFIG_ACK(g_config.nsei, omit)}) to vc; + log("Inbound SNS Config succeeded."); + /* switch to "alive" state already before sending the SNS-CONFIG, as otherwise + * there would be a race condition between internally performing the state change + * of all related NS-VCs and the first incoming NS-PDU after SNS-CONFIG-ACK */ + f_broadcast_ns_ctrl(NsCtrlRequest:ForceAliveState); + /* inform all NS-VC that they are now considered alive */ + f_broadcast_ns_ctrl(NsCtrlRequest:StartAliveProcedure); + } + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, false, ?)}) { /* ignore */} + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, true, ?)}) { + setverdict(fail, "Unexpected SNS-CONFIG content"); + self.stop; + } + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(?, ?, ?)}) { + setverdict(fail, "SNS-CONFIG from unexpected NSEI"); + self.stop; + } + + } + /* simple IP Sub-Network Service responder for the SGSN side. This is not a full implementation * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ private altstep as_vcg_sns_sgsn() runs on NS_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id1fb0fcb7a497a9614e82beb8a2c64b5af88150d Gerrit-Change-Number: 23572 Gerrit-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 Apr 1 19:27:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:27:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns/gbproxy/sgsn: Update configs to use logging level lnssignal' References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573 ) Change subject: ns/gbproxy/sgsn: Update configs to use logging level lnssignal' ...................................................................... ns/gbproxy/sgsn: Update configs to use logging level lnssignal' In libosmocore I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d we introduced a new log subsystem; enabel it in the related configs here Change-Id: Ie3d178e68aa81d5636c87940074cb6582ac2f131 --- M gbproxy/osmo-gbproxy.cfg M ns/osmo-ns.sns.cfg M ns/osmo-ns.udp.cfg M sgsn/osmo-sgsn.cfg M sgsn/osmo-sgsn.sns.cfg 5 files changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/73/23573/1 diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index b2ccb3b..dab4ef3 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -10,6 +10,7 @@ logging timestamp 1 logging print file 1 logging level lns debug + logging level lnssignal debug logging level lbssgp debug logging level gprs debug line vty diff --git a/ns/osmo-ns.sns.cfg b/ns/osmo-ns.sns.cfg index ad69f35..58d306e 100644 --- a/ns/osmo-ns.sns.cfg +++ b/ns/osmo-ns.sns.cfg @@ -31,6 +31,7 @@ logging level ljibuf debug logging level lrspro debug logging level lns debug + logging level lnssignal debug logging level lbssgp debug log gsmtap 127.0.0.1 logging filter all 0 @@ -59,6 +60,7 @@ logging level ljibuf debug logging level lrspro debug logging level lns debug + logging level lnssignal debug logging level lbssgp debug ! stats reporter statsd diff --git a/ns/osmo-ns.udp.cfg b/ns/osmo-ns.udp.cfg index 28237c5..9591427 100644 --- a/ns/osmo-ns.udp.cfg +++ b/ns/osmo-ns.udp.cfg @@ -31,6 +31,7 @@ logging level ljibuf debug logging level lrspro debug logging level lns debug + logging level lnssignal debug logging level lbssgp debug log gsmtap 127.0.0.1 logging filter all 0 @@ -59,6 +60,7 @@ logging level ljibuf debug logging level lrspro debug logging level lns debug + logging level lnssignal debug logging level lbssgp debug ! stats reporter statsd diff --git a/sgsn/osmo-sgsn.cfg b/sgsn/osmo-sgsn.cfg index 811d3ff..dfbff6c 100644 --- a/sgsn/osmo-sgsn.cfg +++ b/sgsn/osmo-sgsn.cfg @@ -21,6 +21,7 @@ logging level ref notice logging level gprs debug logging level lns debug + logging level lnssignal debug logging level lbssgp info logging level llc debug logging level sndcp debug diff --git a/sgsn/osmo-sgsn.sns.cfg b/sgsn/osmo-sgsn.sns.cfg index 69f5147..a22e737 100644 --- a/sgsn/osmo-sgsn.sns.cfg +++ b/sgsn/osmo-sgsn.sns.cfg @@ -21,6 +21,7 @@ logging level ref notice logging level gprs debug logging level lns debug + logging level lnssignal debug logging level lbssgp info logging level llc debug logging level sndcp debug -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie3d178e68aa81d5636c87940074cb6582ac2f131 Gerrit-Change-Number: 23573 Gerrit-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 Apr 1 19:28:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:28:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL_Adapter: Add function to obtain FSM instance state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23554 ) Change subject: CTRL_Adapter: Add function to obtain FSM instance state ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I33afc2e73be06e23147b5ac0b0fd3b9003935444 Gerrit-Change-Number: 23554 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 19:28: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 Apr 1 19:29:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:29:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Verify BVC FSM state during bring-up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23555 ) Change subject: gbproxy: Verify BVC FSM state during bring-up ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I272e43b9be8ba53d8a815e8ab099c939f63413a7 Gerrit-Change-Number: 23555 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 19:29:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 19:29:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:29:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ggsn: Fix TC_pdp4_act_deact_with_single_dns() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23571 ) Change subject: ggsn: Fix TC_pdp4_act_deact_with_single_dns() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1b1869bc2cee39c8fddd8fa63f48bdaa6a65e462 Gerrit-Change-Number: 23571 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 19:29: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 Apr 1 19:31:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:31:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL_Adapter: Add function to obtain FSM instance state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23554 ) Change subject: CTRL_Adapter: Add function to obtain FSM instance state ...................................................................... CTRL_Adapter: Add function to obtain FSM instance state This can be useful to verify expectations about the state of FSMs in the IUT. Change-Id: I33afc2e73be06e23147b5ac0b0fd3b9003935444 --- M library/Osmocom_CTRL_Adapter.ttcn 1 file changed, 17 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn index adc2887..34ea300 100644 --- a/library/Osmocom_CTRL_Adapter.ttcn +++ b/library/Osmocom_CTRL_Adapter.ttcn @@ -112,5 +112,22 @@ f_ctrl_get_exp(pt, valueof(ts_bts_trx(bts_nr, trx_nr)) & suffix, exp); } +template (value) charstring ts_fsm_inst_id(charstring class_name, charstring inst_id) := + "fsm." & class_name & ".id." & inst_id & "."; + +/* obtain the state of a specified FSM instance */ +function f_ctrl_get_fsm_inst_state(IPA_CTRL_PT pt, charstring fsm_class_name, charstring fsm_inst_id) +return charstring { + return f_ctrl_get(pt, valueof(ts_fsm_inst_id(fsm_class_name, fsm_inst_id)) & "state"); +} + +/* expect the state of a specified FSM instance to match template */ +function f_ctrl_get_exp_inst_state(IPA_CTRL_PT pt, charstring fsm_class_name, + template (value) charstring fsm_inst_id, + template (present) CtrlValue exp) +{ + f_ctrl_get_exp(pt, valueof(ts_fsm_inst_id(fsm_class_name, valueof(fsm_inst_id))) & "state", exp); +} + } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I33afc2e73be06e23147b5ac0b0fd3b9003935444 Gerrit-Change-Number: 23554 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 Apr 1 19:31:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:31:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Verify BVC FSM state during bring-up In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23555 ) Change subject: gbproxy: Verify BVC FSM state during bring-up ...................................................................... gbproxy: Verify BVC FSM state during bring-up This adds IUT fsm state instrospection via the CTRL interface. docker-playground will need to set "mp_gbproxy_ip" in its configs. Change-Id: I272e43b9be8ba53d8a815e8ab099c939f63413a7 --- M gbproxy/GBProxy_Tests.ttcn M library/Osmocom_Types.ttcn 2 files changed, 40 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/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 91ccbb0..d3c6df6 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -33,6 +33,7 @@ import from TELNETasp_PortType all; import from Osmocom_VTY_Functions all; +import from Osmocom_CTRL_Adapter all; import from LLC_Types all; import from LLC_Templates all; @@ -46,6 +47,8 @@ const integer max_fr_info_size := 1600; modulepar { + charstring mp_gbproxy_ip := "127.0.0.1"; + integer mp_gbproxy_ctrl_port := 4263; /* NRI bit-length. 0 for no pooling */ integer mp_nri_bitlength := 5; roro_integer mp_sgsn_nri := { @@ -330,7 +333,7 @@ * tests that use interleave on SGSN_MGMT.receive() for each SGSN NSEI for example */ const integer NUM_SGSN := 2; -type component test_CT { +type component test_CT extends CTRL_Adapter_CT { var GbInstances g_pcu; var GbInstances g_sgsn; @@ -516,6 +519,14 @@ } } +private template (value) charstring ts_pcu_bvc_fsm_id(uint16_t nsei, uint16_t bvci) := + "NSE" & f_int2str(nsei, 5) & "-BVC" & f_int2str(bvci, 5); + +function f_bvc_fsm_ensure_state(uint16_t nsei, uint16_t bvci, template (present) charstring exp) +runs on CTRL_Adapter_CT { + f_ctrl_get_exp_inst_state(IPA_CTRL, "BSSGP-BVC", ts_pcu_bvc_fsm_id(nsei, bvci), exp); +} + function f_init(float t_guard := 30.0) runs on test_CT { var roro_integer bvci_unblocked; var BssgpStatusIndication bsi; @@ -529,6 +540,8 @@ g_Tguard.start(t_guard); activate(as_gTguard(g_Tguard)); + f_ipa_ctrl_start_client(mp_gbproxy_ip, mp_gbproxy_ctrl_port); + var BssgpBvcConfigs bvcs := { }; for (i := 0; i < lengthof(mp_gbconfigs); i := i+1) { g_pcu[i].cfg := mp_gbconfigs[i]; @@ -616,6 +629,25 @@ } } + /* verify all SGSN-side BVC FSM in IUT are UNBLOCKED */ + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + f_bvc_fsm_ensure_state(mp_nsconfig_sgsn[i].nsei, 0, "UNBLOCKED"); + /* 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; + f_bvc_fsm_ensure_state(mp_nsconfig_sgsn[i].nsei, bvci, "UNBLOCKED"); + } + } + /* verify all PCU-side BVC FSM in IUT are UNBLOCKED */ + for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) { + f_bvc_fsm_ensure_state(mp_nsconfig_pcu[i].nsei, 0, "UNBLOCKED"); + /* iterate over list and check all BVCI */ + for (var integer j := 0; j < lengthof(g_pcu[i].cfg.bvc); j := j+1) { + var BssgpBvci bvci := g_pcu[i].cfg.bvc[j].bvci; + f_bvc_fsm_ensure_state(mp_nsconfig_pcu[i].nsei, bvci, "UNBLOCKED"); + } + } + /* re-start guard timer after all BVCs are up, so it only counts the actual test case */ g_Tguard.start(t_guard); } diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn index 23f8fd9..3c0137c 100644 --- a/library/Osmocom_Types.ttcn +++ b/library/Osmocom_Types.ttcn @@ -51,6 +51,13 @@ AF_INET6 ('0a'O) } +/* like TTCN-3 int2str() but with padding of leading zeroes */ +function f_int2str(integer i, integer total_digits) return charstring { + var charstring istr := int2str(i); + var charstring padstr := hex2str(int2hex(0, total_digits - lengthof(istr))); + return padstr & istr; +} + /* return random integer 0 <= ret < max. According to ETSI ES 201 873 C.6.1, rnd() returns *less* than 1, so * the returned int will always be ret < max, or ret <= (max-1). */ function f_rnd_int(integer max) return integer { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I272e43b9be8ba53d8a815e8ab099c939f63413a7 Gerrit-Change-Number: 23555 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 Apr 1 19:31:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:31:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ggsn: Fix TC_pdp4_act_deact_with_single_dns() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23571 ) Change subject: ggsn: Fix TC_pdp4_act_deact_with_single_dns() ...................................................................... ggsn: Fix TC_pdp4_act_deact_with_single_dns() In TC_pdp4_act_deact_with_single_dns we activate, deactivate and then re-activate a PDP context. Hoewver, we re-use the same variable and don't reset the state in between. This results in the second PDP CTX activation to include an end-user-address (static IP allocation), which OsmoGGSN doesn't implement. Before osmo-ggsn Change-Id Iac8868438655fe4e5e07d167d7dbd6273dbb7678, the test passed as osmo-ggsn simply ignored the requested static address. After that change, we reject static addresses and hence the test starts to fail. Change-Id: I1b1869bc2cee39c8fddd8fa63f48bdaa6a65e462 Related: OS#5097 --- M ggsn_tests/GGSN_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn index be0e565..a0c7b16 100644 --- a/ggsn_tests/GGSN_Tests.ttcn +++ b/ggsn_tests/GGSN_Tests.ttcn @@ -1147,6 +1147,7 @@ f_pdp_ctx_del(ctx, '1'B); /* PCO with secondary DNS only */ + ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn))); ctx.pco_req := valueof(ts_PCO_IPv4_SEC_DNS_IPCP); f_pdp_ctx_act(ctx); pco_neg_dns := f_PCO_extract_proto(ctx.pco_neg, '8021'O, 1); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1b1869bc2cee39c8fddd8fa63f48bdaa6a65e462 Gerrit-Change-Number: 23571 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 Apr 1 19:57:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:57:19 +0000 Subject: Change in pysim[master]: filesystem: allow selection of arbitrary files In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23533 ) Change subject: filesystem: allow selection of arbitrary files ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23533/3/pySim/filesystem.py File pySim/filesystem.py: https://gerrit.osmocom.org/c/pysim/+/23533/3/pySim/filesystem.py at a626 PS3, Line 626: for c in self.selected_file.shell_commands: isn't this unregister-block now a useless copy of the new one you introduce above? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iafff97443130f8bb8c5bc68f51d2fe1d93fff07c Gerrit-Change-Number: 23533 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 19:57: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 Thu Apr 1 19:57:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 19:57:35 +0000 Subject: Change in pysim[master]: ts_31_102: do not add empty ShellCommands class. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23534 ) Change subject: ts_31_102: do not add empty ShellCommands class. ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0e67c570fc4f17641d990a9cd239632ecf622de3 Gerrit-Change-Number: 23534 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 19: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 Apr 1 20:02:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 20:02:03 +0000 Subject: Change in pysim[master]: fileystem: fix ADF selection In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23536 ) Change subject: fileystem: fix ADF selection ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If99b143ae5ff42a889c52e8023084692e709e1b1 Gerrit-Change-Number: 23536 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 20:02: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 Apr 1 20:04:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 20:04:09 +0000 Subject: Change in pysim[master]: pySim-shell: automatic ADM pin from CSV-File In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23538 ) Change subject: pySim-shell: automatic ADM pin from CSV-File ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I51835ccb16bcbce35e7f3765e8927a4451509e77 Gerrit-Change-Number: 23538 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 01 Apr 2021 20:04: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 Apr 1 20:07:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 20:07:16 +0000 Subject: Change in pysim[master]: commands: conserve write cycles In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23539 ) Change subject: commands: conserve write cycles ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ifd1b80d3ede15a7caa29077a37ac7cf58c9053f1 Gerrit-Change-Number: 23539 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 20:07:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 1 20:10:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 20:10:10 +0000 Subject: Change in pysim[master]: pySim-shell: complete CHV/PIN management tools In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23541 ) Change subject: pySim-shell: complete CHV/PIN management tools ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23541/1/pySim/commands.py File pySim/commands.py: https://gerrit.osmocom.org/c/pysim/+/23541/1/pySim/commands.py at 245 PS1, Line 245: RuntimeError('Failed to change chv_no 0x%02X with code 0x%s, %i tries left.' % (chv_no, b2h(pin_code).upper(), int(sw[3]))) > I'm seeing so many repetitions of this line and the arguments, and the functions converting the argu [?] not yet addressed -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Gerrit-Change-Number: 23541 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 20:10:10 +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 Apr 1 20:12:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 20:12:41 +0000 Subject: Change in pysim[master]: pySim-shell: prevent inconsitancy when walking through the FS tree In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23567 ) Change subject: pySim-shell: prevent inconsitancy when walking through the FS tree ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6778faa87bdf5552da74659206bf7a6fc0348d0c Gerrit-Change-Number: 23567 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 20:12: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 Apr 1 20:13:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 1 Apr 2021 20:13:54 +0000 Subject: Change in pysim[master]: pySim-shell: fix and improve file system exporter In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23568 ) Change subject: pySim-shell: fix and improve file system exporter ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9b1712b37e5b39e9016497185510a2a45c4ca6c Gerrit-Change-Number: 23568 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 01 Apr 2021 20:13:54 +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 Apr 2 01:40:18 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 02 Apr 2021 01:40:18 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <6066760aa276c_38382ac31c6845fc268221@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: [ 122s] [COMPILING libboard/qmod/source/board_qmod.c] [ 123s] [COMPILING libboard/qmod/source/card_pres.c] [ 123s] [COMPILING libboard/qmod/source/i2c.c] [ 123s] [COMPILING libboard/qmod/source/wwan_led.c] [ 123s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 123s] [COMPILING apps/dfu/main.c] [ 123s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 123s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 123s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 123s] Memory region Used Size Region Size %age Used [ 123s] rom: 16592 B 16 KB 101.27% [ 123s] ram: 11680 B 48 KB 23.76/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' [ 123s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 208 bytes [ 123s] collect2: error: ld returned 1 exit status [ 123s] % [ 123s] make[2]: *** [Makefile:230: flash] Error 1 [ 123s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 123s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 123s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 123s] dh_auto_build: error: make -j1 returned exit code 2 [ 123s] make: *** [debian/rules:16: build] Error 25 [ 123s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 123s] ### VM INTERACTION START ### [ 127s] [ 116.006130] sysrq: Power Off [ 127s] [ 116.009266] reboot: Power down [ 127s] ### VM INTERACTION END ### [ 127s] [ 127s] sheep85 failed "build simtrace2_0.7.0.76.62ad.dsc" at Fri Apr 2 01:40:10 UTC 2021. [ 127s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Apr 2 01:41:09 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 02 Apr 2021 01:41:09 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <6066764486b32_38382ac31c6845fc2683fe@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 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] [ 174s] Memory region Used Size Region Size %age Used [ 174s] rom: 16600 B 16 KB 101.32% [ 174s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 174s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 174s] /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' [ 174s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 174s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 174s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 174s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 216 bytes [ 174s] collect2: error: ld returned 1 exit status [ 174s] % [ 174s] make[2]: *** [Makefile:230: flash] Error 1 [ 174s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 174s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 174s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 174s] 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] [ 164.996555] sysrq: Power Off [ 177s] [ 165.013145] reboot: Power down [ 177s] ### VM INTERACTION END ### [ 177s] [ 177s] lamb28 failed "build simtrace2_0.7.0.76.62ad.dsc" at Fri Apr 2 01:41:03 UTC 2021. [ 177s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Apr 2 01:48:14 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 02 Apr 2021 01:48:14 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_8.0/i586 In-Reply-To: References: Message-ID: <606677e8b2140_38382ac31c6845fc2690a3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_8.0/i586 Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: [ 116s] ln: failed to create hard link '///usr/src/packages/DEBS/osmo-sip-connector_1.5.0.dsc': File exists [ 116s] ln: failed to create hard link '///usr/src/packages/DEBS/osmo-sip-connector_1.5.0.tar.xz': File exists [ 116s] Warning: mkbaselibs missing in build root, skipping baselibs [ 116s] ... saving statistics [ 116s] ... saving built packages [ 116s] DEBS/osmo-sip-connector-dbg_1.5.0_i386.deb [ 116s] DEBS/osmo-sip-connector-doc_1.5.0_all.deb [ 116s] DEBS/osmo-sip-connector_1.5.0.tar.xz [ 116s] DEBS/osmo-sip-connector_1.5.0_i386.changes [ 116s] DEBS/osmo-sip-connector_1.5.0.dsc [ 116s] DEBS/osmo-sip-connector_1.5.0_i386.deb [ 116s] OTHER/_statistics [ 116s] [ 116s] goat19 finished "build osmo-sip-connector_1.5.0.dsc" at Fri Apr 2 01:47:29 UTC 2021. [ 116s] [ 116s] ### VM INTERACTION START ### [ 117s] Powering off. [ 117s] [ 104.633435] reboot: Power down [ 117s] ### VM INTERACTION END ### [ 117s] build: extracting built packages... [ 117s] DEBS/osmo-sip-connector-dbg_1.5.0_i386.deb [ 117s] DEBS/osmo-sip-connector-doc_1.5.0_all.deb [ 117s] DEBS/osmo-sip-connector_1.5.0.tar.xz [ 117s] DEBS/osmo-sip-connector_1.5.0_i386.changes [ 117s] DEBS/osmo-sip-connector_1.5.0.dsc [ 117s] DEBS/osmo-sip-connector_1.5.0_i386.deb [ 117s] OTHER/_statistics /var/cache/obs/worker/root_5/.build.packages/OTHER/_buildenv: Input/output error (worker was goat19: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 Fri Apr 2 06:29:50 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 2 Apr 2021 06:29:50 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 References: Message-ID: keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23574 ) Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Ignore CHANnel ReQuireD with Access Delay IE > 63 It is observed that a CHANnel ReQuireD with access delay greater than 63 can be received from the Ericsson RBS. This results in osmo-bsc sending back a CHANnel ACTIVation with a Timing Advance IE containing the access delay value. The RBS NACKs this, leading to a BORKEN Channel. This patch makes the maximum acceptable access delay vty-configurable and Ignores CHANnel ReQuireD RSL Messages with Access Delay IE greater than that configured. Default value is 63. Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c 4 files changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/74/23574/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index f40aa3e..e44c51e 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -529,6 +529,9 @@ /* MS/BS Power Control parameters */ struct gsm_power_ctrl_params ms_power_ctrl; struct gsm_power_ctrl_params bs_power_ctrl; + + /* We will ignore CHAN RQD with access delay greater than rach_max_delay */ + uint8_t rach_max_delay; }; #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/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 67e7d27..6027198 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1526,6 +1526,12 @@ return -EINVAL; } rqd->ta = rqd_hdr->data[sizeof(struct gsm48_req_ref)+2]; + if (rqd->ta > bts->rach_max_delay) { + LOG_BTS(bts, DRSL, LOGL_NOTICE, "Ignoring CHAN RQD: Access Delay(%d) greater than %u\n", + rqd->ta, bts->rach_max_delay); + talloc_free(rqd); + return -EINVAL; + } /* Determine channel request cause code */ rqd->reason = get_reason_by_chreq(rqd->ref.ra, bts->network->neci); diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 280fe9f..7abb5a4 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -433,6 +433,8 @@ vty_out(vty, " RACH Max transmissions: %u%s", rach_max_trans_raw2val(bts->si_common.rach_control.max_trans), VTY_NEWLINE); + vty_out(vty, " RACH Max Delay (Max TA IE in CHANnel ReQuireD): %u%s", + bts->rach_max_delay, VTY_NEWLINE); if (bts->si_common.rach_control.cell_bar) vty_out(vty, " CELL IS BARRED%s", VTY_NEWLINE); if (bts->dtxu != GSM48_DTX_SHALL_NOT_BE_USED) @@ -1041,6 +1043,7 @@ vty_out(vty, " rach max transmission %u%s", rach_max_trans_raw2val(bts->si_common.rach_control.max_trans), VTY_NEWLINE); + vty_out(vty, " rach max delay %u%s", bts->rach_max_delay, VTY_NEWLINE); vty_out(vty, " channel-description attach %u%s", bts->si_common.chan_desc.att, VTY_NEWLINE); @@ -2746,6 +2749,20 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_bts_rach_max_delay, + cfg_bts_rach_max_delay_cmd, + X(BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK), + "rach max delay <0-127>", + RACH_STR + "Set the max TA IE value to accept in CHANnel ReQuireD\n" + "Set the max TA IE value to accept in CHANnel ReQuireD\n" + "Maximum TA IE value to accept in CHANnel ReQuireD\n") +{ + struct gsm_bts *bts = vty->index; + bts->rach_max_delay = atoi(argv[0]); + return CMD_SUCCESS; +} + #define REP_ACCH_STR "FACCH/SACCH repetition\n" DEFUN_USRATTR(cfg_bts_rep_dl_facch, @@ -7668,6 +7685,7 @@ install_element(BTS_NODE, &cfg_bts_challoc_cmd); install_element(BTS_NODE, &cfg_bts_rach_tx_integer_cmd); install_element(BTS_NODE, &cfg_bts_rach_max_trans_cmd); + install_element(BTS_NODE, &cfg_bts_rach_max_delay_cmd); install_element(BTS_NODE, &cfg_bts_chan_desc_att_cmd); install_element(BTS_NODE, &cfg_bts_chan_dscr_att_cmd); install_element(BTS_NODE, &cfg_bts_chan_desc_bs_pa_mfrms_cmd); diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 398f26f..6076267 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -357,6 +357,8 @@ bts->bs_power_ctrl = power_ctrl_params_def; bts->bs_power_ctrl.dir = GSM_PWR_CTRL_DIR_DL; + bts->rach_max_delay = 63; + return bts; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 06:41:19 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 2 Apr 2021 06:41:19 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 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/+/23574 to look at the new patch set (#2). Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Ignore CHANnel ReQuireD with Access Delay IE > 63 It is observed that a CHANnel ReQuireD with access delay greater than 63 can be received from the Ericsson RBS. This results in osmo-bsc sending back a CHANnel ACTIVation with a Timing Advance IE containing the access delay value. The RBS NACKs this, leading to a BORKEN Channel. This patch makes the maximum acceptable access delay vty-configurable and Ignores CHANnel ReQuireD RSL Messages with Access Delay IE greater than that configured. Default value is 63. Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c 4 files changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/74/23574/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 06:47:28 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 2 Apr 2021 06:47:28 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 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/+/23574 to look at the new patch set (#3). Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Ignore CHANnel ReQuireD with Access Delay IE > 63 It is observed that a CHANnel ReQuireD with access delay greater than 63 can be received from the Ericsson RBS. This results in osmo-bsc sending back a CHANnel ACTIVation with a Timing Advance IE containing the access delay value. The RBS NACKs this, leading to a BORKEN Channel. This patch makes the maximum acceptable access delay vty-configurable and Ignores CHANnel ReQuireD RSL Messages with Access Delay IE greater than that configured. Default value is 63. Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c 4 files changed, 33 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/74/23574/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 3 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 06:50:08 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 2 Apr 2021 06:50:08 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23574 ) Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c at 2755 PS3, Line 2755: "rach max-delay <0-127>", I actually do not know what is the correct, or reasonable maximum to allow here. Anybody? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 3 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 02 Apr 2021 06:50: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 Fri Apr 2 06:53:00 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 2 Apr 2021 06:53:00 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23574 ) Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c at 2755 PS3, Line 2755: "rach max-delay <0-127>", > I actually do not know what is the correct, or reasonable maximum to allow here. [?] Also, allowing 0 is strange.. This would essentially disable Access. But I guess that's up to the operator. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 3 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 02 Apr 2021 06:53:00 +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 Fri Apr 2 08:06:58 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 2 Apr 2021 08:06:58 +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: keith has uploaded a new patch set (#2) to the change originally created by ipse. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18703 ) Change subject: stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR signal. ...................................................................... stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR signal. Change-Id: Ice3379020039dc3634aa3887939740729d720dee --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bts.c M src/osmo-bsc/lchan_fsm.c 3 files changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/18703/2 -- 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: 2 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith 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 Apr 2 08:06:59 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 2 Apr 2021 08:06:59 +0000 Subject: Change in osmo-bsc[master]: Show BTS Channel Load on Ericsson BTS References: Message-ID: keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23575 ) Change subject: Show BTS Channel Load on Ericsson BTS ...................................................................... Show BTS Channel Load on Ericsson BTS On the RBS, the TRX NM State is always NULL. Change-Id: I8bf6efc7f950246e0a836eceea834575a38a2d48 --- M src/osmo-bsc/chan_alloc.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/75/23575/1 diff --git a/src/osmo-bsc/chan_alloc.c b/src/osmo-bsc/chan_alloc.c index 3569d4e..3de08c4 100644 --- a/src/osmo-bsc/chan_alloc.c +++ b/src/osmo-bsc/chan_alloc.c @@ -56,7 +56,7 @@ struct gsm_lchan *lchan; /* skip administratively deactivated timeslots */ - if (!nm_is_running(&ts->mo.nm_state)) + if (!is_ericsson_bts(trx->bts) && !nm_is_running(&ts->mo.nm_state)) continue; /* Dynamic timeslots have to be counted separately -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8bf6efc7f950246e0a836eceea834575a38a2d48 Gerrit-Change-Number: 23575 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 08:42:51 2021 From: gerrit-no-reply at lists.osmocom.org (merlinchlosta) Date: Fri, 2 Apr 2021 08:42:51 +0000 Subject: Change in pysim[master]: commands, ts_102_221: replace pytlv with uttlv In-Reply-To: References: Message-ID: merlinchlosta has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23483 ) Change subject: commands, ts_102_221: replace pytlv with uttlv ...................................................................... Patch Set 4: I had a quick look here, especially trying to see if this will work for the SUCI_Calc_Info. What I didn't immediately get: uttlv allows setting a map identifier<->name: ``` config = {0xa0: {'type': 'bytes', 'name': 'prot_scheme_id_list'}, 0xa1: {'type': 'TLV', 'name': 'hnet_pubkey_list'}, 0x80: {'type': 'bytes', 'name': 'hnet_pubkey_id'}, 0x81: {'type': 'bytes', 'name': 'hnet_pubkey'},} FIX_TLV.set_tag_map(config) ``` Problem here: the nested TLVs won't be decoded with FIX_TLV but with type 'TLV' (hence, wrong length config). The other thing: how would I encode an array of TLVs all with the same tag, and is the order preserved? ``` t = FIX_TLV() t[0x80] = 123 t[0x80] = 321 ``` This will of course just override the single 0x80 item. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I971b818836aff2fbeb6769f819d496cee4bfa7cf Gerrit-Change-Number: 23483 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: merlinchlosta Gerrit-Comment-Date: Fri, 02 Apr 2021 08:42: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 Apr 2 09:14:34 2021 From: gerrit-no-reply at lists.osmocom.org (merlinchlosta) Date: Fri, 2 Apr 2021 09:14:34 +0000 Subject: Change in pysim[master]: commands, ts_102_221: replace pytlv with uttlv In-Reply-To: References: Message-ID: merlinchlosta has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23483 ) Change subject: commands, ts_102_221: replace pytlv with uttlv ...................................................................... Patch Set 4: > The other thing: how would I encode an array of TLVs all with the same tag, and is the order preserved? > ``` > t = FIX_TLV() > t[0x80] = 123 > t[0x80] = 321 > ``` > This will of course just override the single 0x80 item. Same applies for decoding, only the last element with a specific tag is decoded: ``` t = FIX_TLV() t.parse_array([0x80, 0x01, 0xff, 0x80, 0x01, 0xee]) print(t.tree()) t.parse_array([0x81, 0x01, 0xff, 0x80, 0x01, 0xee]) print(t.tree()) ``` output: ``` 80: ee 80: ee 81: ff ``` Expected: ``` 80: ee 80: ff 80: ee 81: ff ``` -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I971b818836aff2fbeb6769f819d496cee4bfa7cf Gerrit-Change-Number: 23483 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: merlinchlosta Gerrit-Comment-Date: Fri, 02 Apr 2021 09:14: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 Apr 2 09:30:27 2021 From: gerrit-no-reply at lists.osmocom.org (merlinchlosta) Date: Fri, 2 Apr 2021 09:30:27 +0000 Subject: Change in pysim[master]: SUCI_Calc_Info: avoid repetition of test vectors References: Message-ID: merlinchlosta has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23576 ) Change subject: SUCI_Calc_Info: avoid repetition of test vectors ...................................................................... SUCI_Calc_Info: avoid repetition of test vectors Change-Id: I4d1b5f10a7679387578383b72cb9a30ac74f2a07 --- M tests/test_utils.py 1 file changed, 20 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/76/23576/1 diff --git a/tests/test_utils.py b/tests/test_utils.py index 9fa2ba0..badde55 100755 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -5,6 +5,22 @@ from pySim.ts_31_102 import EF_SUCI_Calc_Info class DecTestCase(unittest.TestCase): + # TS33.501 Annex C.4 test keys + hnet_pubkey_profile_b = "0272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD1" # ID 27 in test file + hnet_pubkey_profile_a = "5A8D38864820197C3394B92613B20B91633CBD897119273BF8E4A6F4EEC0A650" # ID 30 in test file + + # TS31.121 4.9.4 EF_SUCI_Calc_Info test file + testfile_suci_calc_info = "A006020101020000A14B80011B8121" +hnet_pubkey_profile_b +"80011E8120" +hnet_pubkey_profile_a + + decoded_testfile_suci = { + 'prot_scheme_id_list': [ + {'priority': 0, 'identifier': 2, 'key_index': 1}, + {'priority': 1, 'identifier': 1, 'key_index': 2}, + {'priority': 2, 'identifier': 0, 'key_index': 0}], + 'hnet_pubkey_list': [ + {'hnet_pubkey_identifier': 27, 'hnet_pubkey': hnet_pubkey_profile_b.lower()}, # because h2b/b2h returns all lower-case + {'hnet_pubkey_identifier': 30, 'hnet_pubkey': hnet_pubkey_profile_a.lower()}] + } def testSplitHexStringToListOf5ByteEntries(self): input_str = "ffffff0003ffffff0002ffffff0001" @@ -84,38 +100,14 @@ def testDecodeSuciCalcInfo(self): - # TS31.121 4.9.4 EF_SUCI_Calc_Info test file - testfile = "A006020101020000A14B80011B81210272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD180011E81205A8D38864820197C3394B92613B20B91633CBD897119273BF8E4A6F4EEC0A650" - expected = { - 'prot_scheme_id_list': [ - {'priority': 0, 'identifier': 2, 'key_index': 1}, - {'priority': 1, 'identifier': 1, 'key_index': 2}, - {'priority': 2, 'identifier': 0, 'key_index': 0}], - 'hnet_pubkey_list': [ - {'hnet_pubkey_identifier': 27, 'hnet_pubkey': '0272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD1'.lower()}, # because h2b/b2h returns all lower-case - {'hnet_pubkey_identifier': 30, 'hnet_pubkey': '5A8D38864820197C3394B92613B20B91633CBD897119273BF8E4A6F4EEC0A650'.lower()}] - } suci_calc_info = EF_SUCI_Calc_Info() - decoded = suci_calc_info._decode_hex(testfile) - self.assertDictEqual(expected, decoded) + decoded = suci_calc_info._decode_hex(self.testfile_suci_calc_info) + self.assertDictEqual(self.decoded_testfile_suci, decoded) def testEncodeSuciCalcInfo(self): - # TS31.121 4.9.4 EF_SUCI_Calc_Info test file - expected = "A006020101020000A14B80011B81210272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD180011E81205A8D38864820197C3394B92613B20B91633CBD897119273BF8E4A6F4EEC0A650" - - decoded_testfile = { - 'prot_scheme_id_list': [ - {'priority': 0, 'identifier': 2, 'key_index': 1}, - {'priority': 1, 'identifier': 1, 'key_index': 2}, - {'priority': 2, 'identifier': 0, 'key_index': 0}], - 'hnet_pubkey_list': [ - {'hnet_pubkey_identifier': 27, 'hnet_pubkey': '0272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD1'.lower()}, - {'hnet_pubkey_identifier': 30, 'hnet_pubkey': '5A8D38864820197C3394B92613B20B91633CBD897119273BF8E4A6F4EEC0A650'.lower()}] - } - suci_calc_info = EF_SUCI_Calc_Info() - encoded = suci_calc_info._encode_hex(decoded_testfile) - self.assertEqual(encoded.lower(), expected.lower()) + encoded = suci_calc_info._encode_hex(self.decoded_testfile_suci) + self.assertEqual(encoded.lower(), self.testfile_suci_calc_info.lower()) if __name__ == "__main__": unittest.main() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4d1b5f10a7679387578383b72cb9a30ac74f2a07 Gerrit-Change-Number: 23576 Gerrit-PatchSet: 1 Gerrit-Owner: merlinchlosta Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 09:35:18 2021 From: gerrit-no-reply at lists.osmocom.org (merlinchlosta) Date: Fri, 2 Apr 2021 09:35:18 +0000 Subject: Change in pysim[master]: Add decoder/encoder for EF.SUCI_Calc_Info 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/+/23564 to look at the new patch set (#2). Change subject: Add decoder/encoder for EF.SUCI_Calc_Info ...................................................................... Add decoder/encoder for EF.SUCI_Calc_Info Change-Id: I848a766e6d00be497c7db905475e0681cce197ac --- M pySim/ts_31_102.py M tests/test_utils.py 2 files changed, 171 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/64/23564/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I848a766e6d00be497c7db905475e0681cce197ac Gerrit-Change-Number: 23564 Gerrit-PatchSet: 2 Gerrit-Owner: merlinchlosta Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 09:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (merlinchlosta) Date: Fri, 2 Apr 2021 09:37:07 +0000 Subject: Change in pysim[master]: SUCI_Calc_Info: avoid repetition of test vectors In-Reply-To: References: Message-ID: merlinchlosta has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/23576 ) Change subject: SUCI_Calc_Info: avoid repetition of test vectors ...................................................................... Abandoned accidentally pushed, belongs to other change -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4d1b5f10a7679387578383b72cb9a30ac74f2a07 Gerrit-Change-Number: 23576 Gerrit-PatchSet: 1 Gerrit-Owner: merlinchlosta Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 09:51:13 2021 From: gerrit-no-reply at lists.osmocom.org (merlinchlosta) Date: Fri, 2 Apr 2021 09:51:13 +0000 Subject: Change in pysim[master]: Add decoder/encoder for EF.SUCI_Calc_Info In-Reply-To: References: Message-ID: merlinchlosta has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23564 ) Change subject: Add decoder/encoder for EF.SUCI_Calc_Info ...................................................................... Patch Set 2: (2 comments) thanks for the feedback, i re-arranged the test vectors a bit, but kept the manual TLV hacking for now. https://gerrit.osmocom.org/c/pysim/+/23564/1/pySim/ts_31_102.py File pySim/ts_31_102.py: https://gerrit.osmocom.org/c/pysim/+/23564/1/pySim/ts_31_102.py at 301 PS1, Line 301: out_bytes.append(0x01) # TODO size, fixed to 1 byte > this manual TLV encoding/decoding works, but is of course quite a bit of a hack. [?] i agree, i'll observe the TLV discussion. not planning to work on other features right now, just had to get my modem unstuck :) my quick uttlv-experiments failed at this exact point, because uttlv wouldn't encode/decode an array of TLVs with the same identifier (like here: 0x80 for all keys in hnet_pubkey_list). https://gerrit.osmocom.org/c/pysim/+/23564/1/tests/test_utils.py File tests/test_utils.py: https://gerrit.osmocom.org/c/pysim/+/23564/1/tests/test_utils.py at 95 PS1, Line 95: 0272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD1 > I would move this and the other key into separate [class] variables, so there would be no need to re [?] Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I848a766e6d00be497c7db905475e0681cce197ac Gerrit-Change-Number: 23564 Gerrit-PatchSet: 2 Gerrit-Owner: merlinchlosta Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 09:51: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 Fri Apr 2 11:40:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 11:40:52 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23577 ) Change subject: Add more documentation to the classes/methods ...................................................................... Add more documentation to the classes/methods * add type annotations in-line with PEP484 * convert existing documentation to follow the "Google Python Style Guide" format understood by the sphinx.ext.napoleon' extension * add much more documentation all over the code base Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a --- M pySim/commands.py M pySim/exceptions.py M pySim/filesystem.py M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py M pySim/utils.py 9 files changed, 600 insertions(+), 155 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/77/23577/1 diff --git a/pySim/commands.py b/pySim/commands.py index 9aed588..9f4d450 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -64,7 +64,7 @@ # from what SIMs responds. See also: # USIM: ETSI TS 102 221, chapter 11.1.1.3 Response Data # SIM: GSM 11.11, chapter 9.2.1 SELECT - def __record_len(self, r): + def __record_len(self, r) -> int: if self.sel_ctrl == "0004": tlv_parsed = self.__parse_fcp(r[-1]) file_descriptor = tlv_parsed['82'] @@ -75,14 +75,15 @@ # Tell the length of a binary file. See also comment # above. - def __len(self, r): + def __len(self, r) -> int: if self.sel_ctrl == "0004": tlv_parsed = self.__parse_fcp(r[-1]) return int(tlv_parsed['80'], 16) else: return int(r[-1][4:8], 16) - def get_atr(self): + def get_atr(self) -> str: + """Return the ATR of the currently inserted card.""" return self._tp.get_atr() @property @@ -100,6 +101,7 @@ self._sel_ctrl = value def try_select_path(self, dir_list): + """ Try to select a specified path given as list of hex-string FIDs""" rv = [] if type(dir_list) is not list: dir_list = [dir_list] @@ -111,6 +113,14 @@ return rv def select_path(self, dir_list): + """Execute SELECT for an entire list/path of FIDs. + + Args: + dir_list: list of FIDs representing the path to select + + Returns: + list of return values (FCP in hex encoding) for each element of the path + """ rv = [] if type(dir_list) is not list: dir_list = [dir_list] @@ -119,14 +129,23 @@ rv.append(data) return rv - def select_file(self, fid): + def select_file(self, fid:str): + """Execute SELECT a given file by FID.""" return self._tp.send_apdu_checksw(self.cla_byte + "a4" + self.sel_ctrl + "02" + fid) - def select_adf(self, aid): + def select_adf(self, aid:str): + """Execute SELECT a given Applicaiton ADF.""" aidlen = ("0" + format(len(aid) // 2, 'x'))[-2:] return self._tp.send_apdu_checksw(self.cla_byte + "a4" + "0404" + aidlen + aid) - def read_binary(self, ef, length=None, offset=0): + def read_binary(self, ef, length:int=None, offset:int=0): + """Execute READD BINARY. + + Args: + ef : string or list of strings indicating name or path of transparent EF + length : number of bytes to read + offset : byte offset in file from which to start reading + """ r = self.select_path(ef) if len(r[-1]) == 0: return (None, None) @@ -144,7 +163,15 @@ raise ValueError('Failed to read (offset %d)' % (offset)) return total_data, sw - def update_binary(self, ef, data, offset=0, verify=False): + def update_binary(self, ef, data:str, offset:int=0, verify:bool=False): + """Execute UPDATE BINARY. + + Args: + ef : string or list of strings indicating name or path of transparent EF + data : hex string of data to be written + offset : byte offset in file from which to start writing + verify : Whether or not to verify data after write + """ self.select_path(ef) pdu = self.cla_byte + 'd6%04x%02x' % (offset, len(data) // 2) + data res = self._tp.send_apdu_checksw(pdu) @@ -152,18 +179,31 @@ self.verify_binary(ef, data, offset) return res - def verify_binary(self, ef, data, offset=0): + def verify_binary(self, ef, data:str, offset:int=0): + """Verify contents of transparent EF. + + Args: + ef : string or list of strings indicating name or path of transparent EF + data : hex string of expected data + offset : byte offset in file from which to start verifying + """ res = self.read_binary(ef, len(data) // 2, offset) if res[0].lower() != data.lower(): raise ValueError('Binary verification failed (expected %s, got %s)' % (data.lower(), res[0].lower())) - def read_record(self, ef, rec_no): + def read_record(self, ef, rec_no:int): + """Execute READ RECORD. + + Args: + ef : string or list of strings indicating name or path of linear fixed EF + rec_no : record number to read + """ r = self.select_path(ef) rec_length = self.__record_len(r) pdu = self.cla_byte + 'b2%02x04%02x' % (rec_no, rec_length) return self._tp.send_apdu(pdu) - def update_record(self, ef, rec_no, data, force_len=False, verify=False): + def update_record(self, ef, rec_no:int, data:str, force_len:bool=False, verify:bool=False): r = self.select_path(ef) if not force_len: rec_length = self.__record_len(r) @@ -177,33 +217,51 @@ self.verify_record(ef, rec_no, data) return res - def verify_record(self, ef, rec_no, data): + def verify_record(self, ef, rec_no:int, data:str): res = self.read_record(ef, rec_no) if res[0].lower() != data.lower(): raise ValueError('Record verification failed (expected %s, got %s)' % (data.lower(), res[0].lower())) def record_size(self, ef): + """Determine the record size of given file. + + Args: + ef : string or list of strings indicating name or path of linear fixed EF + """ r = self.select_path(ef) return self.__record_len(r) def record_count(self, ef): + """Determine the number of records in given file. + + Args: + ef : string or list of strings indicating name or path of linear fixed EF + """ r = self.select_path(ef) return self.__len(r) // self.__record_len(r) def binary_size(self, ef): + """Determine the size of given transparent file. + + Args: + ef : string or list of strings indicating name or path of transparent EF + """ r = self.select_path(ef) return self.__len(r) - def run_gsm(self, rand): + def run_gsm(self, rand:str): + """Execute RUN GSM ALGORITHM.""" if len(rand) != 32: raise ValueError('Invalid rand') self.select_path(['3f00', '7f20']) return self._tp.send_apdu(self.cla_byte + '88000010' + rand) def reset_card(self): + """Physically reset the card""" return self._tp.reset_card() - def verify_chv(self, chv_no, code): + def verify_chv(self, chv_no:int, code:str): + """Verify a given CHV (Card Holder Verification == PIN)""" fc = rpad(b2h(code), 16) data, sw = self._tp.send_apdu(self.cla_byte + '2000' + ('%02X' % chv_no) + '08' + fc) if (sw != '9000'): diff --git a/pySim/exceptions.py b/pySim/exceptions.py index 4fb8f72..f1d1a18 100644 --- a/pySim/exceptions.py +++ b/pySim/exceptions.py @@ -22,18 +22,27 @@ # class NoCardError(Exception): + """No card was found in the reader.""" pass class ProtocolError(Exception): + """Some kind of protocol level error interfacing with the card.""" pass class ReaderError(Exception): + """Some kind of general error with the card reader.""" pass class SwMatchError(Exception): """Raised when an operation specifies an expected SW but the actual SW from the card doesn't match.""" - def __init__(self, sw_actual, sw_expected, rs=None): + def __init__(self, sw_actual:str, sw_expected:str, rs=None): + """ + Args: + sw_actual : the SW we actually received from the card (4 hex digits) + sw_expected : the SW we expected to receive from the card (4 hex digits) + rs : interpreter class to convert SW to string + """ self.sw_actual = sw_actual self.sw_expected = sw_expected self.rs = rs diff --git a/pySim/filesystem.py b/pySim/filesystem.py index cb39b94..ead21f9 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -41,7 +41,16 @@ RESERVED_NAMES = ['..', '.', '/', 'MF'] RESERVED_FIDS = ['3f00'] - def __init__(self, fid=None, sfid=None, name=None, desc=None, parent=None): + def __init__(self, fid:str=None, sfid:str=None, name:str=None, desc:str=None, + parent=None): + """ + Args: + fid : File Identifier (4 hex digits) + sfid : Short File Identifier (2 hex digits, optional) + name : Brief name of the file, lik EF_ICCID + desc : Descriptoin of the file + parent : Parent CardFile object within filesystem hierarchy + """ if not isinstance(self, CardADF) and fid == None: raise ValueError("fid is mandatory") if fid: @@ -72,7 +81,11 @@ return self.fid def fully_qualified_path(self, prefer_name=True): - """Return fully qualified path to file as list of FID or name strings.""" + """Return fully qualified path to file as list of FID or name strings. + + Args: + prefer_name : Preferably build path of names; fall-back to FIDs as required + """ if self.parent != self: ret = self.parent.fully_qualified_path(prefer_name) else: @@ -90,8 +103,16 @@ node = node.parent return node - def _get_self_selectables(self, alias=None, flags = []): - """Return a dict of {'identifier': self} tuples""" + def _get_self_selectables(self, alias:str=None, flags = []): + """Return a dict of {'identifier': self} tuples. + + Args: + alias : Add an alias with given name to 'self' + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing reference to 'self' for all identifiers. + """ sels = {} if alias: sels.update({alias: self}) @@ -102,7 +123,15 @@ return sels def get_selectables(self, flags = []): - """Return a dict of {'identifier': File} that is selectable from the current file.""" + """Return a dict of {'identifier': File} that is selectable from the current file. + + Args: + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing all selectable items. Key is identifier (string), value + a reference to a CardFile (or derived class) instance. + """ sels = {} # we can always select ourself if flags == [] or 'SELF' in flags: @@ -119,7 +148,15 @@ return sels def get_selectable_names(self, flags = []): - """Return a list of strings for all identifiers that are selectable from the current file.""" + """Return a dict of {'identifier': File} that is selectable from the current file. + + Args: + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing all selectable items. Key is identifier (string), value + a reference to a CardFile (or derived class) instance. + """ sels = self.get_selectables(flags) return sels.keys() @@ -140,8 +177,12 @@ def __str__(self): return "DF(%s)" % (super().__str__()) - def add_file(self, child, ignore_existing=False): - """Add a child (DF/EF) to this DF""" + def add_file(self, child:CardFile, ignore_existing:bool=False): + """Add a child (DF/EF) to this DF. + Args: + child: The new DF/EF to be added + ignore_existing: Ignore, if file with given FID already exists. Old one will be kept. + """ if not isinstance(child, CardFile): raise TypeError("Expected a File instance") if not is_hex(child.fid, minlen = 4, maxlen = 4): @@ -164,12 +205,25 @@ child.parent = self def add_files(self, children, ignore_existing=False): - """Add a list of child (DF/EF) to this DF""" + """Add a list of child (DF/EF) to this DF + + Args: + children: List of new DF/EFs to be added + ignore_existing: Ignore, if file[s] with given FID already exists. Old one[s] will be kept. + """ for child in children: self.add_file(child, ignore_existing) - def get_selectables(self, flags = []): - """Get selectable (DF/EF names) from current DF""" + def get_selectables(self, flags = []) -> dict: + """Return a dict of {'identifier': File} that is selectable from the current DF. + + Args: + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing all selectable items. Key is identifier (string), value + a reference to a CardFile (or derived class) instance. + """ # global selectables + our children sels = super().get_selectables(flags) if flags == [] or 'FIDS' in flags: @@ -178,7 +232,8 @@ sels.update({x.name: x for x in self.children.values() if x.name}) return sels - def lookup_file_by_name(self, name): + def lookup_file_by_name(self, name:str) -> CardFile: + """Find a file with given name within current DF.""" if name == None: return None for i in self.children.values(): @@ -186,7 +241,8 @@ return i return None - def lookup_file_by_sfid(self, sfid): + def lookup_file_by_sfid(self, sfid:str) -> CardFile: + """Find a file with given short file ID within current DF.""" if sfid == None: return None for i in self.children.values(): @@ -194,7 +250,8 @@ return i return None - def lookup_file_by_fid(self, fid): + def lookup_file_by_fid(self, fid:str) -> CardFile: + """Find a file with given file ID within current DF.""" if fid in self.children: return self.children[fid] return None @@ -228,13 +285,21 @@ """Get list of completions (AID names)""" return [x.name for x in self.applications] - def get_selectables(self, flags = []): - """Get list of completions (DF/EF/ADF names) from current DF""" + def get_selectables(self, flags = []) -> dict: + """Return a dict of {'identifier': File} that is selectable from the current DF. + + Args: + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing all selectable items. Key is identifier (string), value + a reference to a CardFile (or derived class) instance. + """ sels = super().get_selectables(flags) sels.update(self.get_app_selectables(flags)) return sels - def get_app_selectables(self, flags = []): + def get_app_selectables(self, flags = []) -> dict: """Get applications by AID + name""" sels = {} if flags == [] or 'AIDS' in flags: @@ -243,15 +308,19 @@ sels.update({x.name: x for x in self.applications.values() if x.name}) return sels - def decode_select_response(self, data_hex): - """Decode the response to a SELECT command.""" + def decode_select_response(self, data_hex:str) -> str: + """Decode the response to a SELECT command. + + This is the fall-back method which doesn't perform any decoding. It mostly + exists so specific derived classes can overload it for actual decoding. + """ return data_hex class CardADF(CardDF): """ADF (Application Dedicated File) in the smart card filesystem""" - def __init__(self, aid, **kwargs): + def __init__(self, aid:str, **kwargs): super().__init__(**kwargs) self.aid = aid # Application Identifier if self.parent: @@ -276,8 +345,16 @@ def __str__(self): return "EF(%s)" % (super().__str__()) - def get_selectables(self, flags = []): - """Get list of completions (EF names) from current DF""" + def get_selectables(self, flags = []) -> dict: + """Return a dict of {'identifier': File} that is selectable from the current DF. + + Args: + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing all selectable items. Key is identifier (string), value + a reference to a CardFile (or derived class) instance. + """ #global selectable names + those of the parent DF sels = super().get_selectables(flags) sels.update({x.name:x for x in self.parent.children.values() if x != self}) @@ -285,10 +362,14 @@ class TransparentEF(CardEF): - """Transparent EF (Entry File) in the smart card filesystem""" + """Transparent EF (Entry File) in the smart card filesystem. + + A Transparent EF is a binary file with no formal structure. This is contrary to + Record based EFs which have [fixed size] records that can be individually read/updated.""" @with_default_category('Transparent EF Commands') class ShellCommands(CommandSet): + """Shell commands specific for Trransparent EFs.""" def __init__(self): super().__init__() @@ -326,13 +407,33 @@ if data: self._cmd.poutput(json.dumps(data, indent=4)) - def __init__(self, fid, sfid=None, name=None, desc=None, parent=None, size={1,None}): + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None, + size={1,None}): + """ + Args: + fid : File Identifier (4 hex digits) + sfid : Short File Identifier (2 hex digits, optional) + name : Brief name of the file, lik EF_ICCID + desc : Descriptoin of the file + parent : Parent CardFile object within filesystem hierarchy + size : tuple of (minimum_size, recommended_size) + """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent) self.size = size self.shell_commands = [self.ShellCommands()] - def decode_bin(self, raw_bin_data): - """Decode raw (binary) data into abstract representation. Overloaded by specific classes.""" + def decode_bin(self, raw_bin_data:bytearray): + """Decode raw (binary) data into abstract representation. + + A derived class would typically provide a _decode_bin() or _decode_hex() method + for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_bin_data : binary encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_bin', None) if callable(method): return method(raw_bin_data) @@ -341,8 +442,18 @@ return method(b2h(raw_bin_data)) return {'raw': raw_bin_data.hex()} - def decode_hex(self, raw_hex_data): - """Decode raw (hex string) data into abstract representation. Overloaded by specific classes.""" + def decode_hex(self, raw_hex_data:str): + """Decode raw (hex string) data into abstract representation. + + A derived class would typically provide a _decode_bin() or _decode_hex() method + for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_hex_data : hex-encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_hex', None) if callable(method): return method(raw_hex_data) @@ -352,8 +463,18 @@ return method(raw_bin_data) return {'raw': raw_bin_data.hex()} - def encode_bin(self, abstract_data): - """Encode abstract representation into raw (binary) data. Overloaded by specific classes.""" + def encode_bin(self, abstract_data) -> bytearray: + """Encode abstract representation into raw (binary) data. + + A derived class would typically provide an _encode_bin() or _encode_hex() method + for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + binary encoded data + """ method = getattr(self, '_encode_bin', None) if callable(method): return method(abstract_data) @@ -362,8 +483,18 @@ return h2b(method(abstract_data)) raise NotImplementedError - def encode_hex(self, abstract_data): - """Encode abstract representation into raw (hex string) data. Overloaded by specific classes.""" + def encode_hex(self, abstract_data) -> str: + """Encode abstract representation into raw (hex string) data. + + A derived class would typically provide an _encode_bin() or _encode_hex() method + for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + hex string encoded data + """ method = getattr(self, '_encode_hex', None) if callable(method): return method(abstract_data) @@ -375,10 +506,14 @@ class LinFixedEF(CardEF): - """Linear Fixed EF (Entry File) in the smart card filesystem""" + """Linear Fixed EF (Entry File) in the smart card filesystem. + + Linear Fixed EFs are record oriented files. They consist of a number of fixed-size + records. The records can be individually read/updated.""" @with_default_category('Linear Fixed EF Commands') class ShellCommands(CommandSet): + """Shell commands specific for Linear Fixed EFs.""" def __init__(self): super().__init__() @@ -425,13 +560,33 @@ if data: self._cmd.poutput(data) - def __init__(self, fid, sfid=None, name=None, desc=None, parent=None, rec_len={1,None}): + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None, + rec_len={1,None}): + """ + Args: + fid : File Identifier (4 hex digits) + sfid : Short File Identifier (2 hex digits, optional) + name : Brief name of the file, lik EF_ICCID + desc : Descriptoin of the file + parent : Parent CardFile object within filesystem hierarchy + rec_len : tuple of (minimum_length, recommended_length) + """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent) self.rec_len = rec_len self.shell_commands = [self.ShellCommands()] - def decode_record_hex(self, raw_hex_data): - """Decode raw (hex string) data into abstract representation. Overloaded by specific classes.""" + def decode_record_hex(self, raw_hex_data:str): + """Decode raw (hex string) data into abstract representation. + + A derived class would typically provide a _decode_record_bin() or _decode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_hex_data : hex-encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_record_hex', None) if callable(method): return method(raw_hex_data) @@ -441,8 +596,18 @@ return method(raw_bin_data) return {'raw': raw_bin_data.hex()} - def decode_record_bin(self, raw_bin_data): - """Decode raw (binary) data into abstract representation. Overloaded by specific classes.""" + def decode_record_bin(self, raw_bin_data:bytearray): + """Decode raw (binary) data into abstract representation. + + A derived class would typically provide a _decode_record_bin() or _decode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_bin_data : binary encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_record_bin', None) if callable(method): return method(raw_bin_data) @@ -452,8 +617,18 @@ return method(raw_hex_data) return {'raw': raw_hex_data} - def encode_record_hex(self, abstract_data): - """Encode abstract representation into raw (hex string) data. Overloaded by specific classes.""" + def encode_record_hex(self, abstract_data) -> str: + """Encode abstract representation into raw (hex string) data. + + A derived class would typically provide an _encode_record_bin() or _encode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + hex string encoded data + """ method = getattr(self, '_encode_record_hex', None) if callable(method): return method(abstract_data) @@ -463,8 +638,18 @@ return b2h(raww_bin_data) raise NotImplementedError - def encode_record_bin(self, abstract_data): - """Encode abstract representation into raw (binary) data. Overloaded by specific classes.""" + def encode_record_bin(self, abstract_data) -> bytearray: + """Encode abstract representation into raw (binary) data. + + A derived class would typically provide an _encode_record_bin() or _encode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + binary encoded data + """ method = getattr(self, '_encode_record_bin', None) if callable(method): return method(abstract_data) @@ -476,23 +661,46 @@ class CyclicEF(LinFixedEF): """Cyclic EF (Entry File) in the smart card filesystem""" # we don't really have any special support for those; just recycling LinFixedEF here - def __init__(self, fid, sfid=None, name=None, desc=None, parent=None, rec_len={1,None}): + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None, + rec_len={1,None}): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent, rec_len=rec_len) class TransRecEF(TransparentEF): """Transparent EF (Entry File) containing fixed-size records. + These are the real odd-balls and mostly look like mistakes in the specification: Specified as 'transparent' EF, but actually containing several fixed-length records inside. We add a special class for those, so the user only has to provide encoder/decoder functions for a record, while this class takes care of split / merge of records. """ - def __init__(self, fid, sfid=None, name=None, desc=None, parent=None, rec_len=None, size={1,None}): + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None, + rec_len=None, size={1,None}): + """ + Args: + fid : File Identifier (4 hex digits) + sfid : Short File Identifier (2 hex digits, optional) + name : Brief name of the file, lik EF_ICCID + desc : Descriptoin of the file + parent : Parent CardFile object within filesystem hierarchy + rec_len : Length of the fixed-length records within transparent EF + size : tuple of (minimum_size, recommended_size) + """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent, size=size) self.rec_len = rec_len def decode_record_hex(self, raw_hex_data): - """Decode raw (hex string) data into abstract representation. Overloaded by specific classes.""" + """Decode raw (hex string) data into abstract representation. + + A derived class would typically provide a _decode_record_bin() or _decode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_hex_data : hex-encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_record_hex', None) if callable(method): return method(raw_hex_data) @@ -502,8 +710,18 @@ return method(raw_bin_data) return {'raw': raw_hex_data} - def decode_record_bin(self, raw_bin_data): - """Decode raw (hex string) data into abstract representation. Overloaded by specific classes.""" + def decode_record_bin(self, raw_bin_data:bytearray): + """Decode raw (binary) data into abstract representation. + + A derived class would typically provide a _decode_record_bin() or _decode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_bin_data : binary encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_record_bin', None) if callable(method): return method(raw_bin_data) @@ -513,8 +731,18 @@ return method(raw_hex_data) return {'raw': raw_hex_data} - def encode_record_hex(self, abstract_data): - """Encode abstract representation into raw (hex string) data. Overloaded by specific classes.""" + def encode_record_hex(self, abstract_data) -> str: + """Encode abstract representation into raw (hex string) data. + + A derived class would typically provide an _encode_record_bin() or _encode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + hex string encoded data + """ method = getattr(self, '_encode_record_hex', None) if callable(method): return method(abstract_data) @@ -523,8 +751,18 @@ return h2b(method(abstract_data)) raise NotImplementedError - def encode_record_bin(self, abstract_data): - """Encode abstract representation into raw (binary) data. Overloaded by specific classes.""" + def encode_record_bin(self, abstract_data) -> bytearray: + """Encode abstract representation into raw (binary) data. + + A derived class would typically provide an _encode_record_bin() or _encode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + binary encoded data + """ method = getattr(self, '_encode_record_bin', None) if callable(method): return method(abstract_data) @@ -549,6 +787,11 @@ class RuntimeState(object): """Represent the runtime state of a session with a card.""" def __init__(self, card, profile): + """ + Args: + card : pysim.cards.Card instance + profile : CardProfile instance + """ self.mf = CardMF() self.card = card self.selected_file = self.mf @@ -581,15 +824,22 @@ print("error: could not determine card applications") return apps_taken - def get_cwd(self): - """Obtain the current working directory.""" + def get_cwd(self) -> CardDF: + """Obtain the current working directory. + + Returns: + CardDF instance + """ if isinstance(self.selected_file, CardDF): return self.selected_file else: return self.selected_file.parent - def get_application(self): - """Obtain the currently selected application (if any).""" + def get_application(self) -> CardADF: + """Obtain the currently selected application (if any). + + Returns: + CardADF() instance or None""" # iterate upwards from selected file; check if any is an ADF node = self.selected_file while node.parent != node: @@ -598,9 +848,16 @@ node = node.parent return None - def interpret_sw(self, sw): - """Interpret the given SW relative to the currently selected Application - or the underlying profile.""" + def interpret_sw(self, sw:str): + """Interpret a given status word relative to the currently selected application + or the underlying card profile. + + Args: + sw : Status word as string of 4 hexd digits + + Returns: + Tuple of two strings + """ app = self.get_application() if app: # The application either comes with its own interpret_sw @@ -614,8 +871,13 @@ else: return self.profile.interpret_sw(sw) - def select(self, name, cmd_app=None): - """Change current directory""" + def select(self, name:str, cmd_app=None): + """Select a file (EF, DF, ADF, MF, ...). + + Args: + name : Name of file to select + cmd_app : Command Application State (for unregistering old file commands) + """ sels = self.selected_file.get_selectables() if is_hex(name): name = name.lower() @@ -645,43 +907,98 @@ else: raise ValueError("Cannot select unknown %s" % (name)) - def read_binary(self, length=None, offset=0): + def read_binary(self, length:int=None, offset:int=0): + """Read [part of] a transparent EF binary data. + + Args: + length : Amount of data to read (None: as much as possible) + offset : Offset into the file from which to read 'length' bytes + Returns: + binary data read from the file + """ if not isinstance(self.selected_file, TransparentEF): raise TypeError("Only works with TransparentEF") return self.card._scc.read_binary(self.selected_file.fid, length, offset) def read_binary_dec(self): + """Read [part of] a transparent EF binary data and decode it. + + Args: + length : Amount of data to read (None: as much as possible) + offset : Offset into the file from which to read 'length' bytes + Returns: + abstract decode data read from the file + """ (data, sw) = self.read_binary() dec_data = self.selected_file.decode_hex(data) print("%s: %s -> %s" % (sw, data, dec_data)) return (dec_data, sw) - def update_binary(self, data_hex, offset=0): + def update_binary(self, data_hex:str, offset:int=0): + """Update transparent EF binary data. + + Args: + data_hex : hex string of data to be written + offset : Offset into the file from which to write 'data_hex' + """ if not isinstance(self.selected_file, TransparentEF): raise TypeError("Only works with TransparentEF") return self.card._scc.update_binary(self.selected_file.fid, data_hex, offset) def update_binary_dec(self, data): + """Update transparent EF from abstract data. Encodes the data to binary and + then updates the EF with it. + + Args: + data : abstract data which is to be encoded and written + """ data_hex = self.selected_file.encode_hex(data) print("%s -> %s" % (data, data_hex)) return self.update_binary(data_hex) - def read_record(self, rec_nr=0): + def read_record(self, rec_nr:int=0): + """Read a record as binary data. + + Args: + rec_nr : Record number to read + Returns: + hex string of binary data contained in record + """ if not isinstance(self.selected_file, LinFixedEF): raise TypeError("Only works with Linear Fixed EF") # returns a string of hex nibbles return self.card._scc.read_record(self.selected_file.fid, rec_nr) - def read_record_dec(self, rec_nr=0): + def read_record_dec(self, rec_nr:int=0): + """Read a record and decode it to abstract data. + + Args: + rec_nr : Record number to read + Returns: + abstract data contained in record + """ (data, sw) = self.read_record(rec_nr) return (self.selected_file.decode_record_hex(data), sw) - def update_record(self, rec_nr, data_hex): + def update_record(self, rec_nr:int, data_hex): + """Update a record with given binary data + + Args: + rec_nr : Record number to read + data_hex : Hex string binary data to be written + """ if not isinstance(self.selected_file, LinFixedEF): raise TypeError("Only works with Linear Fixed EF") return self.card._scc.update_record(self.selected_file.fid, rec_nr, data_hex) - def update_record_dec(self, rec_nr, data): + def update_record_dec(self, rec_nr:int, data): + """Update a record with given abstract data. Will encode abstract to binary data + and then write it to the given record on the card. + + Args: + rec_nr : Record number to read + data_hex : Abstract data to be written + """ hex_data = self.selected_file.encode_record_hex(data) return self.update_record(self, rec_nr, data_hex) @@ -694,9 +1011,15 @@ self.fcp = None -def interpret_sw(sw_data, sw): - """Interpret a given status word within the profile. Returns tuple of - two strings""" +def interpret_sw(sw_data:dict, sw:str): + """Interpret a given status word. + + Args: + sw_data : Hierarchical dict of status word matches + sw : status word to match (string of 4 hex digits) + Returns: + tuple of two strings (class_string, description) + """ for class_str, swdict in sw_data.items(): # first try direct match if sw in swdict: @@ -710,7 +1033,12 @@ class CardApplication(object): """A card application is represented by an ADF (with contained hierarchy) and optionally some SW definitions.""" - def __init__(self, name, adf=None, sw=None): + def __init__(self, name, adf:str=None, sw:dict=None): + """ + Args: + adf : ADF name + sw : Dict of status word conversions + """ self.name = name self.adf = adf self.sw = sw or dict() @@ -719,8 +1047,14 @@ return "APP(%s)" % (self.name) def interpret_sw(self, sw): - """Interpret a given status word within the application. Returns tuple of - two strings""" + """Interpret a given status word within the application. + + Args: + sw : Status word as string of 4 hexd digits + + Returns: + Tuple of two strings + """ return interpret_sw(self.sw, sw) class CardProfile(object): @@ -728,6 +1062,14 @@ applications as well as profile-specific SW and shell commands. Every card has one card profile, but there may be multiple applications within that profile.""" def __init__(self, name, **kw): + """ + Args: + desc (str) : Description + files_in_mf : List of CardEF instances present in MF + applications : List of CardApplications present on card + sw : List of status word definitions + shell_cmdsets : List of cmd2 shell command sets of profile-specific commands + """ self.name = name self.desc = kw.get("desc", None) self.files_in_mf = kw.get("files_in_mf", []) @@ -739,9 +1081,20 @@ return self.name def add_application(self, app): + """Add an application to a card profile. + + Args: + app : CardApplication instance to be added to profile + """ self.applications.append(app) - def interpret_sw(self, sw): - """Interpret a given status word within the profile. Returns tuple of - two strings""" + def interpret_sw(self, sw:str): + """Interpret a given status word within the profile. + + Args: + sw : Status word as string of 4 hexd digits + + Returns: + Tuple of two strings + """ return interpret_sw(self.sw, sw) diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index d720259..f946af8 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -24,48 +24,53 @@ # class LinkBase(object): + """Base class for link/transport to card.""" - def wait_for_card(self, timeout=None, newcardonly=False): - """wait_for_card(): Wait for a card and connect to it + def wait_for_card(self, timeout:int=None, newcardonly:bool=False): + """Wait for a card and connect to it - timeout : Maximum wait time (None=no timeout) - newcardonly : Should we wait for a new card, or an already - inserted one ? + Args: + timeout : Maximum wait time in seconds (None=no timeout) + newcardonly : Should we wait for a new card, or an already inserted one ? """ pass def connect(self): - """connect(): Connect to a card immediately + """Connect to a card immediately """ pass def disconnect(self): - """disconnect(): Disconnect from card + """Disconnect from card """ pass def reset_card(self): - """reset_card(): Resets the card (power down/up) + """Resets the card (power down/up) """ pass - def send_apdu_raw(self, pdu): - """send_apdu_raw(pdu): Sends an APDU with minimal processing + def send_apdu_raw(self, pdu:str): + """Sends an APDU with minimal processing - pdu : string of hexadecimal characters (ex. "A0A40000023F00") - return : tuple(data, sw), where - data : string (in hex) of returned data (ex. "074F4EFFFF") - sw : string (in hex) of status word (ex. "9000") + Args: + pdu : string of hexadecimal characters (ex. "A0A40000023F00") + Returns: + tuple(data, sw), where + data : string (in hex) of returned data (ex. "074F4EFFFF") + sw : string (in hex) of status word (ex. "9000") """ pass def send_apdu(self, pdu): - """send_apdu(pdu): Sends an APDU and auto fetch response data + """Sends an APDU and auto fetch response data - pdu : string of hexadecimal characters (ex. "A0A40000023F00") - return : tuple(data, sw), where - data : string (in hex) of returned data (ex. "074F4EFFFF") - sw : string (in hex) of status word (ex. "9000") + Args: + pdu : string of hexadecimal characters (ex. "A0A40000023F00") + Returns: + tuple(data, sw), where + data : string (in hex) of returned data (ex. "074F4EFFFF") + sw : string (in hex) of status word (ex. "9000") """ data, sw = self.send_apdu_raw(pdu) @@ -82,15 +87,16 @@ return data, sw def send_apdu_checksw(self, pdu, sw="9000"): - """send_apdu_checksw(pdu,sw): Sends an APDU and check returned SW + """Sends an APDU and check returned SW - pdu : string of hexadecimal characters (ex. "A0A40000023F00") - sw : string of 4 hexadecimal characters (ex. "9000"). The - user may mask out certain digits using a '?' to add some - ambiguity if needed. - return : tuple(data, sw), where - data : string (in hex) of returned data (ex. "074F4EFFFF") - sw : string (in hex) of status word (ex. "9000") + Args: + pdu : string of hexadecimal characters (ex. "A0A40000023F00") + sw : string of 4 hexadecimal characters (ex. "9000"). The user may mask out certain + digits using a '?' to add some ambiguity if needed. + Returns: + tuple(data, sw), where + data : string (in hex) of returned data (ex. "074F4EFFFF") + sw : string (in hex) of status word (ex. "9000") """ rv = self.send_apdu(pdu) diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py index 7f99d21..467d5ee 100644 --- a/pySim/transport/calypso.py +++ b/pySim/transport/calypso.py @@ -1,9 +1,5 @@ # -*- coding: utf-8 -*- -""" pySim: Transport Link for Calypso bases phones -""" - -# # Copyright (C) 2018 Vadim Yanitskiy # # This program is free software: you can redistribute it and/or modify @@ -73,8 +69,9 @@ self.data += pdu class CalypsoSimLink(LinkBase): + """Transport Link for Calypso based phones.""" - def __init__(self, sock_path = "/tmp/osmocom_l2"): + def __init__(self, sock_path:str = "/tmp/osmocom_l2"): # Make sure that a given socket path exists if not os.path.exists(sock_path): raise ReaderError("There is no such ('%s') UNIX socket" % sock_path) @@ -119,7 +116,6 @@ pass # Nothing to do really ... def send_apdu_raw(self, pdu): - """see LinkBase.send_apdu_raw""" # Request FULL reset req_msg = L1CTLMessageSIM(h2b(pdu)) diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py index 86d4443..fccd388 100644 --- a/pySim/transport/modem_atcmd.py +++ b/pySim/transport/modem_atcmd.py @@ -1,8 +1,5 @@ # -*- coding: utf-8 -*- -""" pySim: Transport Link for 3GPP TS 27.007 compliant modems -""" - # Copyright (C) 2020 Vadim Yanitskiy # # This program is free software: you can redistribute it and/or modify @@ -31,7 +28,8 @@ # log.root.setLevel(log.DEBUG) class ModemATCommandLink(LinkBase): - def __init__(self, device='/dev/ttyUSB0', baudrate=115200): + """Transport Link for 3GPP TS 27.007 compliant modems.""" + def __init__(self, device:str='/dev/ttyUSB0', baudrate:int=115200): self._sl = serial.Serial(device, baudrate, timeout=5) self._device = device self._atr = None diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index 2c2cbb9..f08f71a 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -1,9 +1,5 @@ # -*- coding: utf-8 -*- -""" pySim: PCSC reader transport link -""" - -# # Copyright (C) 2009-2010 Sylvain Munaut # Copyright (C) 2010 Harald Welte # @@ -32,8 +28,9 @@ class PcscSimLink(LinkBase): + """ pySim: PCSC reader transport link.""" - def __init__(self, reader_number=0): + def __init__(self, reader_number:int=0): r = readers() self._reader = r[reader_number] self._con = self._reader.createConnection() @@ -46,7 +43,7 @@ pass return - def wait_for_card(self, timeout=None, newcardonly=False): + def wait_for_card(self, timeout:int=None, newcardonly:bool=False): cr = CardRequest(readers=[self._reader], timeout=timeout, newcardonly=newcardonly) try: cr.waitforcard() @@ -75,7 +72,6 @@ return 1 def send_apdu_raw(self, pdu): - """see LinkBase.send_apdu_raw""" apdu = h2i(pdu) diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py index 03d3f38..6d39303 100644 --- a/pySim/transport/serial.py +++ b/pySim/transport/serial.py @@ -1,9 +1,5 @@ # -*- coding: utf-8 -*- -""" pySim: Transport Link for serial (RS232) based readers included with simcard -""" - -# # Copyright (C) 2009-2010 Sylvain Munaut # # This program is free software: you can redistribute it and/or modify @@ -30,8 +26,10 @@ class SerialSimLink(LinkBase): + """ pySim: Transport Link for serial (RS232) based readers included with simcard""" - def __init__(self, device='/dev/ttyUSB0', baudrate=9600, rst='-rts', debug=False): + def __init__(self, device:str='/dev/ttyUSB0', baudrate:int=9600, rst:str='-rts', + debug:bool=False): if not os.path.exists(device): raise ValueError("device file %s does not exist -- abort" % device) self._sl = serial.Serial( @@ -183,7 +181,6 @@ return self._sl.read() def send_apdu_raw(self, pdu): - """see LinkBase.send_apdu_raw""" pdu = h2b(pdu) data_len = ord(pdu[4]) # P3 diff --git a/pySim/utils.py b/pySim/utils.py index 0848b01..607526c 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -21,43 +21,65 @@ # -def h2b(s): +def h2b(s: str) -> bytearray: """convert from a string of hex nibbles to a sequence of bytes""" return bytearray.fromhex(s) -def b2h(b): +def b2h(b: bytearray) -> str: """convert from a sequence of bytes to a string of hex nibbles""" return ''.join(['%02x'%(x) for x in b]) -def h2i(s): +def h2i(s:str): + """convert from a string of hex nibbles to a list of integers""" return [(int(x,16)<<4)+int(y,16) for x,y in zip(s[0::2], s[1::2])] -def i2h(s): +def i2h(s) -> str: + """convert from a list of integers to a string of hex nibbles""" return ''.join(['%02x'%(x) for x in s]) -def h2s(s): +def h2s(s:str) -> str: + """convert from a string of hex nibbles to an ASCII string""" return ''.join([chr((int(x,16)<<4)+int(y,16)) for x,y in zip(s[0::2], s[1::2]) if int(x + y, 16) != 0xff]) -def s2h(s): +def s2h(s:str) -> str: + """convert from an ASCII string to a string of hex nibbles""" b = bytearray() b.extend(map(ord, s)) return b2h(b) # List of bytes to string -def i2s(s): +def i2s(s) -> str: + """convert from a list of integers to an ASCII string""" return ''.join([chr(x) for x in s]) -def swap_nibbles(s): +def swap_nibbles(s:str) -> str: + """swap the nibbles in a hex string""" return ''.join([x+y for x,y in zip(s[1::2], s[0::2])]) -def rpad(s, l, c='f'): +def rpad(s:str, l:int, c='f') -> str: + """pad string on the right side. + Args: + s : string to pad + l : total length to pad to + c : padding character + Returns: + String 's' padded with as many 'c' as needed to reach total length of 'l' + """ return s + c * (l - len(s)) -def lpad(s, l, c='f'): +def lpad(s:str, l:int, c='f') -> str: + """pad string on the left side. + Args: + s : string to pad + l : total length to pad to + c : padding character + Returns: + String 's' padded with as many 'c' as needed to reach total length of 'l' + """ return c * (l - len(s)) + s -def half_round_up(n): +def half_round_up(n:int) -> int: return (n + 1)//2 # IMSI encoded format: @@ -75,8 +97,8 @@ # Because of this, an odd length IMSI fits exactly into len(imsi) + 1 // 2 bytes, whereas an # even length IMSI only uses half of the last byte. -def enc_imsi(imsi): - """Converts a string imsi into the value of the EF""" +def enc_imsi(imsi:str): + """Converts a string IMSI into the encoded value of the EF""" l = half_round_up(len(imsi) + 1) # Required bytes - include space for odd/even indicator oe = len(imsi) & 1 # Odd (1) / Even (0) ei = '%02x' % l + swap_nibbles('%01x%s' % ((oe<<3)|1, rpad(imsi, 15))) @@ -781,7 +803,7 @@ return None -def sw_match(sw, pattern): +def sw_match(sw:str, pattern:str) -> str: """Match given SW against given pattern.""" # Create a masked version of the returned status word sw_lower = sw.lower() @@ -796,8 +818,18 @@ # Compare the masked version against the pattern return sw_masked == pattern -def tabulate_str_list(str_list, width = 79, hspace = 2, lspace = 1, align_left = True): - """Pretty print a list of strings into a tabulated form""" +def tabulate_str_list(str_list, width:int = 79, hspace:int = 2, lspace:int = 1, + align_left:bool = True): + """Pretty print a list of strings into a tabulated form. + + Args: + width : total width in characters per line + space : horizontal space between cells + lspace : number of spaces before row + align_lef : Align text to the left side + Returns: + multi-line string containing formatted table + """ if str_list == None: return "" if len(str_list) <= 0: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-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 Apr 2 11:49:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 11:49:52 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: Hello Jenkins Builder, tnt, fixeria, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23577 to look at the new patch set (#2). Change subject: Add more documentation to the classes/methods ...................................................................... Add more documentation to the classes/methods * add type annotations in-line with PEP484 * convert existing documentation to follow the "Google Python Style Guide" format understood by the sphinx.ext.napoleon' extension * add much more documentation all over the code base Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a --- M pySim/commands.py M pySim/exceptions.py M pySim/filesystem.py M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py M pySim/utils.py 9 files changed, 614 insertions(+), 169 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/77/23577/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria 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 Fri Apr 2 11:54:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 11:54:23 +0000 Subject: Change in pysim[master]: Add decoder/encoder for EF.SUCI_Calc_Info In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23564 ) Change subject: Add decoder/encoder for EF.SUCI_Calc_Info ...................................................................... Patch Set 2: (1 comment) one more detai; https://gerrit.osmocom.org/c/pysim/+/23564/2/pySim/ts_31_102.py File pySim/ts_31_102.py: https://gerrit.osmocom.org/c/pysim/+/23564/2/pySim/ts_31_102.py at 279 PS2, Line 279: def __init__(self, fid="4f07", sfid=0x07, name='EF.SUCI_Calc_Info', size={2, None}, please note this file uses '4 spaces' indent, while your new code all uses tab-indent. I know it's sort-of weird that different files in pySim use different indent, and that needs to be cleaned up. Hoewevre, I think it's best to keep the indent within a file consistent. Other than that, I would merge your patch for now, and then resolve the tlv bits iteratively once we settle on some general new TLV parser for all of the code. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I848a766e6d00be497c7db905475e0681cce197ac Gerrit-Change-Number: 23564 Gerrit-PatchSet: 2 Gerrit-Owner: merlinchlosta Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 11:54:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 11:57:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 11:57:21 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23574 ) Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Patch Set 3: (2 comments) apart from the NOTICE I think it's good to get merged. https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/abis_rsl.c at 1530 PS3, Line 1530: LOGL_NOTICE not sure we want 'notice' on all of these, if this happens quite frequently on some BTSs. In the end, it is you (Rhizomatica) who suffers most from all of these ending up in logs ;) We do have the counter, which is great. I personally wouldn't go beyond DEBUG for the log, but it's of course always a bit of a matter of taste. https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c at 2755 PS3, Line 2755: "rach max-delay <0-127>", > Also, allowing 0 is strange.. This would essentially disable Access. [?] I think 1-127 or 1-255 is a reasonably permitted range. 0 is indeed odd. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 3 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 11:57:21 +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 Fri Apr 2 11:57:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 11:57:57 +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 2: Code-Review+1 -- 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: 2 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 02 Apr 2021 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 Fri Apr 2 12:10:17 2021 From: gerrit-no-reply at lists.osmocom.org (merlinchlosta) Date: Fri, 2 Apr 2021 12:10:17 +0000 Subject: Change in pysim[master]: Add decoder/encoder for EF.SUCI_Calc_Info 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/+/23564 to look at the new patch set (#3). Change subject: Add decoder/encoder for EF.SUCI_Calc_Info ...................................................................... Add decoder/encoder for EF.SUCI_Calc_Info Change-Id: I848a766e6d00be497c7db905475e0681cce197ac --- M pySim/ts_31_102.py M tests/test_utils.py 2 files changed, 171 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/64/23564/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I848a766e6d00be497c7db905475e0681cce197ac Gerrit-Change-Number: 23564 Gerrit-PatchSet: 3 Gerrit-Owner: merlinchlosta Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 12:12:22 2021 From: gerrit-no-reply at lists.osmocom.org (merlinchlosta) Date: Fri, 2 Apr 2021 12:12:22 +0000 Subject: Change in pysim[master]: Add decoder/encoder for EF.SUCI_Calc_Info In-Reply-To: References: Message-ID: merlinchlosta has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23564 ) Change subject: Add decoder/encoder for EF.SUCI_Calc_Info ...................................................................... Patch Set 3: (1 comment) done. i guess EF_UST_map confused my editor, that's tab-indented. i'll leave it to a coordinated clean-up commit :) https://gerrit.osmocom.org/c/pysim/+/23564/2/pySim/ts_31_102.py File pySim/ts_31_102.py: https://gerrit.osmocom.org/c/pysim/+/23564/2/pySim/ts_31_102.py at 279 PS2, Line 279: def __init__(self, fid="4f07", sfid=0x07, name='EF.SUCI_Calc_Info', size={2, None}, > please note this file uses '4 spaces' indent, while your new code all uses tab-indent. [?] Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I848a766e6d00be497c7db905475e0681cce197ac Gerrit-Change-Number: 23564 Gerrit-PatchSet: 3 Gerrit-Owner: merlinchlosta Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 12:12: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 Fri Apr 2 12:45:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 2 Apr 2021 12:45:54 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23574 ) Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3//COMMIT_MSG at 19 PS3, Line 19: Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Related: OS#5096 https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c at 2754 PS3, Line 2754: BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK As far as I can see, this parameter applies immediately, so: DEFUN_ATTR(..., CMD_ATTR_IMMEDIATE); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 3 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 12:45:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 13:36:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 2 Apr 2021 13:36:14 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23577 ) Change subject: Add more documentation to the classes/methods ...................................................................... Patch Set 2: (5 comments) https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/commands.py File pySim/commands.py: https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/commands.py at 141 PS2, Line 141: length:int=None Python is weird: * for arguments without type hints their PEP recommends no spaces around '='; * for arguments with type hints they recommend: length: int = None. Just a cosmetic note. https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py File pySim/filesystem.py: https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py at 45 PS2, Line 45: parent:'CardDF'=None The linters won't be happy about this, you need from typing import Optional parent: Optional('CardDF') = None if None is permitted. https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py at 106 PS2, Line 106: alias:str=None Same here, it's Optional. https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py at 235 PS2, Line 235: CardFile Optional, there can be None https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py at 410 PS2, Line 410: fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None Unrelated: if they all are optional, then using **kw may be a good idea. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 02 Apr 2021 13:36: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 Apr 2 13:37:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 2 Apr 2021 13:37:32 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23577 ) Change subject: Add more documentation to the classes/methods ...................................................................... Patch Set 2: Code-Review+1 None of the comments are critical. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 02 Apr 2021 13:37: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 Apr 2 14:14:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:14:33 +0000 Subject: Change in pysim[master]: Use sphinx for generating documentation References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23578 ) Change subject: Use sphinx for generating documentation ...................................................................... Use sphinx for generating documentation This adds sphinx based documentation generation. For now, this manily renders some introduction and the autodoc-genreated class/method reference from the source code for our libraries. Actual user-level documentation for pySim-{prog,shell,read} remains to be added separately Change-Id: I52603e93c2c129a9e79687da6c534fa56a40a649 --- A docs/Makefile A docs/conf.py A docs/index.rst A docs/legacy.rst A docs/library.rst A docs/make.bat A docs/shell.rst 7 files changed, 258 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/78/23578/1 diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..1fb06da --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,57 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +sys.path.insert(0, os.path.abspath('..')) + + +# -- Project information ----------------------------------------------------- + +project = 'pysim' +copyright = '2021, Sylvain Munaut, Harald Welte, Philipp Maier' +author = 'Sylvain Munaut, Harald Welte, Philipp Maier' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.autosectionlabel", + "sphinx.ext.napoleon" +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +autoclass_content = 'both' diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..c647880 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,50 @@ +.. pysim documentation master file + +Welcome to Osmocom pySim +======================== + +Introduction +------------ + +pySim is a python implementation of various software that helps you with +managing subscriber identity cards for cellular networks, so-called SIM +cards. + +Many Osmocom (Open Source Mobile Communications) projects relate to operating +private / custom cellular networks, and provisioning SIM cards for said networks +is in many cases a requirement to operate such networks. + +To make use of most of pySim's features, you will need a `programmable` SIM card, +i.e. a card where you are the owner/operator and have sufficient credentials (such +as the `ADM PIN`) in order to write to many if not most of the files on the card. + +Such cards are, for example, available from sysmocom, a major contributor to pySim. +See https://www.sysmocom.de/products/lab/sysmousim/ for more details. + +pySim supports classic GSM SIM cards as well as ETSI UICC with 3GPP USIM and ISIM +applications. It is easily extensible, so support for additional files, card +applications, etc. can be added easily by any python developer. We do encourage you +to submit your contributions to help this collaborative development project. + +pySim consists of several parts: + +* a python :ref:`library` containing plenty of objects and methods that can be used for + writing custom programs interfacing with SIM cards. +* the [new] :ref:`interactive pySim-shell command line program` +* the [legacy] :ref:`pySim-prog and pySim-read tools` + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + shell + legacy + library + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/legacy.rst b/docs/legacy.rst new file mode 100644 index 0000000..492be46 --- /dev/null +++ b/docs/legacy.rst @@ -0,0 +1,2 @@ +Legacy tools +============ diff --git a/docs/library.rst b/docs/library.rst new file mode 100644 index 0000000..ae027ff --- /dev/null +++ b/docs/library.rst @@ -0,0 +1,92 @@ +pySim library +============= + +pySim filesystem abstraction +---------------------------- + +.. automodule:: pySim.filesystem + :members: + +pySim commands abstraction +-------------------------- + +.. automodule:: pySim.commands + :members: + +pySim Transport +--------------- + +The pySim.transport classes implement specific ways how to +communicate with a SIM card. A "transport" provides ways +to transceive APDUs with the card. + +The most commonly used transport uses the PC/SC interface to +utilize a variety of smart card interfaces ("readers"). + +Transport base class +~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: pySim.transport + :members: + + +calypso / OsmocomBB transport +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This allows the use of the SIM slot of an an OsmocomBB compatible phone with the TI Calypso chipset, +using the L1CTL interface to talk to the layer1.bin firmware on the phone. + +.. automodule:: pySim.transport.calypso + :members: + + +AT-command Modem transport +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This transport uses AT commands of a cellular modem in order to get access to the SIM card inserted +in such a modem. + +.. automodule:: pySim.transport.modem_atcmd + :members: + + +PC/SC transport +~~~~~~~~~~~~~~~ + +PC/SC is the standard API for accessing smart card interfaces +on all major operating systems, including the MS Windows Family, +OS X as well as Linux / Unix OSs. + +.. automodule:: pySim.transport.pcsc + :members: + + +Serial/UART transport +~~~~~~~~~~~~~~~~~~~~~ + +This transport implements interfacing smart cards via +very simplistic UART readers. These readers basically +wire together the Rx+Tx pins of a RS232 UART, provide +a fixed crystal oscilator for clock, and operate the UART +at 9600 bps. These readers are sometimes called `Phoenix`. + +.. automodule:: pySim.transport.serial + :members: + +pySim utility functions +----------------------- + +.. automodule:: pySim.utils + :members: + +pySim exceptions +---------------- + +.. automodule:: pySim.exceptions + :members: + +pySim card_handler +------------------ + +.. automodule:: pySim.card_handler + :members: diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..2119f51 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ + at ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/shell.rst b/docs/shell.rst new file mode 100644 index 0000000..f9a2c82 --- /dev/null +++ b/docs/shell.rst @@ -0,0 +1,2 @@ +pySim-shell +=========== -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I52603e93c2c129a9e79687da6c534fa56a40a649 Gerrit-Change-Number: 23578 Gerrit-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 Apr 2 14:14:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:14:33 +0000 Subject: Change in pysim[master]: filesystem: Avoid GPL header showing up in sphinx autodoc References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23579 ) Change subject: filesystem: Avoid GPL header showing up in sphinx autodoc ...................................................................... filesystem: Avoid GPL header showing up in sphinx autodoc Change-Id: I1d963ae3d1511ef40d1ebcb36b0f67c40cbd6309 --- M pySim/filesystem.py 1 file changed, 15 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/79/23579/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 8ce5db8..9dd2881 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -7,23 +7,23 @@ The classes are intended to represent the *specification* of the filesystem, not the actual contents / runtime state of interacting with a given smart card. - -(C) 2021 by Harald Welte - -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 . """ +# (C) 2021 by Harald Welte +# +# 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 . + import code import json -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1d963ae3d1511ef40d1ebcb36b0f67c40cbd6309 Gerrit-Change-Number: 23579 Gerrit-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 Apr 2 14:17:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:17:14 +0000 Subject: Change in pysim[master]: Add decoder/encoder for EF.SUCI_Calc_Info In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23564 ) Change subject: Add decoder/encoder for EF.SUCI_Calc_Info ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I848a766e6d00be497c7db905475e0681cce197ac Gerrit-Change-Number: 23564 Gerrit-PatchSet: 3 Gerrit-Owner: merlinchlosta Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 02 Apr 2021 14: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 Fri Apr 2 14:17:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:17:17 +0000 Subject: Change in pysim[master]: Add decoder/encoder for EF.SUCI_Calc_Info In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23564 ) Change subject: Add decoder/encoder for EF.SUCI_Calc_Info ...................................................................... Add decoder/encoder for EF.SUCI_Calc_Info Change-Id: I848a766e6d00be497c7db905475e0681cce197ac --- M pySim/ts_31_102.py M tests/test_utils.py 2 files changed, 171 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 02b0aea..54fd95d 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -274,6 +274,126 @@ import pySim.ts_102_221 +# TS 31.102 4.4.11.8 +class EF_SUCI_Calc_Info(TransparentEF): + def __init__(self, fid="4f07", sfid=0x07, name='EF.SUCI_Calc_Info', size={2, None}, + desc='SUCI Calc Info'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + + def _encode_prot_scheme_id_list(self, in_list): + out_bytes = [0xa0] + out_bytes.append(len(in_list)*2) # two byte per entry + + # position in list determines priority; high-priority items (low index) come first + for scheme in sorted(in_list, key=lambda item: item["priority"]): + out_bytes.append(scheme["identifier"]) + out_bytes.append(scheme["key_index"]) + + return out_bytes + + def _encode_hnet_pubkey_list(self, hnet_pubkey_list): + out_bytes = [0xa1] # pubkey list tag + out_bytes.append(0x00) # length filled later + length = 0 + + for key in hnet_pubkey_list: + out_bytes.append(0x80) # identifier tag + out_bytes.append(0x01) # TODO size, fixed to 1 byte + out_bytes.append(key["hnet_pubkey_identifier"]) + out_bytes.append(0x81) # key tag + out_bytes.append(len(key["hnet_pubkey"])//2) + length += 5+len(key["hnet_pubkey"])//2 + + pubkey_bytes = h2b(key["hnet_pubkey"]) + out_bytes += pubkey_bytes + + # fill length + out_bytes[1] = length + return out_bytes + + def _encode_hex(self, in_json): + out_bytes = self._encode_prot_scheme_id_list(in_json['prot_scheme_id_list']) + out_bytes += self._encode_hnet_pubkey_list(in_json['hnet_pubkey_list']) + return "".join(["%02X" % i for i in out_bytes]) + + def _decode_prot_scheme_id_list(self, in_bytes): + prot_scheme_id_list = [] + pos = 0 + # two bytes per entry + while pos < len(in_bytes): + prot_scheme = { + 'priority': pos//2, # first in list: high priority + 'identifier': in_bytes[pos], + 'key_index': in_bytes[pos+1] + } + pos += 2 + prot_scheme_id_list.append(prot_scheme) + return prot_scheme_id_list + + def _decode_hnet_pubkey_list(self, in_bytes): + hnet_pubkey_list = [] + pos = 0 + if in_bytes[pos] != 0xa1: + print("missing Home Network Public Key List data object") + return {} + pos += 1 + hnet_pubkey_list_len = in_bytes[pos] + pos += 1 + + while pos < hnet_pubkey_list_len: + if in_bytes[pos] != 0x80: + print("missing Home Network Public Key Identifier tag") + return {} + pos += 1 + hnet_pubkey_id_len = in_bytes[pos] # TODO might be more than 1 byte? + pos += 1 + hnet_pubkey_id = in_bytes[pos:pos+hnet_pubkey_id_len][0] + pos += hnet_pubkey_id_len + if in_bytes[pos] != 0x81: + print("missing Home Network Public Key tag") + return {} + pos += 1 + hnet_pubkey_len = in_bytes[pos] + pos += 1 + hnet_pubkey = in_bytes[pos:pos+hnet_pubkey_len] + pos += hnet_pubkey_len + + hnet_pubkey_list.append({ + 'hnet_pubkey_identifier': hnet_pubkey_id, + 'hnet_pubkey': b2h(hnet_pubkey) + }) + + return hnet_pubkey_list + + def _decode_bin(self, in_bin): + return self._decode_hex(b2h(in_hex)) + + def _decode_hex(self, in_hex): + in_bytes = h2b(in_hex) + pos = 0 + + if in_bytes[pos] != 0xa0: + print("missing Protection Scheme Identifier List data object tag") + return {} + pos += 1 + + prot_scheme_id_list_len = in_bytes[pos] # TODO maybe more than 1 byte + pos += 1 + # decode Protection Scheme Identifier List data object + prot_scheme_id_list = self._decode_prot_scheme_id_list(in_bytes[pos:pos+prot_scheme_id_list_len]) + pos += prot_scheme_id_list_len + + # remaining data holds Home Network Public Key Data Object + hnet_pubkey_list = self._decode_hnet_pubkey_list(in_bytes[pos:]) + + return { + 'prot_scheme_id_list': prot_scheme_id_list, + 'hnet_pubkey_list': hnet_pubkey_list + } + + def _encode_bin(self, in_json): + return h2b(self._encode_hex(in_json)) + class EF_LI(TransRecEF): def __init__(self, fid='6f05', sfid=None, name='EF.LI', size={2,None}, rec_len=2, desc='Language Indication'): @@ -340,6 +460,27 @@ """Deactivate a service within EF.UST""" self._cmd.card.update_ust(int(arg), 0) +class DF_USIM_5GS(CardDF): + def __init__(self, fid='5FC0', name='DF.5GS', desc='5GS related files'): + super().__init__(fid=fid, name=name, desc=desc) + files = [ + # I'm looking at 31.102 R15.9 + TransparentEF('4F01', None, 'EF.5GS3GPPLOCI', '5GS 3GPP location information', size={20,20}), + TransparentEF('4F02', None, 'EF.5GSN3GPPLOCI', '5GS non-3GPP location information', size={20,20}), + #LinFixedEF('4F03', None, 'EF.5GS3GPPNSC', '5GS 3GPP Access NAS Security Context'), + #LinFixedEF('4F04', None, 'EF.5GSN3GPPNSC', '5GS non-3GPP Access NAS Security Context'), + TransparentEF('4F05', None, 'EF.5GAUTHKEYS', '5G authentication keys', size={68, None}), + TransparentEF('4F06', None, 'EF.UAC_AIC', 'UAC Access Identities Configuration', size={4, 4}), + EF_SUCI_Calc_Info(), #TransparentEF('4F07', None, 'EF.SUCI_Calc_Info', 'SUCI Calculation Information', size={2, None}), + TransparentEF('4F08', None, 'EF.OPL5G', '5GS Operator PLMN List', size={10, None}), + # TransparentEF('4F09', None, 'EF.NSI', 'Network Specific Identifier'), # FFS + TransparentEF('4F0A', None, 'EF.Routing_Indicator', 'Routing Indicator', size={4,4}), + ] + + self.add_files(files) + + def decode_select_response(self, data_hex): + return data_hex class ADF_USIM(CardADF): def __init__(self, aid='a0000000871002', name='ADF.USIM', fid=None, sfid=None, @@ -370,6 +511,7 @@ EF_CBMID(sfid=0x0e), EF_ECC(sfid=0x01), EF_CBMIR(), + DF_USIM_5GS(), ] self.add_files(files) diff --git a/tests/test_utils.py b/tests/test_utils.py old mode 100644 new mode 100755 index bcf6140..badde55 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,9 +1,26 @@ #!/usr/bin/env python3 import unittest -import pySim.utils as utils +from pySim import utils +from pySim.ts_31_102 import EF_SUCI_Calc_Info class DecTestCase(unittest.TestCase): + # TS33.501 Annex C.4 test keys + hnet_pubkey_profile_b = "0272DA71976234CE833A6907425867B82E074D44EF907DFB4B3E21C1C2256EBCD1" # ID 27 in test file + hnet_pubkey_profile_a = "5A8D38864820197C3394B92613B20B91633CBD897119273BF8E4A6F4EEC0A650" # ID 30 in test file + + # TS31.121 4.9.4 EF_SUCI_Calc_Info test file + testfile_suci_calc_info = "A006020101020000A14B80011B8121" +hnet_pubkey_profile_b +"80011E8120" +hnet_pubkey_profile_a + + decoded_testfile_suci = { + 'prot_scheme_id_list': [ + {'priority': 0, 'identifier': 2, 'key_index': 1}, + {'priority': 1, 'identifier': 1, 'key_index': 2}, + {'priority': 2, 'identifier': 0, 'key_index': 0}], + 'hnet_pubkey_list': [ + {'hnet_pubkey_identifier': 27, 'hnet_pubkey': hnet_pubkey_profile_b.lower()}, # because h2b/b2h returns all lower-case + {'hnet_pubkey_identifier': 30, 'hnet_pubkey': hnet_pubkey_profile_a.lower()}] + } def testSplitHexStringToListOf5ByteEntries(self): input_str = "ffffff0003ffffff0002ffffff0001" @@ -81,5 +98,16 @@ expected += "\tffffff0000 # unused\n" self.assertEqual(utils.format_xplmn_w_act(input_str), expected) + + def testDecodeSuciCalcInfo(self): + suci_calc_info = EF_SUCI_Calc_Info() + decoded = suci_calc_info._decode_hex(self.testfile_suci_calc_info) + self.assertDictEqual(self.decoded_testfile_suci, decoded) + + def testEncodeSuciCalcInfo(self): + suci_calc_info = EF_SUCI_Calc_Info() + encoded = suci_calc_info._encode_hex(self.decoded_testfile_suci) + self.assertEqual(encoded.lower(), self.testfile_suci_calc_info.lower()) + if __name__ == "__main__": unittest.main() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I848a766e6d00be497c7db905475e0681cce197ac Gerrit-Change-Number: 23564 Gerrit-PatchSet: 3 Gerrit-Owner: merlinchlosta Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:22:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:22:40 +0000 Subject: Change in pysim[master]: filesystem: allow selection of arbitrary files In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#4) to the change originally created by dexter. ( https://gerrit.osmocom.org/c/pysim/+/23533 ) Change subject: filesystem: allow selection of arbitrary files ...................................................................... filesystem: allow selection of arbitrary files Some cards may have additional propritary EF files which pySim-shell does not support. If the user knows the exact FID the file can still be selected and it is possible to read the file type and memory model from the select response. This info can be used to create a new file object at runtime that will work like any other EF/DF. Change-Id: Iafff97443130f8bb8c5bc68f51d2fe1d93fff07c Related: OS#4963 --- M pySim/filesystem.py 1 file changed, 51 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/33/23533/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iafff97443130f8bb8c5bc68f51d2fe1d93fff07c Gerrit-Change-Number: 23533 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:23:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:23:09 +0000 Subject: Change in pysim[master]: filesystem: allow selection of arbitrary files In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23533 ) Change subject: filesystem: allow selection of arbitrary files ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iafff97443130f8bb8c5bc68f51d2fe1d93fff07c Gerrit-Change-Number: 23533 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 02 Apr 2021 14:23:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:27:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:27:36 +0000 Subject: Change in pysim[master]: pySim-shell: complete CHV/PIN management tools In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#5) to the change originally created by dexter. ( https://gerrit.osmocom.org/c/pysim/+/23541 ) Change subject: pySim-shell: complete CHV/PIN management tools ...................................................................... pySim-shell: complete CHV/PIN management tools At the moment we only have a basic version of a verify_chv commnad, but in order to handle any CHV/PIN related situation we also need commands to enable, disable, change and unblock CHV. - fix verify_chv commnad: more distinct parameter names, better help strings, correct pin code encoding and add external source lookup - Add unblock_chv, change_chv, enable_chv and disable_chv commands - add/fix related functions in commands.py Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Related: OS#4963 --- M pySim-shell.py M pySim/card_data.py M pySim/commands.py 3 files changed, 107 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/41/23541/5 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Gerrit-Change-Number: 23541 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:33:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:33:03 +0000 Subject: Change in pysim[master]: pySim-shell: complete CHV/PIN management tools In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#6) to the change originally created by dexter. ( https://gerrit.osmocom.org/c/pysim/+/23541 ) Change subject: pySim-shell: complete CHV/PIN management tools ...................................................................... pySim-shell: complete CHV/PIN management tools At the moment we only have a basic version of a verify_chv commnad, but in order to handle any CHV/PIN related situation we also need commands to enable, disable, change and unblock CHV. - fix verify_chv commnad: more distinct parameter names, better help strings, correct pin code encoding and add external source lookup - Add unblock_chv, change_chv, enable_chv and disable_chv commands - add/fix related functions in commands.py Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Related: OS#4963 --- M pySim-shell.py M pySim/card_data.py M pySim/commands.py 3 files changed, 108 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/41/23541/6 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Gerrit-Change-Number: 23541 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:33:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:33:23 +0000 Subject: Change in pysim[master]: filesystem: allow selection of arbitrary files In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23533 ) Change subject: filesystem: allow selection of arbitrary files ...................................................................... filesystem: allow selection of arbitrary files Some cards may have additional propritary EF files which pySim-shell does not support. If the user knows the exact FID the file can still be selected and it is possible to read the file type and memory model from the select response. This info can be used to create a new file object at runtime that will work like any other EF/DF. Change-Id: Iafff97443130f8bb8c5bc68f51d2fe1d93fff07c Related: OS#4963 --- M pySim/filesystem.py 1 file changed, 51 insertions(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim/filesystem.py b/pySim/filesystem.py index cb39b94..9f3b221 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -130,12 +130,19 @@ class CardDF(CardFile): """DF (Dedicated File) in the smart card filesystem. Those are basically sub-directories.""" + + @with_default_category('DF/ADF Commands') + class ShellCommands(CommandSet): + def __init__(self): + super().__init__() + def __init__(self, **kwargs): if not isinstance(self, CardADF): if not 'fid' in kwargs: raise TypeError('fid is mandatory for all DF') super().__init__(**kwargs) self.children = dict() + self.shell_commands = [self.ShellCommands()] def __str__(self): return "DF(%s)" % (super().__str__()) @@ -614,17 +621,48 @@ else: return self.profile.interpret_sw(sw) + def probe_file(self, fid, cmd_app=None): + """ + blindly try to select a file and automatically add a matching file + object if the file actually exists + """ + if not is_hex(fid, 4, 4): + raise ValueError("Cannot select unknown file by name %s, only hexadecimal 4 digit FID is allowed" % fid) + + try: + (data, sw) = self.card._scc.select_file(fid) + except SwMatchError as swm: + k = self.interpret_sw(swm.sw_actual) + if not k: + raise(swm) + raise RuntimeError("%s: %s - %s" % (swm.sw_actual, k[0], k[1])) + + select_resp = self.selected_file.decode_select_response(data) + if (select_resp['file_descriptor']['file_type'] == 'df'): + f = CardDF(fid=fid, sfid=None, name="DF." + str(fid).upper(), desc="dedicated file, manually added at runtime") + else: + if (select_resp['file_descriptor']['structure'] == 'transparent'): + f = TransparentEF(fid=fid, sfid=None, name="EF." + str(fid).upper(), desc="elementry file, manually added at runtime") + else: + f = LinFixedEF(fid=fid, sfid=None, name="EF." + str(fid).upper(), desc="elementry file, manually added at runtime") + + self.selected_file.add_files([f]) + self.selected_file = f + return select_resp + def select(self, name, cmd_app=None): """Change current directory""" sels = self.selected_file.get_selectables() if is_hex(name): name = name.lower() + + # unregister commands of old file + if cmd_app and self.selected_file.shell_commands: + for c in self.selected_file.shell_commands: + cmd_app.unregister_command_set(c) + if name in sels: f = sels[name] - # unregister commands of old file - if cmd_app and self.selected_file.shell_commands: - for c in self.selected_file.shell_commands: - cmd_app.unregister_command_set(c) try: if isinstance(f, CardADF): (data, sw) = self.card._scc.select_adf(f.aid) @@ -636,14 +674,16 @@ if not k: raise(swm) raise RuntimeError("%s: %s - %s" % (swm.sw_actual, k[0], k[1])) - # register commands of new file - if cmd_app and self.selected_file.shell_commands: - for c in self.selected_file.shell_commands: - cmd_app.register_command_set(c) - return f.decode_select_response(data) - #elif looks_like_fid(name): + select_resp = f.decode_select_response(data) else: - raise ValueError("Cannot select unknown %s" % (name)) + select_resp = self.probe_file(name, cmd_app) + + # register commands of new file + if cmd_app and self.selected_file.shell_commands: + for c in self.selected_file.shell_commands: + cmd_app.register_command_set(c) + + return select_resp def read_binary(self, length=None, offset=0): if not isinstance(self.selected_file, TransparentEF): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iafff97443130f8bb8c5bc68f51d2fe1d93fff07c Gerrit-Change-Number: 23533 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:33:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:33:24 +0000 Subject: Change in pysim[master]: ts_31_102: do not add empty ShellCommands class. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23534 ) Change subject: ts_31_102: do not add empty ShellCommands class. ...................................................................... ts_31_102: do not add empty ShellCommands class. The class ShellCommands defined in ADF_USIM overloads useful CommandSet classes defined in the superclass, making their commands inaccessible. Also ts_31_102 does not have such a class definition in the ADF_ISIM class, so lets remove this class. Change-Id: I0e67c570fc4f17641d990a9cd239632ecf622de3 Related: OS#4963 --- M pySim/ts_31_102.py 1 file changed, 0 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 54fd95d..9febaf7 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -486,7 +486,6 @@ def __init__(self, aid='a0000000871002', name='ADF.USIM', fid=None, sfid=None, desc='USIM Application'): super().__init__(aid=aid, fid=fid, sfid=sfid, name=name, desc=desc) - self.shell_commands = [self.ShellCommands()] files = [ EF_LI(sfid=0x02), @@ -518,12 +517,6 @@ def decode_select_response(self, data_hex): return pySim.ts_102_221.decode_select_response(data_hex) - @with_default_category('File-Specific Commands') - class ShellCommands(CommandSet): - def __init__(self): - super().__init__() - - # TS 31.102 Section 7.3 sw_usim = { 'Security management': { -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0e67c570fc4f17641d990a9cd239632ecf622de3 Gerrit-Change-Number: 23534 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:33:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:33:24 +0000 Subject: Change in pysim[master]: fileystem: fix ADF selection In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23536 ) Change subject: fileystem: fix ADF selection ...................................................................... fileystem: fix ADF selection When the ADF is selected, then this is done by the AID. At the moment only the first 7 bytes of the AID are used to select the ADF. sysmo-isim-sja2 tolerates this, but sysmo-usim-sjs1 does not. The Cards class already has methods to deal with this problem. The method select_adf_by_aid takes an ADF name and completes the AID from an internal list. This can be extended to support partial hexadecimal AIDs as well. Change-Id: If99b143ae5ff42a889c52e8023084692e709e1b1 Related: OS#4963 --- M pySim-read.py M pySim/cards.py M pySim/filesystem.py 3 files changed, 26 insertions(+), 21 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-read.py b/pySim-read.py index 7906685..638bd4b 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -251,7 +251,8 @@ # Check whether we have th AID of USIM, if so select it by its AID # EF.UST - File Id in ADF USIM : 6f38 - if '9000' == card.select_adf_by_aid(): + data, sw = card.select_adf_by_aid(adf="usim") + if sw == '9000': # Select USIM profile usim_card = UsimCard(scc) @@ -300,7 +301,8 @@ print("ePDGSelection: Can't read file -- " + str(e)) # Select ISIM application by its AID - if '9000' == card.select_adf_by_aid(adf="isim"): + data, sw = card.select_adf_by_aid(adf="isim") + if sw == '9000': # Select USIM profile isim_card = IsimCard(scc) @@ -352,7 +354,8 @@ # 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"): + data, sw = card.select_adf_by_aid(adf="isim") + if sw == '9000': # EF.IST (res, sw) = card.read_binary('6f07') if sw == '9000': diff --git a/pySim/cards.py b/pySim/cards.py index 857d0b6..5eb2884 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -224,21 +224,21 @@ # Select ADF.U/ISIM in the Card using its full AID def select_adf_by_aid(self, adf="usim"): - # Check for valid ADF name - if adf not in ["usim", "isim"]: - return None - - # First (known) halves of the U/ISIM AID - aid_map = {} - aid_map["usim"] = "a0000000871002" - aid_map["isim"] = "a0000000871004" - - for aid in self._aids: - if aid_map[adf] in aid: - (res, sw) = self._scc.select_adf(aid) - return sw - - return None + # Find full AID by partial AID: + if is_hex(adf): + for aid in self._aids: + if len(aid) >= len(adf) and adf == aid[0:len(adf)]: + return self._scc.select_adf(aid) + # Find full AID by application name: + elif adf in ["usim", "isim"]: + # First (known) halves of the U/ISIM AID + aid_map = {} + aid_map["usim"] = "a0000000871002" + aid_map["isim"] = "a0000000871004" + for aid in self._aids: + if aid_map[adf] in aid: + return self._scc.select_adf(aid) + return (None, None) # Erase the contents of a file def erase_binary(self, ef): @@ -1335,7 +1335,8 @@ self._scc.update_binary('6f20', p['opc'], 17) # update EF-USIM_AUTH_KEY in ADF.ISIM - if '9000' == self.select_adf_by_aid(adf="isim"): + data, sw = self.select_adf_by_aid(adf="isim") + if sw == '9000': if p.get('ki'): self._scc.update_binary('af20', p['ki'], 1) if p.get('opc'): @@ -1382,7 +1383,8 @@ if sw != '9000': print("Programming IMPU failed with code %s"%sw) - if '9000' == self.select_adf_by_aid(): + data, sw = self.select_adf_by_aid(adf="usim") + if sw == '9000': # update EF-USIM_AUTH_KEY in ADF.USIM if p.get('ki'): self._scc.update_binary('af20', p['ki'], 1) diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 9f3b221..cd08699 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -665,7 +665,7 @@ f = sels[name] try: if isinstance(f, CardADF): - (data, sw) = self.card._scc.select_adf(f.aid) + (data, sw) = self.card.select_adf_by_aid(f.aid) else: (data, sw) = self.card._scc.select_file(f.fid) self.selected_file = f -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If99b143ae5ff42a889c52e8023084692e709e1b1 Gerrit-Change-Number: 23536 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:33:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:33:25 +0000 Subject: Change in pysim[master]: pySim-shell: automatic ADM pin from CSV-File In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23538 ) Change subject: pySim-shell: automatic ADM pin from CSV-File ...................................................................... pySim-shell: automatic ADM pin from CSV-File It can be hard to manage ADM pins when working with different cards at the same time. To make this easier, add an automatic way to determine the ADM pin for each card from a CSV file. - add a CardData clas model that can be extended to to get the data from various different sources. For now use CSV-Files. Also add a way how multiple CardData classes can be registered so that one global get function can query all registered CardData classes at once. - automatically check for CSV-File in home directory and use it as default CardData source unless the user specifies a CSV file via commandline argument. - extend the verify_adm command so that it automatically queries the ADM pin if no argument is given. Also do not try to authenticate if no ADM pin could be determined. Change-Id: I51835ccb16bcbce35e7f3765e8927a4451509e77 Related: OS#4963 --- M pySim-shell.py A pySim/card_data.py 2 files changed, 146 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index 41febd6..a8471ff 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -29,6 +29,7 @@ import os import sys from optparse import OptionParser +from pathlib import Path 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 @@ -47,6 +48,9 @@ from pySim.ts_31_102 import ADF_USIM from pySim.ts_31_103 import ADF_ISIM +from pySim.card_data import CardDataCsv, card_data_register, card_data_get_field + + class PysimApp(cmd2.Cmd): CUSTOM_CATEGORY = 'pySim Commands' def __init__(self, card, rs, script = None): @@ -56,6 +60,8 @@ self.intro = style('Welcome to pySim-shell!', fg=fg.red) self.default_category = 'pySim-shell built-in commands' self.card = card + iccid, sw = self.card.read_iccid() + self.iccid = iccid self.rs = rs self.py_locals = { 'card': self.card, 'rs' : self.rs } self.numeric_path = False @@ -78,8 +84,20 @@ @cmd2.with_category(CUSTOM_CATEGORY) def do_verify_adm(self, arg): """VERIFY the ADM1 PIN""" - pin_adm = sanitize_pin_adm(arg) - self.card.verify_adm(h2b(pin_adm)) + if arg: + # use specified ADM-PIN + pin_adm = sanitize_pin_adm(arg) + else: + # try to find an ADM-PIN if none is specified + result = card_data_get_field('ADM1', key='ICCID', value=self.iccid) + pin_adm = sanitize_pin_adm(result) + if pin_adm: + self.poutput("found adm-pin '%s' for ICCID '%s'" % (result, self.iccid)) + + if pin_adm: + self.card.verify_adm(h2b(pin_adm)) + else: + self.poutput("error: cannot authenticate, no adm-pin!") @cmd2.with_category(CUSTOM_CATEGORY) def do_desc(self, opts): @@ -289,6 +307,11 @@ default=None, ) + parser.add_option("--csv", dest="csv", metavar="FILE", + help="Read card data from CSV file", + default=None, + ) + parser.add_option("-a", "--pin-adm", dest="pin_adm", help="ADM PIN used for provisioning (overwrites default)", ) @@ -340,6 +363,14 @@ app = PysimApp(card, rs, opts.script) rs.select('MF', app) + # Register csv-file as card data provider, either from specified CSV + # or from CSV file in home directory + csv_default = str(Path.home()) + "/.osmocom/pysim/card_data.csv" + if opts.csv: + card_data_register(CardDataCsv(opts.csv)) + if os.path.isfile(csv_default): + card_data_register(CardDataCsv(csv_default)) + # If the user supplies an ADM PIN at via commandline args authenticate # immediatley so that the user does not have to use the shell commands pin_adm = sanitize_pin_adm(opts.pin_adm, opts.pin_adm_hex) diff --git a/pySim/card_data.py b/pySim/card_data.py new file mode 100644 index 0000000..495c1f3 --- /dev/null +++ b/pySim/card_data.py @@ -0,0 +1,113 @@ +# coding=utf-8 +"""Abstraction of card data that can be queried from external source + +(C) 2021 by Sysmocom s.f.m.c. GmbH +All Rights Reserved + +Author: Philipp Maier + +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 . +""" + +import csv + +card_data_provider = [] + +class CardData(object): + + VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI'] + + # check input parameters, but do nothing concrete yet + def get_data(self, fields=[], key='ICCID', value=""): + """abstract implementation of get_data that only verifies the function parameters""" + + for f in fields: + if (f not in self.VALID_FIELD_NAMES): + raise ValueError("Requested field name '%s' is not a valid field name, valid field names are: %s" % + (f, str(self.VALID_FIELD_NAMES))) + + if (key not in self.VALID_FIELD_NAMES): + raise ValueError("Key field name '%s' is not a valid field name, valid field names are: %s" % + (key, str(self.VALID_FIELD_NAMES))) + + return {} + + def get_field(self, field, key='ICCID', value=""): + """get a single field from CSV file using a specified key/value pair""" + fields = [field] + result = self.get(fields, key, value) + return result.get(field) + + +class CardDataCsv(CardData): + """card data class that allows the user to query against a specified CSV file""" + csv_file = None + filename = None + + def __init__(self, filename): + self.csv_file = open(filename, 'r') + if not self.csv_file: + raise RuntimeError("Could not open CSV-File '%s'" % filename) + self.filename = filename + + def get(self, fields, key, value): + """get fields from CSV file using a specified key/value pair""" + super().get_data(fields, key, value) + + self.csv_file.seek(0) + cr = csv.DictReader(self.csv_file) + if not cr: + raise RuntimeError("Could not open DictReader for CSV-File '%s'" % self.filename) + cr.fieldnames = [ field.upper() for field in cr.fieldnames ] + + rc = {} + for row in cr: + if row[key] == value: + for f in fields: + if f in row: + rc.update({f : row[f]}) + else: + raise RuntimeError("CSV-File '%s' lacks column '%s'" % + (self.filename, f)) + return rc + + +def card_data_register(provider, provider_list=card_data_provider): + """Register a new card data provider""" + if not isinstance(provider, CardData): + raise ValueError("provider is not a card data provier") + provider_list.append(provider) + + +def card_data_get(fields, key, value, provider_list=card_data_provider): + """Query all registered card data providers""" + for p in provider_list: + if not isinstance(p, CardData): + raise ValueError("provider list contains provider, which is not a card data provier") + result = p.get(fields, key, value) + if result: + return result + return {} + + +def card_data_get_field(field, key, value, provider_list=card_data_provider): + """Query all registered card data providers for a single field""" + for p in provider_list: + if not isinstance(p, CardData): + raise ValueError("provider list contains provider, which is not a card data provier") + result = p.get_field(field, key, value) + if result: + return result + return None + -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I51835ccb16bcbce35e7f3765e8927a4451509e77 Gerrit-Change-Number: 23538 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:33:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:33:25 +0000 Subject: Change in pysim[master]: commands: conserve write cycles In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23539 ) Change subject: commands: conserve write cycles ...................................................................... commands: conserve write cycles When a record or a binary file is written the card goes throth a full flash/eeprom write cycle at this location, even when the data does not change. This can be optimized by reading before writing in order to compere if the data we are about to write is actually different. Change-Id: Ifd1b80d3ede15a7caa29077a37ac7cf58c9053f1 Related: OS#4963 --- M pySim-shell.py M pySim/commands.py M pySim/filesystem.py 3 files changed, 28 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index a8471ff..9468444 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -67,11 +67,17 @@ self.numeric_path = False self.add_settable(cmd2.Settable('numeric_path', bool, 'Print File IDs instead of names', onchange_cb=self._onchange_numeric_path)) + self.conserve_write = True + self.add_settable(cmd2.Settable('conserve_write', bool, 'Read and compare before write', + onchange_cb=self._onchange_conserve_write)) self.update_prompt() def _onchange_numeric_path(self, param_name, old, new): self.update_prompt() + def _onchange_conserve_write(self, param_name, old, new): + self.rs.conserve_write = new + def update_prompt(self): path_list = self.rs.selected_file.fully_qualified_path(not self.numeric_path) self.prompt = 'pySIM-shell (%s)> ' % ('/'.join(path_list)) diff --git a/pySim/commands.py b/pySim/commands.py index 9aed588..65c3891 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -144,9 +144,17 @@ raise ValueError('Failed to read (offset %d)' % (offset)) return total_data, sw - def update_binary(self, ef, data, offset=0, verify=False): + def update_binary(self, ef, data, offset=0, verify=False, conserve=False): + data_length = len(data) // 2 + + # Save write cycles by reading+comparing before write + if conserve: + data_current, sw = self.read_binary(ef, data_length, offset) + if data_current == data: + return None, sw + self.select_path(ef) - pdu = self.cla_byte + 'd6%04x%02x' % (offset, len(data) // 2) + data + pdu = self.cla_byte + 'd6%04x%02x' % (offset, data_length) + data res = self._tp.send_apdu_checksw(pdu) if verify: self.verify_binary(ef, data, offset) @@ -163,7 +171,7 @@ pdu = self.cla_byte + 'b2%02x04%02x' % (rec_no, rec_length) return self._tp.send_apdu(pdu) - def update_record(self, ef, rec_no, data, force_len=False, verify=False): + def update_record(self, ef, rec_no, data, force_len=False, verify=False, conserve=False): r = self.select_path(ef) if not force_len: rec_length = self.__record_len(r) @@ -171,6 +179,14 @@ raise ValueError('Invalid data length (expected %d, got %d)' % (rec_length, len(data) // 2)) else: rec_length = len(data) // 2 + + # Save write cycles by reading+comparing before write + if conserve: + data_current, sw = self.read_record(ef, rec_no) + data_current = data_current[0:rec_length*2] + if data_current == data: + return None, sw + pdu = (self.cla_byte + 'dc%02x04%02x' % (rec_no, rec_length)) + data res = self._tp.send_apdu_checksw(pdu) if verify: diff --git a/pySim/filesystem.py b/pySim/filesystem.py index cd08699..e959c52 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -566,6 +566,7 @@ self.mf.add_application(a) for f in self.profile.files_in_mf: self.mf.add_file(f) + self.conserve_write = True def _match_applications(self): """match the applications from the profile with applications on the card""" @@ -699,7 +700,7 @@ def update_binary(self, data_hex, offset=0): if not isinstance(self.selected_file, TransparentEF): raise TypeError("Only works with TransparentEF") - return self.card._scc.update_binary(self.selected_file.fid, data_hex, offset) + return self.card._scc.update_binary(self.selected_file.fid, data_hex, offset, conserve=self.conserve_write) def update_binary_dec(self, data): data_hex = self.selected_file.encode_hex(data) @@ -719,7 +720,7 @@ def update_record(self, rec_nr, data_hex): if not isinstance(self.selected_file, LinFixedEF): raise TypeError("Only works with Linear Fixed EF") - return self.card._scc.update_record(self.selected_file.fid, rec_nr, data_hex) + return self.card._scc.update_record(self.selected_file.fid, rec_nr, data_hex, conserve=self.conserve_write) def update_record_dec(self, rec_nr, data): hex_data = self.selected_file.encode_record_hex(data) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ifd1b80d3ede15a7caa29077a37ac7cf58c9053f1 Gerrit-Change-Number: 23539 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:34:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:34:01 +0000 Subject: Change in pysim[master]: pySim-shell: be more specific when finding no ADM-PIN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23540 ) Change subject: pySim-shell: be more specific when finding no ADM-PIN ...................................................................... pySim-shell: be more specific when finding no ADM-PIN When no ADM pin is found in the external data source, then print an error message that tells the user that this is the case. Change-Id: If8f88b43f283fbe459be1b30db35d984022840ac Related: OS#4963 --- M pySim-shell.py 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index 9468444..68896cb 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -98,7 +98,10 @@ result = card_data_get_field('ADM1', key='ICCID', value=self.iccid) pin_adm = sanitize_pin_adm(result) if pin_adm: - self.poutput("found adm-pin '%s' for ICCID '%s'" % (result, self.iccid)) + self.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self.iccid)) + else: + self.poutput("cannot find ADM-PIN for ICCID '%s'" % (self._cmd.iccid)) + return if pin_adm: self.card.verify_adm(h2b(pin_adm)) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If8f88b43f283fbe459be1b30db35d984022840ac Gerrit-Change-Number: 23540 Gerrit-PatchSet: 5 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 Fri Apr 2 14:35:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:35:17 +0000 Subject: Change in pysim[master]: pySim-shell: prevent inconsitancy when walking through the FS tree In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23567 ) Change subject: pySim-shell: prevent inconsitancy when walking through the FS tree ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6778faa87bdf5552da74659206bf7a6fc0348d0c Gerrit-Change-Number: 23567 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 14:35: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 Apr 2 14:35:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:35:23 +0000 Subject: Change in pysim[master]: pySim-shell: fix and improve file system exporter In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23568 ) Change subject: pySim-shell: fix and improve file system exporter ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9b1712b37e5b39e9016497185510a2a45c4ca6c Gerrit-Change-Number: 23568 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 14:35: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 Apr 2 14:35:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:35:31 +0000 Subject: Change in pysim[master]: pySim-shell: complete CHV/PIN management tools In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23541 ) Change subject: pySim-shell: complete CHV/PIN management tools ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Gerrit-Change-Number: 23541 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 02 Apr 2021 14:35:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:44:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:44:46 +0000 Subject: Change in pysim[master]: pySim-shell: complete CHV/PIN management tools In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23541 ) Change subject: pySim-shell: complete CHV/PIN management tools ...................................................................... pySim-shell: complete CHV/PIN management tools At the moment we only have a basic version of a verify_chv commnad, but in order to handle any CHV/PIN related situation we also need commands to enable, disable, change and unblock CHV. - fix verify_chv commnad: more distinct parameter names, better help strings, correct pin code encoding and add external source lookup - Add unblock_chv, change_chv, enable_chv and disable_chv commands - add/fix related functions in commands.py Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Related: OS#4963 --- M pySim-shell.py M pySim/card_data.py M pySim/commands.py 3 files changed, 108 insertions(+), 13 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim-shell.py b/pySim-shell.py index 68896cb..11953eb 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -39,7 +39,7 @@ from pySim.commands import SimCardCommands from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, h2s -from pySim.utils import dec_st, init_reader, sanitize_pin_adm, tabulate_str_list +from pySim.utils import dec_st, init_reader, sanitize_pin_adm, tabulate_str_list, is_hex from pySim.card_handler import card_handler from pySim.filesystem import CardMF, RuntimeState, CardDF, CardADF @@ -141,15 +141,79 @@ index_dict = { 1: self._cmd.rs.selected_file.get_selectable_names() } return self._cmd.index_based_complete(text, line, begidx, endidx, index_dict=index_dict) + def get_code(self, code): + """Use code either directly or try to get it from external data source""" + auto = ('PIN1', 'PIN2', 'PUK1', 'PUK2') + + if str(code).upper() not in auto: + return sanitize_pin_adm(code) + + result = card_data_get_field(str(code), key='ICCID', value=self._cmd.iccid) + result = sanitize_pin_adm(result) + if result: + self._cmd.poutput("found %s '%s' for ICCID '%s'" % (code.upper(), result, self._cmd.iccid)) + else: + self._cmd.poutput("cannot find %s for ICCID '%s'" % (code.upper(), self._cmd.iccid)) + return result + verify_chv_parser = argparse.ArgumentParser() - verify_chv_parser.add_argument('--chv-nr', type=int, default=1, help='CHV Number') - verify_chv_parser.add_argument('code', help='CODE/PIN/PUK') + verify_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + verify_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') @cmd2.with_argparser(verify_chv_parser) def do_verify_chv(self, opts): - """Verify (authenticate) using specified CHV (PIN)""" - (data, sw) = self._cmd.card._scc.verify_chv(opts.chv_nr, opts.code) - self._cmd.poutput(data) + """Verify (authenticate) using specified PIN code""" + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.verify_chv(opts.pin_nr, h2b(pin)) + self._cmd.poutput("CHV verfication successful") + + unblock_chv_parser = argparse.ArgumentParser() + unblock_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + unblock_chv_parser.add_argument('puk_code', type=str, help='PUK code digits \"PUK1\" or \"PUK2\" to get PUK code from external data source') + unblock_chv_parser.add_argument('new_pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(unblock_chv_parser) + def do_unblock_chv(self, opts): + """Unblock PIN code using specified PUK code""" + new_pin = self.get_code(opts.new_pin_code) + puk = self.get_code(opts.puk_code) + (data, sw) = self._cmd.card._scc.unblock_chv(opts.pin_nr, h2b(puk), h2b(new_pin)) + self._cmd.poutput("CHV unblock successful") + + change_chv_parser = argparse.ArgumentParser() + change_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + change_chv_parser.add_argument('pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') + change_chv_parser.add_argument('new_pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(change_chv_parser) + def do_change_chv(self, opts): + """Change PIN code to a new PIN code""" + new_pin = self.get_code(opts.new_pin_code) + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.change_chv(opts.pin_nr, h2b(pin), h2b(new_pin)) + self._cmd.poutput("CHV change successful") + + disable_chv_parser = argparse.ArgumentParser() + disable_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + disable_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(disable_chv_parser) + def do_disable_chv(self, opts): + """Disable PIN code using specified PIN code""" + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.disable_chv(opts.pin_nr, h2b(pin)) + self._cmd.poutput("CHV disable successful") + + enable_chv_parser = argparse.ArgumentParser() + enable_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + enable_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(enable_chv_parser) + def do_enable_chv(self, opts): + """Enable PIN code using specified PIN code""" + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.enable_chv(opts.pin_nr, h2b(pin)) + self._cmd.poutput("CHV enable successful") dir_parser = argparse.ArgumentParser() dir_parser.add_argument('--fids', help='Show file identifiers', action='store_true') diff --git a/pySim/card_data.py b/pySim/card_data.py index 495c1f3..ebc63a6 100644 --- a/pySim/card_data.py +++ b/pySim/card_data.py @@ -26,7 +26,7 @@ class CardData(object): - VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI'] + VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI', 'PIN1', 'PIN2', 'PUK1', 'PUK2'] # check input parameters, but do nothing concrete yet def get_data(self, fields=[], key='ICCID', value=""): diff --git a/pySim/commands.py b/pySim/commands.py index 65c3891..5184a77 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -21,7 +21,8 @@ # along with this program. If not, see . # -from pySim.utils import rpad, b2h +from pySim.utils import rpad, b2h, sw_match +from pySim.exceptions import SwMatchError class SimCardCommands(object): def __init__(self, transport): @@ -219,9 +220,39 @@ def reset_card(self): return self._tp.reset_card() - def verify_chv(self, chv_no, code): - fc = rpad(b2h(code), 16) + def _chv_process_sw(self, op_name, chv_no, pin_code, sw): + if sw_match(sw, '63cx'): + raise RuntimeError('Failed to %s chv_no 0x%02X with code 0x%s, %i tries left.' % + (op_name, chv_no, b2h(pin_code).upper(), int(sw[3]))) + elif (sw != '9000'): + raise SwMatchError(sw, '9000') + + def verify_chv(self, chv_no, pin_code): + fc = rpad(b2h(pin_code), 16) data, sw = self._tp.send_apdu(self.cla_byte + '2000' + ('%02X' % chv_no) + '08' + fc) - if (sw != '9000'): - raise RuntimeError('Failed to authenticate with ADM key %s, %i tries left.' % (code, int(sw[3]))) - return (data,sw) + self._chv_process_sw('verify', chv_no, pin_code, sw) + return (data, sw) + + def unblock_chv(self, chv_no, puk_code, pin_code): + fc = rpad(b2h(puk_code), 16) + rpad(b2h(pin_code), 16) + data, sw = self._tp.send_apdu(self.cla_byte + '2C00' + ('%02X' % chv_no) + '10' + fc) + self._chv_process_sw('unblock', chv_no, pin_code, sw) + return (data, sw) + + def change_chv(self, chv_no, pin_code, new_pin_code): + fc = rpad(b2h(pin_code), 16) + rpad(b2h(new_pin_code), 16) + data, sw = self._tp.send_apdu(self.cla_byte + '2400' + ('%02X' % chv_no) + '10' + fc) + self._chv_process_sw('change', chv_no, pin_code, sw) + return (data, sw) + + def disable_chv(self, chv_no, pin_code): + fc = rpad(b2h(pin_code), 16) + data, sw = self._tp.send_apdu(self.cla_byte + '2600' + ('%02X' % chv_no) + '08' + fc) + self._chv_process_sw('disable', chv_no, pin_code, sw) + return (data, sw) + + def enable_chv(self, chv_no, pin_code): + fc = rpad(b2h(pin_code), 16) + data, sw = self._tp.send_apdu(self.cla_byte + '2800' + ('%02X' % chv_no) + '08' + fc) + self._chv_process_sw('enable', chv_no, pin_code, sw) + return (data, sw) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic89446e6bd2021095e579fb6b20458df48ba6413 Gerrit-Change-Number: 23541 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 14:44:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:44:47 +0000 Subject: Change in pysim[master]: pySim-shell: prevent inconsitancy when walking through the FS tree In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23567 ) Change subject: pySim-shell: prevent inconsitancy when walking through the FS tree ...................................................................... pySim-shell: prevent inconsitancy when walking through the FS tree When using the method walk() to walk through the filesystem tree, then the action() callback must not change the currently selected file. Unfortunately this can easily happen and result in unpredictable behavior. Lets add a check + an exeception for this to make debugging easier. Change-Id: I6778faa87bdf5552da74659206bf7a6fc0348d0c Related: OS#4963 --- M pySim-shell.py 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim-shell.py b/pySim-shell.py index 11953eb..2ac0b26 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -263,7 +263,14 @@ self.walk(indent + 1, action, context) fcp_dec = self._cmd.rs.select("..", self._cmd) elif action: + df_before_action = self._cmd.rs.selected_file action(f, context) + # When walking through the file system tree the action must not + # always restore the currently selected file to the file that + # was selected before executing the action() callback. + if df_before_action != self._cmd.rs.selected_file: + raise RuntimeError("inconsistant walk, %s is currently selected but expecting %s to be selected" + % (str(self._cmd.rs.selected_file), str(df_before_action))) def do_tree(self, opts): """Display a filesystem-tree with all selectable files""" -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6778faa87bdf5552da74659206bf7a6fc0348d0c Gerrit-Change-Number: 23567 Gerrit-PatchSet: 4 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 Fri Apr 2 14:44:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:44:55 +0000 Subject: Change in pysim[master]: pySim-shell: fix and improve file system exporter In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23568 ) Change subject: pySim-shell: fix and improve file system exporter ...................................................................... pySim-shell: fix and improve file system exporter The file system exporter function export() selects the exported EF from inside a try block. It also selects the parent DF again when leaving the try block. If an exception ocurrs during select this is fine, but if it happens during read it leaves the EF selected which makes messes up the recursive filesystem walk. There are also minor inconsistancies with the exception strings and the path displayed in the execption strings Related: OS#4963 Change-Id: Ie9b1712b37e5b39e9016497185510a2a45c4ca6c --- M pySim-shell.py 1 file changed, 20 insertions(+), 10 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim-shell.py b/pySim-shell.py index 2ac0b26..3c56f51 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -277,28 +277,33 @@ self.walk() def export(self, filename, context): + """ Select and export a single file """ context['COUNT'] += 1 - path_list = self._cmd.rs.selected_file.fully_qualified_path(True) - path_list_fid = self._cmd.rs.selected_file.fully_qualified_path(False) + df = self._cmd.rs.selected_file + + if not isinstance(df, CardDF): + raise RuntimeError("currently selected file %s is not a DF or ADF" % str(df)) + + df_path_list = df.fully_qualified_path(True) + df_path_list_fid = df.fully_qualified_path(False) self._cmd.poutput("#" * 80) - file_str = '/'.join(path_list) + "/" + str(filename) + " " * 80 + file_str = '/'.join(df_path_list) + "/" + str(filename) + " " * 80 self._cmd.poutput("# " + file_str[0:77] + "#") self._cmd.poutput("#" * 80) - self._cmd.poutput("# directory: %s (%s)" % ('/'.join(path_list), '/'.join(path_list_fid))) + self._cmd.poutput("# directory: %s (%s)" % ('/'.join(df_path_list), '/'.join(df_path_list_fid))) try: fcp_dec = self._cmd.rs.select(filename, self._cmd) - path_list = self._cmd.rs.selected_file.fully_qualified_path(True) - path_list_fid = self._cmd.rs.selected_file.fully_qualified_path(False) - self._cmd.poutput("# file: %s (%s)" % (path_list[-1], path_list_fid[-1])) + self._cmd.poutput("# file: %s (%s)" % (self._cmd.rs.selected_file.name, self._cmd.rs.selected_file.fid)) fd = fcp_dec['file_descriptor'] structure = fd['structure'] self._cmd.poutput("# structure: %s" % str(structure)) - for f in path_list: + for f in df_path_list: self._cmd.poutput("select " + str(f)) + self._cmd.poutput("select " + self._cmd.rs.selected_file.name) if structure == 'transparent': result = self._cmd.rs.read_binary() @@ -308,13 +313,18 @@ for r in range(1, num_of_rec + 1): result = self._cmd.rs.read_record(r) self._cmd.poutput("update_record %d %s" % (r, str(result[0]))) - fcp_dec = self._cmd.rs.select("..", self._cmd) except Exception as e: - bad_file_str = '/'.join(path_list) + "/" + str(filename) + ", " + str(e) + bad_file_str = '/'.join(df_path_list) + "/" + str(filename) + ", " + str(e) self._cmd.poutput("# bad file: %s" % bad_file_str) context['ERR'] += 1 context['BAD'].append(bad_file_str) + # When reading the file is done, make sure the parent file is + # selected again. This will be the usual case, however we need + # to check before since we must not select the same DF twice + if df != self._cmd.rs.selected_file: + self._cmd.rs.select(df.fid or df.aid, self._cmd) + self._cmd.poutput("#") export_parser = argparse.ArgumentParser() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9b1712b37e5b39e9016497185510a2a45c4ca6c Gerrit-Change-Number: 23568 Gerrit-PatchSet: 4 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 Fri Apr 2 14:57:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 14:57:16 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23577 ) Change subject: Add more documentation to the classes/methods ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py File pySim/filesystem.py: https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py at 45 PS2, Line 45: parent:'CardDF'=None > The linters won't be happy about this, you need [?] Thanks a lot. However: File "/space/home/laforge/projects/git/pysim/pySim/filesystem.py", line 47, in CardFile parent:Optional('CardDF')=None): File "/usr/lib/python3.9/typing.py", line 335, in __call__ raise TypeError(f"Cannot instantiate {self!r}") TypeError: Cannot instantiate typing.Optional -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: merlinchlosta Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 02 Apr 2021 14:57:16 +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 Apr 2 15:00:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 2 Apr 2021 15:00:18 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23577 ) Change subject: Add more documentation to the classes/methods ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py File pySim/filesystem.py: https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py at 45 PS2, Line 45: parent:'CardDF'=None > Thanks a lot. However: [?] Ah, sorry for confusion. I gave you a wrong example. It should be: parent: Optional['CardDF'] = None # with square brackets -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: merlinchlosta Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 02 Apr 2021 15:00:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 18:30:26 2021 From: gerrit-no-reply at lists.osmocom.org (merlinchlosta) Date: Fri, 2 Apr 2021 18:30:26 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: merlinchlosta has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23577 ) Change subject: Add more documentation to the classes/methods ...................................................................... Patch Set 2: The new docs answer many questions I had during the past days while diving into the pySim-shell codebase, really helpful! Thanks! Typos: 'lik' -> 'like' 'Descriptoin' -> 'Description' -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: merlinchlosta Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 02 Apr 2021 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 Fri Apr 2 19:05:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 19:05:23 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: Hello Jenkins Builder, tnt, merlinchlosta, fixeria, pespin, herlesupreeth, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23577 to look at the new patch set (#3). Change subject: Add more documentation to the classes/methods ...................................................................... Add more documentation to the classes/methods * add type annotations in-line with PEP484 * convert existing documentation to follow the "Google Python Style Guide" format understood by the sphinx.ext.napoleon' extension * add much more documentation all over the code base Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a --- M pySim/commands.py M pySim/exceptions.py M pySim/filesystem.py M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py M pySim/utils.py 9 files changed, 635 insertions(+), 185 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/77/23577/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: merlinchlosta 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 Fri Apr 2 19:05:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 19:05:24 +0000 Subject: Change in pysim[master]: ts_31_102: Fix decode_select_response() for DF.5GS References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23580 ) Change subject: ts_31_102: Fix decode_select_response() for DF.5GS ...................................................................... ts_31_102: Fix decode_select_response() for DF.5GS In Change-Id I848a766e6d00be497c7db905475e0681cce197ac we added a CardDF instance for DF_5GS. That DF should not have provided a decode_select_response() method, and instead fall back to that of the base class, which calls the method of the parent directory (ADF_USIM). The difference is illustrated below pySIM-shell (MF/ADF.USIM/EF.IMSI)> select DF.5GS "622e8202782183025fc0a509800171830400018d088a01058c056611111111c60f90017083010183018183010a83010b" vs. (with this patch): pySIM-shell (MF/ADF.USIM)> select DF.5GS { "file_descriptor": { "shareable": true, "file_type": "df", "structure": "no_info_given" }, "file_identifier": "5FC0", "proprietary_info": { "uicc_characteristics": "71", "available_memory": 101640 }, "life_cycle_status_int": "operational_activated", "security_attrib_compact": "6611111111", "pin_status_template_do": "90017083010183018183010A83010B" } Change-Id: I80612711bbc8c47285a828a0759b20beea6619f1 --- M pySim/ts_31_102.py 1 file changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/80/23580/1 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 9febaf7..cefc9d4 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -479,9 +479,6 @@ self.add_files(files) - def decode_select_response(self, data_hex): - return data_hex - class ADF_USIM(CardADF): def __init__(self, aid='a0000000871002', name='ADF.USIM', fid=None, sfid=None, desc='USIM Application'): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I80612711bbc8c47285a828a0759b20beea6619f1 Gerrit-Change-Number: 23580 Gerrit-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 Apr 2 19:05:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 19:05:24 +0000 Subject: Change in pysim[master]: filesystem: fix various issues found by mypy References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23581 ) Change subject: filesystem: fix various issues found by mypy ...................................................................... filesystem: fix various issues found by mypy Change-Id: Ib4de80451614712bdf5377a3a5b86156008e2c42 --- M pySim/filesystem.py M pySim/utils.py 2 files changed, 30 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/81/23581/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 1c2a886..be0aaf6 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -31,7 +31,7 @@ from cmd2 import CommandSet, with_default_category, with_argparser import argparse -from typing import Optional, Iterable, List, Any +from typing import cast, Optional, Iterable, List, Any, Dict, Tuple from pySim.utils import sw_match, h2b, b2h, is_hex from pySim.exceptions import * @@ -82,17 +82,19 @@ else: return self.fid - def fully_qualified_path(self, prefer_name:bool=True): + def fully_qualified_path(self, prefer_name:bool=True) -> List[str]: """Return fully qualified path to file as list of FID or name strings. Args: prefer_name : Preferably build path of names; fall-back to FIDs as required """ - if self.parent != self: + if self.parent and self.parent != self: ret = self.parent.fully_qualified_path(prefer_name) else: ret = [] - ret.append(self._path_element(prefer_name)) + elem = self._path_element(prefer_name) + if elem: + ret.append(elem) return ret def get_mf(self) -> Optional['CardMF']: @@ -101,11 +103,11 @@ return None # iterate towards the top. MF has parent == self node = self - while node.parent != node: + while node.parent and node.parent != node: node = node.parent - return node + return cast(CardMF, node) - def _get_self_selectables(self, alias:str=None, flags = []) -> dict: + def _get_self_selectables(self, alias:str=None, flags = []) -> Dict[str, 'CardFile']: """Return a dict of {'identifier': self} tuples. Args: @@ -124,7 +126,7 @@ sels.update({self.name: self}) return sels - def get_selectables(self, flags = []) -> dict: + def get_selectables(self, flags = []) -> Dict[str, 'CardFile']: """Return a dict of {'identifier': File} that is selectable from the current file. Args: @@ -140,7 +142,8 @@ sels = self._get_self_selectables('.', flags) # we can always select our parent if flags == [] or 'PARENT' in flags: - sels = self.parent._get_self_selectables('..', flags) + if self.parent: + sels = self.parent._get_self_selectables('..', flags) # if we have a MF, we can always select its applications if flags == [] or 'MF' in flags: mf = self.get_mf() @@ -149,22 +152,22 @@ sels.update(mf.get_app_selectables(flags = flags)) return sels - def get_selectable_names(self, flags = []) -> dict: + def get_selectable_names(self, flags = []) -> List[str]: """Return a dict of {'identifier': File} that is selectable from the current file. Args: flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; If not specified, all selectables will be returned. Returns: - dict containing all selectable items. Key is identifier (string), value - a reference to a CardFile (or derived class) instance. + list containing all selectable names. """ sels = self.get_selectables(flags) - return sels.keys() + return list(sels.keys()) def decode_select_response(self, data_hex:str): """Decode the response to a SELECT command.""" - return self.parent.decode_select_response(data_hex) + if self.parent: + return self.parent.decode_select_response(data_hex) class CardDF(CardFile): @@ -241,7 +244,7 @@ sels.update({x.name: x for x in self.children.values() if x.name}) return sels - def lookup_file_by_name(self, name:str) -> Optional[CardFile]: + def lookup_file_by_name(self, name:Optional[str]) -> Optional[CardFile]: """Find a file with given name within current DF.""" if name == None: return None @@ -250,12 +253,12 @@ return i return None - def lookup_file_by_sfid(self, sfid:str) -> Optional[CardFile]: + def lookup_file_by_sfid(self, sfid:Optional[str]) -> Optional[CardFile]: """Find a file with given short file ID within current DF.""" if sfid == None: return None for i in self.children.values(): - if i.sfid == int(sfid): + if i.sfid == int(str(sfid)): return i return None @@ -332,8 +335,9 @@ def __init__(self, aid:str, **kwargs): super().__init__(**kwargs) self.aid = aid # Application Identifier - if self.parent: - self.parent.add_application(self) + mf = self.get_mf() + if mf: + mf.add_application(self) def __str__(self): return "ADF(%s)" % (self.aid) @@ -644,7 +648,7 @@ method = getattr(self, '_encode_record_bin', None) if callable(method): raw_bin_data = method(abstract_data) - return h2b(raw_bin_data) + return b2h(raw_bin_data) raise NotImplementedError def encode_record_bin(self, abstract_data:dict) -> bytearray: @@ -683,8 +687,8 @@ We add a special class for those, so the user only has to provide encoder/decoder functions for a record, while this class takes care of split / merge of records. """ - def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, - parent:Optional[CardDF]=None, rec_len:int=None, size={1,None}): + def __init__(self, fid:str, rec_len:int, sfid:str=None, name:str=None, desc:str=None, + parent:Optional[CardDF]=None, size={1,None}): """ Args: fid : File Identifier (4 hex digits) @@ -757,7 +761,7 @@ return method(abstract_data) method = getattr(self, '_encode_record_bin', None) if callable(method): - return h2b(method(abstract_data)) + return b2h(method(abstract_data)) raise NotImplementedError def encode_record_bin(self, abstract_data:dict) -> bytearray: @@ -1040,8 +1044,8 @@ rec_nr : Record number to read data_hex : Abstract data to be written """ - hex_data = self.selected_file.encode_record_hex(data) - return self.update_record(self, rec_nr, data_hex) + data_hex = self.selected_file.encode_record_hex(data) + return self.update_record(rec_nr, data_hex) diff --git a/pySim/utils.py b/pySim/utils.py index 607526c..75106d8 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -803,7 +803,7 @@ return None -def sw_match(sw:str, pattern:str) -> str: +def sw_match(sw:str, pattern:str) -> bool: """Match given SW against given pattern.""" # Create a masked version of the returned status word sw_lower = sw.lower() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib4de80451614712bdf5377a3a5b86156008e2c42 Gerrit-Change-Number: 23581 Gerrit-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 Apr 2 19:05:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 19:05:25 +0000 Subject: Change in pysim[master]: Fix various mistakes around the CardADF <-> CardApplication dualism References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23582 ) Change subject: Fix various mistakes around the CardADF <-> CardApplication dualism ...................................................................... Fix various mistakes around the CardADF <-> CardApplication dualism When the CardFile hierarchy talks about 'application' it means CardADF. When the RuntimeState and CardProfile talk about 'application' they mean a CardApplication. Let's clarify this in the file names, and make CardADF have an optional reference to the CardApplication, so that application specific status word interpretation really works. Change-Id: Ibc80a41d79dca547f14d5d84f447742e6b46d7ca --- M pySim-shell.py M pySim/filesystem.py 2 files changed, 26 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/82/23582/1 diff --git a/pySim-shell.py b/pySim-shell.py index 3c56f51..c170398 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -45,8 +45,8 @@ from pySim.filesystem import CardMF, RuntimeState, CardDF, CardADF from pySim.ts_51_011 import CardProfileSIM, DF_TELECOM, DF_GSM from pySim.ts_102_221 import CardProfileUICC -from pySim.ts_31_102 import ADF_USIM -from pySim.ts_31_103 import ADF_ISIM +from pySim.ts_31_102 import CardApplicationUSIM +from pySim.ts_31_103 import CardApplicationISIM from pySim.card_data import CardDataCsv, card_data_register, card_data_get_field @@ -441,8 +441,8 @@ sys.exit(2) profile = CardProfileUICC() - profile.add_application(ADF_USIM()) - profile.add_application(ADF_ISIM()) + profile.add_application(CardApplicationUSIM) + profile.add_application(CardApplicationISIM) rs = RuntimeState(card, profile) diff --git a/pySim/filesystem.py b/pySim/filesystem.py index be0aaf6..9a68d5a 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -284,8 +284,8 @@ def __str__(self): return "MF(%s)" % (self.fid) - def add_application(self, app:'CardADF'): - """Add an ADF (Application Dedicated File) to the MF""" + def add_application_df(self, app:'CardADF'): + """Add an Application to the MF""" if not isinstance(app, CardADF): raise TypeError("Expected an ADF instance") if app.aid in self.applications: @@ -334,10 +334,12 @@ """ADF (Application Dedicated File) in the smart card filesystem""" def __init__(self, aid:str, **kwargs): super().__init__(**kwargs) + # reference to CardApplication may be set from CardApplication constructor + self.application:Optional[CardApplication] = None self.aid = aid # Application Identifier mf = self.get_mf() if mf: - mf.add_application(self) + mf.add_application_df(self) def __str__(self): return "ADF(%s)" % (self.aid) @@ -807,12 +809,13 @@ """ self.mf = CardMF() self.card = card - self.selected_file = self.mf + self.selected_file:CardDF = self.mf self.profile = profile - # add applications + MF-files from profile + # add application ADFs + MF-files from profile apps = self._match_applications() for a in apps: - self.mf.add_application(a) + if a.adf: + self.mf.add_application_df(a.adf) for f in self.profile.files_in_mf: self.mf.add_file(f) self.conserve_write = True @@ -849,8 +852,8 @@ else: return self.selected_file.parent - def get_application(self) -> Optional[CardADF]: - """Obtain the currently selected application (if any). + def get_application_df(self) -> Optional[CardADF]: + """Obtain the currently selected application DF (if any). Returns: CardADF() instance or None""" @@ -872,16 +875,16 @@ Returns: Tuple of two strings """ - app = self.get_application() - if app: + adf = self.get_application_df() + if adf: + app = adf.application # The application either comes with its own interpret_sw # method or we will use the interpret_sw method from the # card profile. - if hasattr(app, "interpret_sw"): + if app and hasattr(app, "interpret_sw"): return app.interpret_sw(sw) else: return self.profile.interpret_sw(sw) - return app.interpret_sw(sw) else: return self.profile.interpret_sw(sw) @@ -1078,7 +1081,7 @@ class CardApplication(object): """A card application is represented by an ADF (with contained hierarchy) and optionally some SW definitions.""" - def __init__(self, name, adf:str=None, sw:dict=None): + def __init__(self, name, adf:Optional[CardADF]=None, aid:str=None, sw:dict=None): """ Args: adf : ADF name @@ -1087,6 +1090,12 @@ self.name = name self.adf = adf self.sw = sw or dict() + # back-reference from ADF to Applicaiton + if self.adf: + self.aid = aid or self.adf.aid + self.adf.application = self + else: + self.aid = aid def __str__(self): return "APP(%s)" % (self.name) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibc80a41d79dca547f14d5d84f447742e6b46d7ca Gerrit-Change-Number: 23582 Gerrit-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 Apr 2 19:05:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 19:05:50 +0000 Subject: Change in pysim[master]: ts_31_102: Fix decode_select_response() for DF.5GS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23580 ) Change subject: ts_31_102: Fix decode_select_response() for DF.5GS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I80612711bbc8c47285a828a0759b20beea6619f1 Gerrit-Change-Number: 23580 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: merlinchlosta Gerrit-Comment-Date: Fri, 02 Apr 2021 19:05: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 Apr 2 19:07:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 19:07:22 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23577 ) Change subject: Add more documentation to the classes/methods ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/commands.py File pySim/commands.py: https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/commands.py at 141 PS2, Line 141: length:int=None > Python is weird: [?] I decided to keep that as-is. https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py File pySim/filesystem.py: https://gerrit.osmocom.org/c/pysim/+/23577/2/pySim/filesystem.py at 45 PS2, Line 45: parent:'CardDF'=None > Ah, sorry for confusion. I gave you a wrong example. It should be: [?] Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: merlinchlosta Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 02 Apr 2021 19:07: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 Fri Apr 2 19:09:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 19:09:54 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: Hello Jenkins Builder, tnt, merlinchlosta, fixeria, pespin, herlesupreeth, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23577 to look at the new patch set (#4). Change subject: Add more documentation to the classes/methods ...................................................................... Add more documentation to the classes/methods * add type annotations in-line with PEP484 * convert existing documentation to follow the "Google Python Style Guide" format understood by the sphinx.ext.napoleon' extension * add much more documentation all over the code base Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a --- M pySim/commands.py M pySim/exceptions.py M pySim/filesystem.py M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py M pySim/utils.py 9 files changed, 635 insertions(+), 185 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/77/23577/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: merlinchlosta 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 Fri Apr 2 19:09:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 19:09:54 +0000 Subject: Change in pysim[master]: filesystem: fix various issues found by mypy In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/pysim/+/23581 ) Change subject: filesystem: fix various issues found by mypy ...................................................................... filesystem: fix various issues found by mypy Change-Id: Ib4de80451614712bdf5377a3a5b86156008e2c42 --- M pySim/filesystem.py M pySim/utils.py 2 files changed, 30 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/81/23581/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib4de80451614712bdf5377a3a5b86156008e2c42 Gerrit-Change-Number: 23581 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 Fri Apr 2 19:09:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 19:09:54 +0000 Subject: Change in pysim[master]: Fix various mistakes around the CardADF <-> CardApplication dualism In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/pysim/+/23582 ) Change subject: Fix various mistakes around the CardADF <-> CardApplication dualism ...................................................................... Fix various mistakes around the CardADF <-> CardApplication dualism When the CardFile hierarchy talks about 'application' it means CardADF. When the RuntimeState and CardProfile talk about 'application' they mean a CardApplication. Let's clarify this in the file names, and make CardADF have an optional reference to the CardApplication, so that application specific status word interpretation really works. Change-Id: Ibc80a41d79dca547f14d5d84f447742e6b46d7ca --- M pySim-shell.py M pySim/filesystem.py 2 files changed, 26 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/82/23582/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibc80a41d79dca547f14d5d84f447742e6b46d7ca Gerrit-Change-Number: 23582 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 Apr 2 19:10:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 19:10:07 +0000 Subject: Change in pysim[master]: ts_31_102: Fix decode_select_response() for DF.5GS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23580 ) Change subject: ts_31_102: Fix decode_select_response() for DF.5GS ...................................................................... ts_31_102: Fix decode_select_response() for DF.5GS In Change-Id I848a766e6d00be497c7db905475e0681cce197ac we added a CardDF instance for DF_5GS. That DF should not have provided a decode_select_response() method, and instead fall back to that of the base class, which calls the method of the parent directory (ADF_USIM). The difference is illustrated below pySIM-shell (MF/ADF.USIM/EF.IMSI)> select DF.5GS "622e8202782183025fc0a509800171830400018d088a01058c056611111111c60f90017083010183018183010a83010b" vs. (with this patch): pySIM-shell (MF/ADF.USIM)> select DF.5GS { "file_descriptor": { "shareable": true, "file_type": "df", "structure": "no_info_given" }, "file_identifier": "5FC0", "proprietary_info": { "uicc_characteristics": "71", "available_memory": 101640 }, "life_cycle_status_int": "operational_activated", "security_attrib_compact": "6611111111", "pin_status_template_do": "90017083010183018183010A83010B" } Change-Id: I80612711bbc8c47285a828a0759b20beea6619f1 --- M pySim/ts_31_102.py 1 file changed, 0 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 9febaf7..cefc9d4 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -479,9 +479,6 @@ self.add_files(files) - def decode_select_response(self, data_hex): - return data_hex - class ADF_USIM(CardADF): def __init__(self, aid='a0000000871002', name='ADF.USIM', fid=None, sfid=None, desc='USIM Application'): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I80612711bbc8c47285a828a0759b20beea6619f1 Gerrit-Change-Number: 23580 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: merlinchlosta Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 20:13:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:13:53 +0000 Subject: Change in pysim[master]: pySim-shell: Remove UsimCommands References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23583 ) Change subject: pySim-shell: Remove UsimCommands ...................................................................... pySim-shell: Remove UsimCommands Those are a leftover of a very early attempt at pySim-shell, it has long been superseded by all of the filesystem.py infrastructure. Change-Id: I6b84ce205f46a1efd19087d332920982f17ca9cc --- M pySim-shell.py 1 file changed, 1 insertion(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/83/23583/1 diff --git a/pySim-shell.py b/pySim-shell.py index c170398..931b5ea 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -54,7 +54,7 @@ class PysimApp(cmd2.Cmd): CUSTOM_CATEGORY = 'pySim Commands' def __init__(self, card, rs, script = None): - basic_commands = [Iso7816Commands(), UsimCommands()] + basic_commands = [Iso7816Commands()] super().__init__(persistent_history_file='~/.pysim_shell_history', allow_cli_args=False, use_ipython=True, auto_load_commands=False, command_sets=basic_commands, startup_script=script) self.intro = style('Welcome to pySim-shell!', fg=fg.red) @@ -346,24 +346,6 @@ raise RuntimeError("unable to export %i file(s)" % context['ERR']) - at with_default_category('USIM Commands') -class UsimCommands(CommandSet): - def __init__(self): - super().__init__() - - def do_read_ust(self, _): - """Read + Display the EF.UST""" - self._cmd.card.select_adf_by_aid(adf="usim") - (res, sw) = self._cmd.card.read_ust() - self._cmd.poutput(res[0]) - self._cmd.poutput(res[1]) - - def do_read_ehplmn(self, _): - """Read EF.EHPLMN""" - self._cmd.card.select_adf_by_aid(adf="usim") - (res, sw) = self._cmd.card.read_ehplmn() - self._cmd.poutput(res) - def parse_options(): parser = OptionParser(usage="usage: %prog [options]") -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6b84ce205f46a1efd19087d332920982f17ca9cc Gerrit-Change-Number: 23583 Gerrit-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 Apr 2 20:13:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:13:53 +0000 Subject: Change in pysim[master]: fix various file definitions References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23584 ) Change subject: fix various file definitions ...................................................................... fix various file definitions As we can notice during 'export': Some files had been defined as LinFixed but are Transparent - and vice versa. Let's fix those an bring our definitions in sync with the specs. Change-Id: I365ece7b82a1c79b3af87a79ff964d7989362789 --- M pySim/ts_31_102.py M pySim/ts_31_103.py M pySim/ts_51_011.py 3 files changed, 15 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/84/23584/1 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index cefc9d4..267008d 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -270,7 +270,7 @@ from pySim.filesystem import * from pySim.ts_51_011 import EF_IMSI, EF_xPLMNwAcT, EF_SPN, EF_CBMI, EF_ACC, EF_PLMNsel, EF_AD -from pySim.ts_51_011 import EF_CBMID, EF_ECC, EF_CBMIR +from pySim.ts_51_011 import EF_CBMID, EF_CBMIR import pySim.ts_102_221 @@ -460,6 +460,12 @@ """Deactivate a service within EF.UST""" self._cmd.card.update_ust(int(arg), 0) +# TS 31.103 Section 4.2.7 - *not* the same as DF.GSM/EF.ECC! +class EF_ECC(LinFixedEF): + def __init__(self, fid='6fb7', sfid=0x01, name='EF.ECC', + desc='Emergency Call Codes'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={4,20}) + class DF_USIM_5GS(CardDF): def __init__(self, fid='5FC0', name='DF.5GS', desc='5GS related files'): super().__init__(fid=fid, name=name, desc=desc) @@ -472,7 +478,7 @@ TransparentEF('4F05', None, 'EF.5GAUTHKEYS', '5G authentication keys', size={68, None}), TransparentEF('4F06', None, 'EF.UAC_AIC', 'UAC Access Identities Configuration', size={4, 4}), EF_SUCI_Calc_Info(), #TransparentEF('4F07', None, 'EF.SUCI_Calc_Info', 'SUCI Calculation Information', size={2, None}), - TransparentEF('4F08', None, 'EF.OPL5G', '5GS Operator PLMN List', size={10, None}), + LinFixedEF('4F08', None, 'EF.OPL5G', '5GS Operator PLMN List', rec_len={10, None}), # TransparentEF('4F09', None, 'EF.NSI', 'Network Specific Identifier'), # FFS TransparentEF('4F0A', None, 'EF.Routing_Indicator', 'Routing Indicator', size={4,4}), ] @@ -505,7 +511,7 @@ TransparentEF('6f7e', 0x0b, 'EF.LOCI', 'Locationn information', size={11,11}), EF_AD(sfid=0x03), EF_CBMID(sfid=0x0e), - EF_ECC(sfid=0x01), + EF_ECC(), EF_CBMIR(), DF_USIM_5GS(), ] diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index 0b0a4f1..8209845 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -124,7 +124,7 @@ return enc_addr_tlv(json_in) # TS 31.103 Section 4.2.9 -class EF_GBABP(LinFixedEF): +class EF_GBABP(TransparentEF): def __init__(self, fid='6fd5', sfid=None, name='EF.GBABP', desc='GBA Bootstrappng'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index e4a26a3..1455d8f 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -484,10 +484,11 @@ desc='Cell Broadcast Message Identifier for Data Download'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) -# TS 51.011 Section 10.3.26 -class EF_ECC(LinFixedEF): - def __init__(self, fid='6fb7', sfid=None, name='EF.ECC', desc='Emergency Call Codes'): - super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={4, 20}) +# TS 51.011 Section 10.3.27 +class EF_ECC(TransRecEF): + def __init__(self, fid='6fb7', sfid=None, name='EF.ECC', size={3,15}, rec_len=3, + desc='Emergency Call Codes'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) # TS 51.011 Section 10.3.28 class EF_CBMIR(TransRecEF): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23584 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I365ece7b82a1c79b3af87a79ff964d7989362789 Gerrit-Change-Number: 23584 Gerrit-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 Apr 2 20:13:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:13:54 +0000 Subject: Change in pysim[master]: 51.011: Define some more files within DF_TELECOM References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23585 ) Change subject: 51.011: Define some more files within DF_TELECOM ...................................................................... 51.011: Define some more files within DF_TELECOM Add some more minimal definitions for various DF_TELECOM files Change-Id: I155729b4d62969cde2af00fc9fb9901299fe5c25 --- M pySim/ts_51_011.py 1 file changed, 39 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/85/23585/1 diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 1455d8f..a671f31 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -352,8 +352,38 @@ 'dialing_nr': u[2], 'cap_conf_id': u[3], 'ext1_record_id': u[4]} # TS 51.011 Section 10.5.5 +class EF_SMS(LinFixedEF): + def __init__(self, fid='6f3c', sfid=None, name='EF.SMS', desc='Short messages'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={176,176}) + def _decode_record_bin(self, raw_bin_data): + def decode_status(status): + if status & 0x01 == 0x00: + return (None, 'free_space') + elif status & 0x07 == 0x01: + return ('mt', 'message_read') + elif status & 0x07 == 0x03: + return ('mt', 'message_to_be_read') + elif status & 0x07 == 0x07: + return ('mo', 'message_to_be_sent') + elif status & 0x1f == 0x05: + return ('mo', 'sent_status_not_requested') + elif status & 0x1f == 0x0d: + return ('mo', 'sent_status_req_but_not_received') + elif status & 0x1f == 0x15: + return ('mo', 'sent_status_req_rx_not_stored_smsr') + elif status & 0x1f == 0x1d: + return ('mo', 'sent_status_req_rx_stored_smsr') + else: + return (None, 'rfu') + + status = decode_status(raw_bin_data[0]) + remainder = raw_bin_data[1:] + return {'direction': status[0], 'status': status[1], 'remainder': b2h(remainder)} + + +# TS 51.011 Section 10.5.5 class EF_MSISDN(LinFixedEF): - def __init__(self, fid='6f4f', sfid=None, name='EF.MSISDN', desc='MSISDN'): + def __init__(self, fid='6f40', sfid=None, name='EF.MSISDN', desc='MSISDN'): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={15, None}) def _decode_record_hex(self, raw_hex_data): return {'msisdn': dec_msisdn(raw_hex_data)} @@ -370,10 +400,16 @@ super().__init__(fid=fid, name=name, desc=desc) files = [ EF_ADN(), - # FDN, SMS, CCP, ECCP + EF_ADN(fid='6f3b', name='EF_FDN', desc='Fixed dialling numbers'), + EF_SMS(), + LinFixedEF(fid='6f3d', name='EF.CCP', desc='Capability Configuration Parameters', rec_len={14,14}), + LinFixedEF(fid='6f4f', name='EF.ECCP', desc='Extended Capability Configuration Parameters', rec_len={15,32}), EF_MSISDN(), EF_SMSP(), - # SMSS, LND, SDN, EXT1, EXT2, EXT3, BDN, EXT4, SMSR, CMI + TransparentEF(fid='6f43', name='EF.SMSS', desc='SMS status', size={2,8}), + # LND, SDN, EXT1, EXT2, EXT3, BDN, EXT4 + LinFixedEF(fid='6f47', name='EF.SMSR', desc='SMS status reports', rec_len={30,30}), + # CMI ] self.add_files(files) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I155729b4d62969cde2af00fc9fb9901299fe5c25 Gerrit-Change-Number: 23585 Gerrit-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 Apr 2 20:13:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:13:54 +0000 Subject: Change in pysim[master]: filsystem: Fix interpret_sw() fall-through References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23586 ) Change subject: filsystem: Fix interpret_sw() fall-through ...................................................................... filsystem: Fix interpret_sw() fall-through if an application-specific interpret_sw() fails, fall back to the profile interpret_sw(). Change-Id: I326c6002c75e2f906848784b7831ea169134dbe4 --- M pySim/filesystem.py 1 file changed, 3 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/86/23586/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 9a68d5a..55a7130 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -875,6 +875,7 @@ Returns: Tuple of two strings """ + res = None adf = self.get_application_df() if adf: app = adf.application @@ -882,11 +883,8 @@ # method or we will use the interpret_sw method from the # card profile. if app and hasattr(app, "interpret_sw"): - return app.interpret_sw(sw) - else: - return self.profile.interpret_sw(sw) - else: - return self.profile.interpret_sw(sw) + res = app.interpret_sw(sw) + return res or self.profile.interpret_sw(sw) def probe_file(self, fid:str, cmd_app=None): """Blindly try to select a file and automatically add a matching file -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I326c6002c75e2f906848784b7831ea169134dbe4 Gerrit-Change-Number: 23586 Gerrit-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 Apr 2 20:15:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:15:17 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23577 ) Change subject: Add more documentation to the classes/methods ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-Reviewer: merlinchlosta Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 02 Apr 2021 20:15: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 Apr 2 20:15:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:15:19 +0000 Subject: Change in pysim[master]: Use sphinx for generating documentation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23578 ) Change subject: Use sphinx for generating documentation ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I52603e93c2c129a9e79687da6c534fa56a40a649 Gerrit-Change-Number: 23578 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 02 Apr 2021 20: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 Apr 2 20:15:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:15:26 +0000 Subject: Change in pysim[master]: filesystem: Avoid GPL header showing up in sphinx autodoc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23579 ) Change subject: filesystem: Avoid GPL header showing up in sphinx autodoc ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1d963ae3d1511ef40d1ebcb36b0f67c40cbd6309 Gerrit-Change-Number: 23579 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 02 Apr 2021 20:15:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 20:15:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:15:32 +0000 Subject: Change in pysim[master]: filesystem: fix various issues found by mypy In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23581 ) Change subject: filesystem: fix various issues found by mypy ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib4de80451614712bdf5377a3a5b86156008e2c42 Gerrit-Change-Number: 23581 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 20:15:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 20:15:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:15:37 +0000 Subject: Change in pysim[master]: Fix various mistakes around the CardADF <-> CardApplication dualism In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23582 ) Change subject: Fix various mistakes around the CardADF <-> CardApplication dualism ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibc80a41d79dca547f14d5d84f447742e6b46d7ca Gerrit-Change-Number: 23582 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 20:15:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 20:15:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:15:45 +0000 Subject: Change in pysim[master]: Add more documentation to the classes/methods In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23577 ) Change subject: Add more documentation to the classes/methods ...................................................................... Add more documentation to the classes/methods * add type annotations in-line with PEP484 * convert existing documentation to follow the "Google Python Style Guide" format understood by the sphinx.ext.napoleon' extension * add much more documentation all over the code base Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a --- M pySim/commands.py M pySim/exceptions.py M pySim/filesystem.py M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py M pySim/utils.py 9 files changed, 635 insertions(+), 185 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/commands.py b/pySim/commands.py index 5184a77..7919099 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -65,7 +65,7 @@ # from what SIMs responds. See also: # USIM: ETSI TS 102 221, chapter 11.1.1.3 Response Data # SIM: GSM 11.11, chapter 9.2.1 SELECT - def __record_len(self, r): + def __record_len(self, r) -> int: if self.sel_ctrl == "0004": tlv_parsed = self.__parse_fcp(r[-1]) file_descriptor = tlv_parsed['82'] @@ -76,14 +76,15 @@ # Tell the length of a binary file. See also comment # above. - def __len(self, r): + def __len(self, r) -> int: if self.sel_ctrl == "0004": tlv_parsed = self.__parse_fcp(r[-1]) return int(tlv_parsed['80'], 16) else: return int(r[-1][4:8], 16) - def get_atr(self): + def get_atr(self) -> str: + """Return the ATR of the currently inserted card.""" return self._tp.get_atr() @property @@ -101,6 +102,7 @@ self._sel_ctrl = value def try_select_path(self, dir_list): + """ Try to select a specified path given as list of hex-string FIDs""" rv = [] if type(dir_list) is not list: dir_list = [dir_list] @@ -112,6 +114,14 @@ return rv def select_path(self, dir_list): + """Execute SELECT for an entire list/path of FIDs. + + Args: + dir_list: list of FIDs representing the path to select + + Returns: + list of return values (FCP in hex encoding) for each element of the path + """ rv = [] if type(dir_list) is not list: dir_list = [dir_list] @@ -120,14 +130,23 @@ rv.append(data) return rv - def select_file(self, fid): + def select_file(self, fid:str): + """Execute SELECT a given file by FID.""" return self._tp.send_apdu_checksw(self.cla_byte + "a4" + self.sel_ctrl + "02" + fid) - def select_adf(self, aid): + def select_adf(self, aid:str): + """Execute SELECT a given Applicaiton ADF.""" aidlen = ("0" + format(len(aid) // 2, 'x'))[-2:] return self._tp.send_apdu_checksw(self.cla_byte + "a4" + "0404" + aidlen + aid) - def read_binary(self, ef, length=None, offset=0): + def read_binary(self, ef, length:int=None, offset:int=0): + """Execute READD BINARY. + + Args: + ef : string or list of strings indicating name or path of transparent EF + length : number of bytes to read + offset : byte offset in file from which to start reading + """ r = self.select_path(ef) if len(r[-1]) == 0: return (None, None) @@ -145,7 +164,15 @@ raise ValueError('Failed to read (offset %d)' % (offset)) return total_data, sw - def update_binary(self, ef, data, offset=0, verify=False, conserve=False): + def update_binary(self, ef, data:str, offset:int=0, verify:bool=False, conserve:bool=False): + """Execute UPDATE BINARY. + + Args: + ef : string or list of strings indicating name or path of transparent EF + data : hex string of data to be written + offset : byte offset in file from which to start writing + verify : Whether or not to verify data after write + """ data_length = len(data) // 2 # Save write cycles by reading+comparing before write @@ -161,18 +188,32 @@ self.verify_binary(ef, data, offset) return res - def verify_binary(self, ef, data, offset=0): + def verify_binary(self, ef, data:str, offset:int=0): + """Verify contents of transparent EF. + + Args: + ef : string or list of strings indicating name or path of transparent EF + data : hex string of expected data + offset : byte offset in file from which to start verifying + """ res = self.read_binary(ef, len(data) // 2, offset) if res[0].lower() != data.lower(): raise ValueError('Binary verification failed (expected %s, got %s)' % (data.lower(), res[0].lower())) - def read_record(self, ef, rec_no): + def read_record(self, ef, rec_no:int): + """Execute READ RECORD. + + Args: + ef : string or list of strings indicating name or path of linear fixed EF + rec_no : record number to read + """ r = self.select_path(ef) rec_length = self.__record_len(r) pdu = self.cla_byte + 'b2%02x04%02x' % (rec_no, rec_length) return self._tp.send_apdu(pdu) - def update_record(self, ef, rec_no, data, force_len=False, verify=False, conserve=False): + def update_record(self, ef, rec_no:int, data:str, force_len:bool=False, verify:bool=False, + conserve:bool=False): r = self.select_path(ef) if not force_len: rec_length = self.__record_len(r) @@ -194,30 +235,47 @@ self.verify_record(ef, rec_no, data) return res - def verify_record(self, ef, rec_no, data): + def verify_record(self, ef, rec_no:int, data:str): res = self.read_record(ef, rec_no) if res[0].lower() != data.lower(): raise ValueError('Record verification failed (expected %s, got %s)' % (data.lower(), res[0].lower())) def record_size(self, ef): + """Determine the record size of given file. + + Args: + ef : string or list of strings indicating name or path of linear fixed EF + """ r = self.select_path(ef) return self.__record_len(r) def record_count(self, ef): + """Determine the number of records in given file. + + Args: + ef : string or list of strings indicating name or path of linear fixed EF + """ r = self.select_path(ef) return self.__len(r) // self.__record_len(r) def binary_size(self, ef): + """Determine the size of given transparent file. + + Args: + ef : string or list of strings indicating name or path of transparent EF + """ r = self.select_path(ef) return self.__len(r) - def run_gsm(self, rand): + def run_gsm(self, rand:str): + """Execute RUN GSM ALGORITHM.""" if len(rand) != 32: raise ValueError('Invalid rand') self.select_path(['3f00', '7f20']) return self._tp.send_apdu(self.cla_byte + '88000010' + rand) def reset_card(self): + """Physically reset the card""" return self._tp.reset_card() def _chv_process_sw(self, op_name, chv_no, pin_code, sw): @@ -227,31 +285,36 @@ elif (sw != '9000'): raise SwMatchError(sw, '9000') - def verify_chv(self, chv_no, pin_code): - fc = rpad(b2h(pin_code), 16) + def verify_chv(self, chv_no:int, code:str): + """Verify a given CHV (Card Holder Verification == PIN)""" + fc = rpad(b2h(code), 16) data, sw = self._tp.send_apdu(self.cla_byte + '2000' + ('%02X' % chv_no) + '08' + fc) - self._chv_process_sw('verify', chv_no, pin_code, sw) + self._chv_process_sw('verify', chv_no, code, sw) return (data, sw) - def unblock_chv(self, chv_no, puk_code, pin_code): + def unblock_chv(self, chv_no:int, puk_code:str, pin_code:str): + """Unblock a given CHV (Card Holder Verification == PIN)""" fc = rpad(b2h(puk_code), 16) + rpad(b2h(pin_code), 16) data, sw = self._tp.send_apdu(self.cla_byte + '2C00' + ('%02X' % chv_no) + '10' + fc) self._chv_process_sw('unblock', chv_no, pin_code, sw) return (data, sw) - def change_chv(self, chv_no, pin_code, new_pin_code): + def change_chv(self, chv_no:int, pin_code:str, new_pin_code:str): + """Change a given CHV (Card Holder Verification == PIN)""" fc = rpad(b2h(pin_code), 16) + rpad(b2h(new_pin_code), 16) data, sw = self._tp.send_apdu(self.cla_byte + '2400' + ('%02X' % chv_no) + '10' + fc) self._chv_process_sw('change', chv_no, pin_code, sw) return (data, sw) - def disable_chv(self, chv_no, pin_code): + def disable_chv(self, chv_no:int, pin_code:str): + """Disable a given CHV (Card Holder Verification == PIN)""" fc = rpad(b2h(pin_code), 16) data, sw = self._tp.send_apdu(self.cla_byte + '2600' + ('%02X' % chv_no) + '08' + fc) self._chv_process_sw('disable', chv_no, pin_code, sw) return (data, sw) - def enable_chv(self, chv_no, pin_code): + def enable_chv(self, chv_no:int, pin_code:str): + """Enable a given CHV (Card Holder Verification == PIN)""" fc = rpad(b2h(pin_code), 16) data, sw = self._tp.send_apdu(self.cla_byte + '2800' + ('%02X' % chv_no) + '08' + fc) self._chv_process_sw('enable', chv_no, pin_code, sw) diff --git a/pySim/exceptions.py b/pySim/exceptions.py index 4fb8f72..f1d1a18 100644 --- a/pySim/exceptions.py +++ b/pySim/exceptions.py @@ -22,18 +22,27 @@ # class NoCardError(Exception): + """No card was found in the reader.""" pass class ProtocolError(Exception): + """Some kind of protocol level error interfacing with the card.""" pass class ReaderError(Exception): + """Some kind of general error with the card reader.""" pass class SwMatchError(Exception): """Raised when an operation specifies an expected SW but the actual SW from the card doesn't match.""" - def __init__(self, sw_actual, sw_expected, rs=None): + def __init__(self, sw_actual:str, sw_expected:str, rs=None): + """ + Args: + sw_actual : the SW we actually received from the card (4 hex digits) + sw_expected : the SW we expected to receive from the card (4 hex digits) + rs : interpreter class to convert SW to string + """ self.sw_actual = sw_actual self.sw_expected = sw_expected self.rs = rs diff --git a/pySim/filesystem.py b/pySim/filesystem.py index e959c52..d1a7b51 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -31,6 +31,8 @@ from cmd2 import CommandSet, with_default_category, with_argparser import argparse +from typing import Optional, Iterable, List, Any, Tuple + from pySim.utils import sw_match, h2b, b2h, is_hex from pySim.exceptions import * @@ -41,7 +43,16 @@ RESERVED_NAMES = ['..', '.', '/', 'MF'] RESERVED_FIDS = ['3f00'] - def __init__(self, fid=None, sfid=None, name=None, desc=None, parent=None): + def __init__(self, fid:str=None, sfid:str=None, name:str=None, desc:str=None, + parent:Optional['CardDF']=None): + """ + Args: + fid : File Identifier (4 hex digits) + sfid : Short File Identifier (2 hex digits, optional) + name : Brief name of the file, lik EF_ICCID + desc : Descriptoin of the file + parent : Parent CardFile object within filesystem hierarchy + """ if not isinstance(self, CardADF) and fid == None: raise ValueError("fid is mandatory") if fid: @@ -53,7 +64,7 @@ self.parent = parent if self.parent and self.parent != self and self.fid: self.parent.add_file(self) - self.shell_commands = [] + self.shell_commands: List[CommandSet] = [] # Note: the basic properties (fid, name, ect.) are verified when # the file is attached to a parent file. See method add_file() in @@ -65,14 +76,18 @@ else: return self.fid - def _path_element(self, prefer_name): + def _path_element(self, prefer_name:bool) -> Optional[str]: if prefer_name and self.name: return self.name else: return self.fid - def fully_qualified_path(self, prefer_name=True): - """Return fully qualified path to file as list of FID or name strings.""" + def fully_qualified_path(self, prefer_name:bool=True): + """Return fully qualified path to file as list of FID or name strings. + + Args: + prefer_name : Preferably build path of names; fall-back to FIDs as required + """ if self.parent != self: ret = self.parent.fully_qualified_path(prefer_name) else: @@ -80,7 +95,7 @@ ret.append(self._path_element(prefer_name)) return ret - def get_mf(self): + def get_mf(self) -> Optional['CardMF']: """Return the MF (root) of the file system.""" if self.parent == None: return None @@ -90,8 +105,16 @@ node = node.parent return node - def _get_self_selectables(self, alias=None, flags = []): - """Return a dict of {'identifier': self} tuples""" + def _get_self_selectables(self, alias:str=None, flags = []) -> dict: + """Return a dict of {'identifier': self} tuples. + + Args: + alias : Add an alias with given name to 'self' + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing reference to 'self' for all identifiers. + """ sels = {} if alias: sels.update({alias: self}) @@ -101,8 +124,16 @@ sels.update({self.name: self}) return sels - def get_selectables(self, flags = []): - """Return a dict of {'identifier': File} that is selectable from the current file.""" + def get_selectables(self, flags = []) -> dict: + """Return a dict of {'identifier': File} that is selectable from the current file. + + Args: + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing all selectable items. Key is identifier (string), value + a reference to a CardFile (or derived class) instance. + """ sels = {} # we can always select ourself if flags == [] or 'SELF' in flags: @@ -118,12 +149,20 @@ sels.update(mf.get_app_selectables(flags = flags)) return sels - def get_selectable_names(self, flags = []): - """Return a list of strings for all identifiers that are selectable from the current file.""" + def get_selectable_names(self, flags = []) -> dict: + """Return a dict of {'identifier': File} that is selectable from the current file. + + Args: + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing all selectable items. Key is identifier (string), value + a reference to a CardFile (or derived class) instance. + """ sels = self.get_selectables(flags) return sels.keys() - def decode_select_response(self, data_hex): + def decode_select_response(self, data_hex:str): """Decode the response to a SELECT command.""" return self.parent.decode_select_response(data_hex) @@ -147,8 +186,12 @@ def __str__(self): return "DF(%s)" % (super().__str__()) - def add_file(self, child, ignore_existing=False): - """Add a child (DF/EF) to this DF""" + def add_file(self, child:CardFile, ignore_existing:bool=False): + """Add a child (DF/EF) to this DF. + Args: + child: The new DF/EF to be added + ignore_existing: Ignore, if file with given FID already exists. Old one will be kept. + """ if not isinstance(child, CardFile): raise TypeError("Expected a File instance") if not is_hex(child.fid, minlen = 4, maxlen = 4): @@ -170,13 +213,26 @@ self.children[child.fid] = child child.parent = self - def add_files(self, children, ignore_existing=False): - """Add a list of child (DF/EF) to this DF""" + def add_files(self, children:Iterable[CardFile], ignore_existing:bool=False): + """Add a list of child (DF/EF) to this DF + + Args: + children: List of new DF/EFs to be added + ignore_existing: Ignore, if file[s] with given FID already exists. Old one[s] will be kept. + """ for child in children: self.add_file(child, ignore_existing) - def get_selectables(self, flags = []): - """Get selectable (DF/EF names) from current DF""" + def get_selectables(self, flags = []) -> dict: + """Return a dict of {'identifier': File} that is selectable from the current DF. + + Args: + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing all selectable items. Key is identifier (string), value + a reference to a CardFile (or derived class) instance. + """ # global selectables + our children sels = super().get_selectables(flags) if flags == [] or 'FIDS' in flags: @@ -185,7 +241,8 @@ sels.update({x.name: x for x in self.children.values() if x.name}) return sels - def lookup_file_by_name(self, name): + def lookup_file_by_name(self, name:str) -> Optional[CardFile]: + """Find a file with given name within current DF.""" if name == None: return None for i in self.children.values(): @@ -193,7 +250,8 @@ return i return None - def lookup_file_by_sfid(self, sfid): + def lookup_file_by_sfid(self, sfid:str) -> Optional[CardFile]: + """Find a file with given short file ID within current DF.""" if sfid == None: return None for i in self.children.values(): @@ -201,7 +259,8 @@ return i return None - def lookup_file_by_fid(self, fid): + def lookup_file_by_fid(self, fid:str) -> Optional[CardFile]: + """Find a file with given file ID within current DF.""" if fid in self.children: return self.children[fid] return None @@ -222,7 +281,7 @@ def __str__(self): return "MF(%s)" % (self.fid) - def add_application(self, app): + def add_application(self, app:'CardADF'): """Add an ADF (Application Dedicated File) to the MF""" if not isinstance(app, CardADF): raise TypeError("Expected an ADF instance") @@ -235,13 +294,21 @@ """Get list of completions (AID names)""" return [x.name for x in self.applications] - def get_selectables(self, flags = []): - """Get list of completions (DF/EF/ADF names) from current DF""" + def get_selectables(self, flags = []) -> dict: + """Return a dict of {'identifier': File} that is selectable from the current DF. + + Args: + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing all selectable items. Key is identifier (string), value + a reference to a CardFile (or derived class) instance. + """ sels = super().get_selectables(flags) sels.update(self.get_app_selectables(flags)) return sels - def get_app_selectables(self, flags = []): + def get_app_selectables(self, flags = []) -> dict: """Get applications by AID + name""" sels = {} if flags == [] or 'AIDS' in flags: @@ -250,15 +317,19 @@ sels.update({x.name: x for x in self.applications.values() if x.name}) return sels - def decode_select_response(self, data_hex): - """Decode the response to a SELECT command.""" + def decode_select_response(self, data_hex:str) -> Any: + """Decode the response to a SELECT command. + + This is the fall-back method which doesn't perform any decoding. It mostly + exists so specific derived classes can overload it for actual decoding. + """ return data_hex class CardADF(CardDF): """ADF (Application Dedicated File) in the smart card filesystem""" - def __init__(self, aid, **kwargs): + def __init__(self, aid:str, **kwargs): super().__init__(**kwargs) self.aid = aid # Application Identifier if self.parent: @@ -267,7 +338,7 @@ def __str__(self): return "ADF(%s)" % (self.aid) - def _path_element(self, prefer_name): + def _path_element(self, prefer_name:bool): if self.name and prefer_name: return self.name else: @@ -283,8 +354,16 @@ def __str__(self): return "EF(%s)" % (super().__str__()) - def get_selectables(self, flags = []): - """Get list of completions (EF names) from current DF""" + def get_selectables(self, flags = []) -> dict: + """Return a dict of {'identifier': File} that is selectable from the current DF. + + Args: + flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; + If not specified, all selectables will be returned. + Returns: + dict containing all selectable items. Key is identifier (string), value + a reference to a CardFile (or derived class) instance. + """ #global selectable names + those of the parent DF sels = super().get_selectables(flags) sels.update({x.name:x for x in self.parent.children.values() if x != self}) @@ -292,10 +371,14 @@ class TransparentEF(CardEF): - """Transparent EF (Entry File) in the smart card filesystem""" + """Transparent EF (Entry File) in the smart card filesystem. + + A Transparent EF is a binary file with no formal structure. This is contrary to + Record based EFs which have [fixed size] records that can be individually read/updated.""" @with_default_category('Transparent EF Commands') class ShellCommands(CommandSet): + """Shell commands specific for Trransparent EFs.""" def __init__(self): super().__init__() @@ -333,13 +416,33 @@ if data: self._cmd.poutput(json.dumps(data, indent=4)) - def __init__(self, fid, sfid=None, name=None, desc=None, parent=None, size={1,None}): + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None, + size={1,None}): + """ + Args: + fid : File Identifier (4 hex digits) + sfid : Short File Identifier (2 hex digits, optional) + name : Brief name of the file, lik EF_ICCID + desc : Descriptoin of the file + parent : Parent CardFile object within filesystem hierarchy + size : tuple of (minimum_size, recommended_size) + """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent) self.size = size self.shell_commands = [self.ShellCommands()] - def decode_bin(self, raw_bin_data): - """Decode raw (binary) data into abstract representation. Overloaded by specific classes.""" + def decode_bin(self, raw_bin_data:bytearray) -> dict: + """Decode raw (binary) data into abstract representation. + + A derived class would typically provide a _decode_bin() or _decode_hex() method + for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_bin_data : binary encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_bin', None) if callable(method): return method(raw_bin_data) @@ -348,8 +451,18 @@ return method(b2h(raw_bin_data)) return {'raw': raw_bin_data.hex()} - def decode_hex(self, raw_hex_data): - """Decode raw (hex string) data into abstract representation. Overloaded by specific classes.""" + def decode_hex(self, raw_hex_data:str) -> dict: + """Decode raw (hex string) data into abstract representation. + + A derived class would typically provide a _decode_bin() or _decode_hex() method + for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_hex_data : hex-encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_hex', None) if callable(method): return method(raw_hex_data) @@ -359,8 +472,18 @@ return method(raw_bin_data) return {'raw': raw_bin_data.hex()} - def encode_bin(self, abstract_data): - """Encode abstract representation into raw (binary) data. Overloaded by specific classes.""" + def encode_bin(self, abstract_data:dict) -> bytearray: + """Encode abstract representation into raw (binary) data. + + A derived class would typically provide an _encode_bin() or _encode_hex() method + for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + binary encoded data + """ method = getattr(self, '_encode_bin', None) if callable(method): return method(abstract_data) @@ -369,8 +492,18 @@ return h2b(method(abstract_data)) raise NotImplementedError - def encode_hex(self, abstract_data): - """Encode abstract representation into raw (hex string) data. Overloaded by specific classes.""" + def encode_hex(self, abstract_data:dict) -> str: + """Encode abstract representation into raw (hex string) data. + + A derived class would typically provide an _encode_bin() or _encode_hex() method + for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + hex string encoded data + """ method = getattr(self, '_encode_hex', None) if callable(method): return method(abstract_data) @@ -382,10 +515,14 @@ class LinFixedEF(CardEF): - """Linear Fixed EF (Entry File) in the smart card filesystem""" + """Linear Fixed EF (Entry File) in the smart card filesystem. + + Linear Fixed EFs are record oriented files. They consist of a number of fixed-size + records. The records can be individually read/updated.""" @with_default_category('Linear Fixed EF Commands') class ShellCommands(CommandSet): + """Shell commands specific for Linear Fixed EFs.""" def __init__(self): super().__init__() @@ -432,13 +569,33 @@ if data: self._cmd.poutput(data) - def __init__(self, fid, sfid=None, name=None, desc=None, parent=None, rec_len={1,None}): + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, + parent:Optional[CardDF]=None, rec_len={1,None}): + """ + Args: + fid : File Identifier (4 hex digits) + sfid : Short File Identifier (2 hex digits, optional) + name : Brief name of the file, lik EF_ICCID + desc : Descriptoin of the file + parent : Parent CardFile object within filesystem hierarchy + rec_len : tuple of (minimum_length, recommended_length) + """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent) self.rec_len = rec_len self.shell_commands = [self.ShellCommands()] - def decode_record_hex(self, raw_hex_data): - """Decode raw (hex string) data into abstract representation. Overloaded by specific classes.""" + def decode_record_hex(self, raw_hex_data:str) -> dict: + """Decode raw (hex string) data into abstract representation. + + A derived class would typically provide a _decode_record_bin() or _decode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_hex_data : hex-encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_record_hex', None) if callable(method): return method(raw_hex_data) @@ -448,8 +605,18 @@ return method(raw_bin_data) return {'raw': raw_bin_data.hex()} - def decode_record_bin(self, raw_bin_data): - """Decode raw (binary) data into abstract representation. Overloaded by specific classes.""" + def decode_record_bin(self, raw_bin_data:bytearray) -> dict: + """Decode raw (binary) data into abstract representation. + + A derived class would typically provide a _decode_record_bin() or _decode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_bin_data : binary encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_record_bin', None) if callable(method): return method(raw_bin_data) @@ -459,47 +626,90 @@ return method(raw_hex_data) return {'raw': raw_hex_data} - def encode_record_hex(self, abstract_data): - """Encode abstract representation into raw (hex string) data. Overloaded by specific classes.""" + def encode_record_hex(self, abstract_data:dict) -> str: + """Encode abstract representation into raw (hex string) data. + + A derived class would typically provide an _encode_record_bin() or _encode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + hex string encoded data + """ method = getattr(self, '_encode_record_hex', None) if callable(method): return method(abstract_data) method = getattr(self, '_encode_record_bin', None) if callable(method): raw_bin_data = method(abstract_data) - return b2h(raww_bin_data) + return h2b(raw_bin_data) raise NotImplementedError - def encode_record_bin(self, abstract_data): - """Encode abstract representation into raw (binary) data. Overloaded by specific classes.""" + def encode_record_bin(self, abstract_data:dict) -> bytearray: + """Encode abstract representation into raw (binary) data. + + A derived class would typically provide an _encode_record_bin() or _encode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + binary encoded data + """ method = getattr(self, '_encode_record_bin', None) if callable(method): return method(abstract_data) method = getattr(self, '_encode_record_hex', None) if callable(method): - return b2h(method(abstract_data)) + return h2b(method(abstract_data)) raise NotImplementedError class CyclicEF(LinFixedEF): """Cyclic EF (Entry File) in the smart card filesystem""" # we don't really have any special support for those; just recycling LinFixedEF here - def __init__(self, fid, sfid=None, name=None, desc=None, parent=None, rec_len={1,None}): + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None, + rec_len={1,None}): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent, rec_len=rec_len) class TransRecEF(TransparentEF): """Transparent EF (Entry File) containing fixed-size records. + These are the real odd-balls and mostly look like mistakes in the specification: Specified as 'transparent' EF, but actually containing several fixed-length records inside. We add a special class for those, so the user only has to provide encoder/decoder functions for a record, while this class takes care of split / merge of records. """ - def __init__(self, fid, sfid=None, name=None, desc=None, parent=None, rec_len=None, size={1,None}): + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, + parent:Optional[CardDF]=None, rec_len:int=None, size={1,None}): + """ + Args: + fid : File Identifier (4 hex digits) + sfid : Short File Identifier (2 hex digits, optional) + name : Brief name of the file, lik EF_ICCID + desc : Descriptoin of the file + parent : Parent CardFile object within filesystem hierarchy + rec_len : Length of the fixed-length records within transparent EF + size : tuple of (minimum_size, recommended_size) + """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent, size=size) self.rec_len = rec_len - def decode_record_hex(self, raw_hex_data): - """Decode raw (hex string) data into abstract representation. Overloaded by specific classes.""" + def decode_record_hex(self, raw_hex_data:str) -> dict: + """Decode raw (hex string) data into abstract representation. + + A derived class would typically provide a _decode_record_bin() or _decode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_hex_data : hex-encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_record_hex', None) if callable(method): return method(raw_hex_data) @@ -509,8 +719,18 @@ return method(raw_bin_data) return {'raw': raw_hex_data} - def decode_record_bin(self, raw_bin_data): - """Decode raw (hex string) data into abstract representation. Overloaded by specific classes.""" + def decode_record_bin(self, raw_bin_data:bytearray) -> dict: + """Decode raw (binary) data into abstract representation. + + A derived class would typically provide a _decode_record_bin() or _decode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + raw_bin_data : binary encoded data + Returns: + abstract_data; dict representing the decoded data + """ method = getattr(self, '_decode_record_bin', None) if callable(method): return method(raw_bin_data) @@ -520,8 +740,18 @@ return method(raw_hex_data) return {'raw': raw_hex_data} - def encode_record_hex(self, abstract_data): - """Encode abstract representation into raw (hex string) data. Overloaded by specific classes.""" + def encode_record_hex(self, abstract_data:dict) -> str: + """Encode abstract representation into raw (hex string) data. + + A derived class would typically provide an _encode_record_bin() or _encode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + hex string encoded data + """ method = getattr(self, '_encode_record_hex', None) if callable(method): return method(abstract_data) @@ -530,8 +760,18 @@ return h2b(method(abstract_data)) raise NotImplementedError - def encode_record_bin(self, abstract_data): - """Encode abstract representation into raw (binary) data. Overloaded by specific classes.""" + def encode_record_bin(self, abstract_data:dict) -> bytearray: + """Encode abstract representation into raw (binary) data. + + A derived class would typically provide an _encode_record_bin() or _encode_record_hex() + method for implementing this specifically for the given file. This function checks which + of the method exists, add calls them (with conversion, as needed). + + Args: + abstract_data : dict representing the decoded data + Returns: + binary encoded data + """ method = getattr(self, '_encode_record_bin', None) if callable(method): return method(abstract_data) @@ -540,11 +780,11 @@ return h2b(method(abstract_data)) raise NotImplementedError - def _decode_bin(self, raw_bin_data): + def _decode_bin(self, raw_bin_data:bytearray): chunks = [raw_bin_data[i:i+self.rec_len] for i in range(0, len(raw_bin_data), self.rec_len)] return [self.decode_record_bin(x) for x in chunks] - def _encode_bin(self, abstract_data): + def _encode_bin(self, abstract_data) -> bytes: chunks = [self.encode_record_bin(x) for x in abstract_data] # FIXME: pad to file size return b''.join(chunks) @@ -555,7 +795,12 @@ class RuntimeState(object): """Represent the runtime state of a session with a card.""" - def __init__(self, card, profile): + def __init__(self, card, profile:'CardProfile'): + """ + Args: + card : pysim.cards.Card instance + profile : CardProfile instance + """ self.mf = CardMF() self.card = card self.selected_file = self.mf @@ -589,15 +834,22 @@ print("error: could not determine card applications") return apps_taken - def get_cwd(self): - """Obtain the current working directory.""" + def get_cwd(self) -> CardDF: + """Obtain the current working directory. + + Returns: + CardDF instance + """ if isinstance(self.selected_file, CardDF): return self.selected_file else: return self.selected_file.parent - def get_application(self): - """Obtain the currently selected application (if any).""" + def get_application(self) -> Optional[CardADF]: + """Obtain the currently selected application (if any). + + Returns: + CardADF() instance or None""" # iterate upwards from selected file; check if any is an ADF node = self.selected_file while node.parent != node: @@ -606,9 +858,16 @@ node = node.parent return None - def interpret_sw(self, sw): - """Interpret the given SW relative to the currently selected Application - or the underlying profile.""" + def interpret_sw(self, sw:str): + """Interpret a given status word relative to the currently selected application + or the underlying card profile. + + Args: + sw : Status word as string of 4 hexd digits + + Returns: + Tuple of two strings + """ app = self.get_application() if app: # The application either comes with its own interpret_sw @@ -622,11 +881,9 @@ else: return self.profile.interpret_sw(sw) - def probe_file(self, fid, cmd_app=None): - """ - blindly try to select a file and automatically add a matching file - object if the file actually exists - """ + def probe_file(self, fid:str, cmd_app=None): + """Blindly try to select a file and automatically add a matching file + object if the file actually exists.""" if not is_hex(fid, 4, 4): raise ValueError("Cannot select unknown file by name %s, only hexadecimal 4 digit FID is allowed" % fid) @@ -651,8 +908,13 @@ self.selected_file = f return select_resp - def select(self, name, cmd_app=None): - """Change current directory""" + def select(self, name:str, cmd_app=None): + """Select a file (EF, DF, ADF, MF, ...). + + Args: + name : Name of file to select + cmd_app : Command Application State (for unregistering old file commands) + """ sels = self.selected_file.get_selectables() if is_hex(name): name = name.lower() @@ -686,43 +948,98 @@ return select_resp - def read_binary(self, length=None, offset=0): + def read_binary(self, length:int=None, offset:int=0): + """Read [part of] a transparent EF binary data. + + Args: + length : Amount of data to read (None: as much as possible) + offset : Offset into the file from which to read 'length' bytes + Returns: + binary data read from the file + """ if not isinstance(self.selected_file, TransparentEF): raise TypeError("Only works with TransparentEF") return self.card._scc.read_binary(self.selected_file.fid, length, offset) - def read_binary_dec(self): + def read_binary_dec(self) -> dict: + """Read [part of] a transparent EF binary data and decode it. + + Args: + length : Amount of data to read (None: as much as possible) + offset : Offset into the file from which to read 'length' bytes + Returns: + abstract decode data read from the file + """ (data, sw) = self.read_binary() dec_data = self.selected_file.decode_hex(data) print("%s: %s -> %s" % (sw, data, dec_data)) return (dec_data, sw) - def update_binary(self, data_hex, offset=0): + def update_binary(self, data_hex:str, offset:int=0): + """Update transparent EF binary data. + + Args: + data_hex : hex string of data to be written + offset : Offset into the file from which to write 'data_hex' + """ if not isinstance(self.selected_file, TransparentEF): raise TypeError("Only works with TransparentEF") return self.card._scc.update_binary(self.selected_file.fid, data_hex, offset, conserve=self.conserve_write) - def update_binary_dec(self, data): + def update_binary_dec(self, data:dict): + """Update transparent EF from abstract data. Encodes the data to binary and + then updates the EF with it. + + Args: + data : abstract data which is to be encoded and written + """ data_hex = self.selected_file.encode_hex(data) print("%s -> %s" % (data, data_hex)) return self.update_binary(data_hex) - def read_record(self, rec_nr=0): + def read_record(self, rec_nr:int=0): + """Read a record as binary data. + + Args: + rec_nr : Record number to read + Returns: + hex string of binary data contained in record + """ if not isinstance(self.selected_file, LinFixedEF): raise TypeError("Only works with Linear Fixed EF") # returns a string of hex nibbles return self.card._scc.read_record(self.selected_file.fid, rec_nr) - def read_record_dec(self, rec_nr=0): + def read_record_dec(self, rec_nr:int=0) -> Tuple[dict, str]: + """Read a record and decode it to abstract data. + + Args: + rec_nr : Record number to read + Returns: + abstract data contained in record + """ (data, sw) = self.read_record(rec_nr) return (self.selected_file.decode_record_hex(data), sw) - def update_record(self, rec_nr, data_hex): + def update_record(self, rec_nr:int, data_hex:str): + """Update a record with given binary data + + Args: + rec_nr : Record number to read + data_hex : Hex string binary data to be written + """ if not isinstance(self.selected_file, LinFixedEF): raise TypeError("Only works with Linear Fixed EF") return self.card._scc.update_record(self.selected_file.fid, rec_nr, data_hex, conserve=self.conserve_write) - def update_record_dec(self, rec_nr, data): + def update_record_dec(self, rec_nr:int, data:dict): + """Update a record with given abstract data. Will encode abstract to binary data + and then write it to the given record on the card. + + Args: + rec_nr : Record number to read + data_hex : Abstract data to be written + """ hex_data = self.selected_file.encode_record_hex(data) return self.update_record(self, rec_nr, data_hex) @@ -735,9 +1052,15 @@ self.fcp = None -def interpret_sw(sw_data, sw): - """Interpret a given status word within the profile. Returns tuple of - two strings""" +def interpret_sw(sw_data:dict, sw:str): + """Interpret a given status word. + + Args: + sw_data : Hierarchical dict of status word matches + sw : status word to match (string of 4 hex digits) + Returns: + tuple of two strings (class_string, description) + """ for class_str, swdict in sw_data.items(): # first try direct match if sw in swdict: @@ -751,7 +1074,12 @@ class CardApplication(object): """A card application is represented by an ADF (with contained hierarchy) and optionally some SW definitions.""" - def __init__(self, name, adf=None, sw=None): + def __init__(self, name, adf:str=None, sw:dict=None): + """ + Args: + adf : ADF name + sw : Dict of status word conversions + """ self.name = name self.adf = adf self.sw = sw or dict() @@ -760,8 +1088,14 @@ return "APP(%s)" % (self.name) def interpret_sw(self, sw): - """Interpret a given status word within the application. Returns tuple of - two strings""" + """Interpret a given status word within the application. + + Args: + sw : Status word as string of 4 hexd digits + + Returns: + Tuple of two strings + """ return interpret_sw(self.sw, sw) class CardProfile(object): @@ -769,6 +1103,14 @@ applications as well as profile-specific SW and shell commands. Every card has one card profile, but there may be multiple applications within that profile.""" def __init__(self, name, **kw): + """ + Args: + desc (str) : Description + files_in_mf : List of CardEF instances present in MF + applications : List of CardApplications present on card + sw : List of status word definitions + shell_cmdsets : List of cmd2 shell command sets of profile-specific commands + """ self.name = name self.desc = kw.get("desc", None) self.files_in_mf = kw.get("files_in_mf", []) @@ -779,10 +1121,21 @@ def __str__(self): return self.name - def add_application(self, app): + def add_application(self, app:CardApplication): + """Add an application to a card profile. + + Args: + app : CardApplication instance to be added to profile + """ self.applications.append(app) - def interpret_sw(self, sw): - """Interpret a given status word within the profile. Returns tuple of - two strings""" + def interpret_sw(self, sw:str): + """Interpret a given status word within the profile. + + Args: + sw : Status word as string of 4 hexd digits + + Returns: + Tuple of two strings + """ return interpret_sw(self.sw, sw) diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index d720259..f946af8 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -24,48 +24,53 @@ # class LinkBase(object): + """Base class for link/transport to card.""" - def wait_for_card(self, timeout=None, newcardonly=False): - """wait_for_card(): Wait for a card and connect to it + def wait_for_card(self, timeout:int=None, newcardonly:bool=False): + """Wait for a card and connect to it - timeout : Maximum wait time (None=no timeout) - newcardonly : Should we wait for a new card, or an already - inserted one ? + Args: + timeout : Maximum wait time in seconds (None=no timeout) + newcardonly : Should we wait for a new card, or an already inserted one ? """ pass def connect(self): - """connect(): Connect to a card immediately + """Connect to a card immediately """ pass def disconnect(self): - """disconnect(): Disconnect from card + """Disconnect from card """ pass def reset_card(self): - """reset_card(): Resets the card (power down/up) + """Resets the card (power down/up) """ pass - def send_apdu_raw(self, pdu): - """send_apdu_raw(pdu): Sends an APDU with minimal processing + def send_apdu_raw(self, pdu:str): + """Sends an APDU with minimal processing - pdu : string of hexadecimal characters (ex. "A0A40000023F00") - return : tuple(data, sw), where - data : string (in hex) of returned data (ex. "074F4EFFFF") - sw : string (in hex) of status word (ex. "9000") + Args: + pdu : string of hexadecimal characters (ex. "A0A40000023F00") + Returns: + tuple(data, sw), where + data : string (in hex) of returned data (ex. "074F4EFFFF") + sw : string (in hex) of status word (ex. "9000") """ pass def send_apdu(self, pdu): - """send_apdu(pdu): Sends an APDU and auto fetch response data + """Sends an APDU and auto fetch response data - pdu : string of hexadecimal characters (ex. "A0A40000023F00") - return : tuple(data, sw), where - data : string (in hex) of returned data (ex. "074F4EFFFF") - sw : string (in hex) of status word (ex. "9000") + Args: + pdu : string of hexadecimal characters (ex. "A0A40000023F00") + Returns: + tuple(data, sw), where + data : string (in hex) of returned data (ex. "074F4EFFFF") + sw : string (in hex) of status word (ex. "9000") """ data, sw = self.send_apdu_raw(pdu) @@ -82,15 +87,16 @@ return data, sw def send_apdu_checksw(self, pdu, sw="9000"): - """send_apdu_checksw(pdu,sw): Sends an APDU and check returned SW + """Sends an APDU and check returned SW - pdu : string of hexadecimal characters (ex. "A0A40000023F00") - sw : string of 4 hexadecimal characters (ex. "9000"). The - user may mask out certain digits using a '?' to add some - ambiguity if needed. - return : tuple(data, sw), where - data : string (in hex) of returned data (ex. "074F4EFFFF") - sw : string (in hex) of status word (ex. "9000") + Args: + pdu : string of hexadecimal characters (ex. "A0A40000023F00") + sw : string of 4 hexadecimal characters (ex. "9000"). The user may mask out certain + digits using a '?' to add some ambiguity if needed. + Returns: + tuple(data, sw), where + data : string (in hex) of returned data (ex. "074F4EFFFF") + sw : string (in hex) of status word (ex. "9000") """ rv = self.send_apdu(pdu) diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py index 7f99d21..467d5ee 100644 --- a/pySim/transport/calypso.py +++ b/pySim/transport/calypso.py @@ -1,9 +1,5 @@ # -*- coding: utf-8 -*- -""" pySim: Transport Link for Calypso bases phones -""" - -# # Copyright (C) 2018 Vadim Yanitskiy # # This program is free software: you can redistribute it and/or modify @@ -73,8 +69,9 @@ self.data += pdu class CalypsoSimLink(LinkBase): + """Transport Link for Calypso based phones.""" - def __init__(self, sock_path = "/tmp/osmocom_l2"): + def __init__(self, sock_path:str = "/tmp/osmocom_l2"): # Make sure that a given socket path exists if not os.path.exists(sock_path): raise ReaderError("There is no such ('%s') UNIX socket" % sock_path) @@ -119,7 +116,6 @@ pass # Nothing to do really ... def send_apdu_raw(self, pdu): - """see LinkBase.send_apdu_raw""" # Request FULL reset req_msg = L1CTLMessageSIM(h2b(pdu)) diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py index 86d4443..fccd388 100644 --- a/pySim/transport/modem_atcmd.py +++ b/pySim/transport/modem_atcmd.py @@ -1,8 +1,5 @@ # -*- coding: utf-8 -*- -""" pySim: Transport Link for 3GPP TS 27.007 compliant modems -""" - # Copyright (C) 2020 Vadim Yanitskiy # # This program is free software: you can redistribute it and/or modify @@ -31,7 +28,8 @@ # log.root.setLevel(log.DEBUG) class ModemATCommandLink(LinkBase): - def __init__(self, device='/dev/ttyUSB0', baudrate=115200): + """Transport Link for 3GPP TS 27.007 compliant modems.""" + def __init__(self, device:str='/dev/ttyUSB0', baudrate:int=115200): self._sl = serial.Serial(device, baudrate, timeout=5) self._device = device self._atr = None diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index 2c2cbb9..f08f71a 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -1,9 +1,5 @@ # -*- coding: utf-8 -*- -""" pySim: PCSC reader transport link -""" - -# # Copyright (C) 2009-2010 Sylvain Munaut # Copyright (C) 2010 Harald Welte # @@ -32,8 +28,9 @@ class PcscSimLink(LinkBase): + """ pySim: PCSC reader transport link.""" - def __init__(self, reader_number=0): + def __init__(self, reader_number:int=0): r = readers() self._reader = r[reader_number] self._con = self._reader.createConnection() @@ -46,7 +43,7 @@ pass return - def wait_for_card(self, timeout=None, newcardonly=False): + def wait_for_card(self, timeout:int=None, newcardonly:bool=False): cr = CardRequest(readers=[self._reader], timeout=timeout, newcardonly=newcardonly) try: cr.waitforcard() @@ -75,7 +72,6 @@ return 1 def send_apdu_raw(self, pdu): - """see LinkBase.send_apdu_raw""" apdu = h2i(pdu) diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py index 03d3f38..6d39303 100644 --- a/pySim/transport/serial.py +++ b/pySim/transport/serial.py @@ -1,9 +1,5 @@ # -*- coding: utf-8 -*- -""" pySim: Transport Link for serial (RS232) based readers included with simcard -""" - -# # Copyright (C) 2009-2010 Sylvain Munaut # # This program is free software: you can redistribute it and/or modify @@ -30,8 +26,10 @@ class SerialSimLink(LinkBase): + """ pySim: Transport Link for serial (RS232) based readers included with simcard""" - def __init__(self, device='/dev/ttyUSB0', baudrate=9600, rst='-rts', debug=False): + def __init__(self, device:str='/dev/ttyUSB0', baudrate:int=9600, rst:str='-rts', + debug:bool=False): if not os.path.exists(device): raise ValueError("device file %s does not exist -- abort" % device) self._sl = serial.Serial( @@ -183,7 +181,6 @@ return self._sl.read() def send_apdu_raw(self, pdu): - """see LinkBase.send_apdu_raw""" pdu = h2b(pdu) data_len = ord(pdu[4]) # P3 diff --git a/pySim/utils.py b/pySim/utils.py index 0848b01..607526c 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -21,43 +21,65 @@ # -def h2b(s): +def h2b(s: str) -> bytearray: """convert from a string of hex nibbles to a sequence of bytes""" return bytearray.fromhex(s) -def b2h(b): +def b2h(b: bytearray) -> str: """convert from a sequence of bytes to a string of hex nibbles""" return ''.join(['%02x'%(x) for x in b]) -def h2i(s): +def h2i(s:str): + """convert from a string of hex nibbles to a list of integers""" return [(int(x,16)<<4)+int(y,16) for x,y in zip(s[0::2], s[1::2])] -def i2h(s): +def i2h(s) -> str: + """convert from a list of integers to a string of hex nibbles""" return ''.join(['%02x'%(x) for x in s]) -def h2s(s): +def h2s(s:str) -> str: + """convert from a string of hex nibbles to an ASCII string""" return ''.join([chr((int(x,16)<<4)+int(y,16)) for x,y in zip(s[0::2], s[1::2]) if int(x + y, 16) != 0xff]) -def s2h(s): +def s2h(s:str) -> str: + """convert from an ASCII string to a string of hex nibbles""" b = bytearray() b.extend(map(ord, s)) return b2h(b) # List of bytes to string -def i2s(s): +def i2s(s) -> str: + """convert from a list of integers to an ASCII string""" return ''.join([chr(x) for x in s]) -def swap_nibbles(s): +def swap_nibbles(s:str) -> str: + """swap the nibbles in a hex string""" return ''.join([x+y for x,y in zip(s[1::2], s[0::2])]) -def rpad(s, l, c='f'): +def rpad(s:str, l:int, c='f') -> str: + """pad string on the right side. + Args: + s : string to pad + l : total length to pad to + c : padding character + Returns: + String 's' padded with as many 'c' as needed to reach total length of 'l' + """ return s + c * (l - len(s)) -def lpad(s, l, c='f'): +def lpad(s:str, l:int, c='f') -> str: + """pad string on the left side. + Args: + s : string to pad + l : total length to pad to + c : padding character + Returns: + String 's' padded with as many 'c' as needed to reach total length of 'l' + """ return c * (l - len(s)) + s -def half_round_up(n): +def half_round_up(n:int) -> int: return (n + 1)//2 # IMSI encoded format: @@ -75,8 +97,8 @@ # Because of this, an odd length IMSI fits exactly into len(imsi) + 1 // 2 bytes, whereas an # even length IMSI only uses half of the last byte. -def enc_imsi(imsi): - """Converts a string imsi into the value of the EF""" +def enc_imsi(imsi:str): + """Converts a string IMSI into the encoded value of the EF""" l = half_round_up(len(imsi) + 1) # Required bytes - include space for odd/even indicator oe = len(imsi) & 1 # Odd (1) / Even (0) ei = '%02x' % l + swap_nibbles('%01x%s' % ((oe<<3)|1, rpad(imsi, 15))) @@ -781,7 +803,7 @@ return None -def sw_match(sw, pattern): +def sw_match(sw:str, pattern:str) -> str: """Match given SW against given pattern.""" # Create a masked version of the returned status word sw_lower = sw.lower() @@ -796,8 +818,18 @@ # Compare the masked version against the pattern return sw_masked == pattern -def tabulate_str_list(str_list, width = 79, hspace = 2, lspace = 1, align_left = True): - """Pretty print a list of strings into a tabulated form""" +def tabulate_str_list(str_list, width:int = 79, hspace:int = 2, lspace:int = 1, + align_left:bool = True): + """Pretty print a list of strings into a tabulated form. + + Args: + width : total width in characters per line + space : horizontal space between cells + lspace : number of spaces before row + align_lef : Align text to the left side + Returns: + multi-line string containing formatted table + """ if str_list == None: return "" if len(str_list) <= 0: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6ac88e0662cf3c56ae32d86d50b18a8b4150571a Gerrit-Change-Number: 23577 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-Reviewer: merlinchlosta 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 Fri Apr 2 20:15:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:15:45 +0000 Subject: Change in pysim[master]: Use sphinx for generating documentation In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23578 ) Change subject: Use sphinx for generating documentation ...................................................................... Use sphinx for generating documentation This adds sphinx based documentation generation. For now, this manily renders some introduction and the autodoc-genreated class/method reference from the source code for our libraries. Actual user-level documentation for pySim-{prog,shell,read} remains to be added separately Change-Id: I52603e93c2c129a9e79687da6c534fa56a40a649 --- A docs/Makefile A docs/conf.py A docs/index.rst A docs/legacy.rst A docs/library.rst A docs/make.bat A docs/shell.rst 7 files changed, 258 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..1fb06da --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,57 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +sys.path.insert(0, os.path.abspath('..')) + + +# -- Project information ----------------------------------------------------- + +project = 'pysim' +copyright = '2021, Sylvain Munaut, Harald Welte, Philipp Maier' +author = 'Sylvain Munaut, Harald Welte, Philipp Maier' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.autosectionlabel", + "sphinx.ext.napoleon" +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +autoclass_content = 'both' diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..c647880 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,50 @@ +.. pysim documentation master file + +Welcome to Osmocom pySim +======================== + +Introduction +------------ + +pySim is a python implementation of various software that helps you with +managing subscriber identity cards for cellular networks, so-called SIM +cards. + +Many Osmocom (Open Source Mobile Communications) projects relate to operating +private / custom cellular networks, and provisioning SIM cards for said networks +is in many cases a requirement to operate such networks. + +To make use of most of pySim's features, you will need a `programmable` SIM card, +i.e. a card where you are the owner/operator and have sufficient credentials (such +as the `ADM PIN`) in order to write to many if not most of the files on the card. + +Such cards are, for example, available from sysmocom, a major contributor to pySim. +See https://www.sysmocom.de/products/lab/sysmousim/ for more details. + +pySim supports classic GSM SIM cards as well as ETSI UICC with 3GPP USIM and ISIM +applications. It is easily extensible, so support for additional files, card +applications, etc. can be added easily by any python developer. We do encourage you +to submit your contributions to help this collaborative development project. + +pySim consists of several parts: + +* a python :ref:`library` containing plenty of objects and methods that can be used for + writing custom programs interfacing with SIM cards. +* the [new] :ref:`interactive pySim-shell command line program` +* the [legacy] :ref:`pySim-prog and pySim-read tools` + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + shell + legacy + library + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/legacy.rst b/docs/legacy.rst new file mode 100644 index 0000000..492be46 --- /dev/null +++ b/docs/legacy.rst @@ -0,0 +1,2 @@ +Legacy tools +============ diff --git a/docs/library.rst b/docs/library.rst new file mode 100644 index 0000000..ae027ff --- /dev/null +++ b/docs/library.rst @@ -0,0 +1,92 @@ +pySim library +============= + +pySim filesystem abstraction +---------------------------- + +.. automodule:: pySim.filesystem + :members: + +pySim commands abstraction +-------------------------- + +.. automodule:: pySim.commands + :members: + +pySim Transport +--------------- + +The pySim.transport classes implement specific ways how to +communicate with a SIM card. A "transport" provides ways +to transceive APDUs with the card. + +The most commonly used transport uses the PC/SC interface to +utilize a variety of smart card interfaces ("readers"). + +Transport base class +~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: pySim.transport + :members: + + +calypso / OsmocomBB transport +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This allows the use of the SIM slot of an an OsmocomBB compatible phone with the TI Calypso chipset, +using the L1CTL interface to talk to the layer1.bin firmware on the phone. + +.. automodule:: pySim.transport.calypso + :members: + + +AT-command Modem transport +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This transport uses AT commands of a cellular modem in order to get access to the SIM card inserted +in such a modem. + +.. automodule:: pySim.transport.modem_atcmd + :members: + + +PC/SC transport +~~~~~~~~~~~~~~~ + +PC/SC is the standard API for accessing smart card interfaces +on all major operating systems, including the MS Windows Family, +OS X as well as Linux / Unix OSs. + +.. automodule:: pySim.transport.pcsc + :members: + + +Serial/UART transport +~~~~~~~~~~~~~~~~~~~~~ + +This transport implements interfacing smart cards via +very simplistic UART readers. These readers basically +wire together the Rx+Tx pins of a RS232 UART, provide +a fixed crystal oscilator for clock, and operate the UART +at 9600 bps. These readers are sometimes called `Phoenix`. + +.. automodule:: pySim.transport.serial + :members: + +pySim utility functions +----------------------- + +.. automodule:: pySim.utils + :members: + +pySim exceptions +---------------- + +.. automodule:: pySim.exceptions + :members: + +pySim card_handler +------------------ + +.. automodule:: pySim.card_handler + :members: diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..2119f51 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ + at ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/shell.rst b/docs/shell.rst new file mode 100644 index 0000000..f9a2c82 --- /dev/null +++ b/docs/shell.rst @@ -0,0 +1,2 @@ +pySim-shell +=========== -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I52603e93c2c129a9e79687da6c534fa56a40a649 Gerrit-Change-Number: 23578 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria 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 Fri Apr 2 20:15:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:15:45 +0000 Subject: Change in pysim[master]: filesystem: Avoid GPL header showing up in sphinx autodoc In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23579 ) Change subject: filesystem: Avoid GPL header showing up in sphinx autodoc ...................................................................... filesystem: Avoid GPL header showing up in sphinx autodoc Change-Id: I1d963ae3d1511ef40d1ebcb36b0f67c40cbd6309 --- M pySim/filesystem.py 1 file changed, 15 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/filesystem.py b/pySim/filesystem.py index d1a7b51..3d032a9 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -7,23 +7,23 @@ The classes are intended to represent the *specification* of the filesystem, not the actual contents / runtime state of interacting with a given smart card. - -(C) 2021 by Harald Welte - -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 . """ +# (C) 2021 by Harald Welte +# +# 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 . + import code import json -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1d963ae3d1511ef40d1ebcb36b0f67c40cbd6309 Gerrit-Change-Number: 23579 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria 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 Fri Apr 2 20:15:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:15:46 +0000 Subject: Change in pysim[master]: filesystem: fix various issues found by mypy In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23581 ) Change subject: filesystem: fix various issues found by mypy ...................................................................... filesystem: fix various issues found by mypy Change-Id: Ib4de80451614712bdf5377a3a5b86156008e2c42 --- M pySim/filesystem.py M pySim/utils.py 2 files changed, 30 insertions(+), 26 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 3d032a9..be0aaf6 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -31,7 +31,7 @@ from cmd2 import CommandSet, with_default_category, with_argparser import argparse -from typing import Optional, Iterable, List, Any, Tuple +from typing import cast, Optional, Iterable, List, Any, Dict, Tuple from pySim.utils import sw_match, h2b, b2h, is_hex from pySim.exceptions import * @@ -82,17 +82,19 @@ else: return self.fid - def fully_qualified_path(self, prefer_name:bool=True): + def fully_qualified_path(self, prefer_name:bool=True) -> List[str]: """Return fully qualified path to file as list of FID or name strings. Args: prefer_name : Preferably build path of names; fall-back to FIDs as required """ - if self.parent != self: + if self.parent and self.parent != self: ret = self.parent.fully_qualified_path(prefer_name) else: ret = [] - ret.append(self._path_element(prefer_name)) + elem = self._path_element(prefer_name) + if elem: + ret.append(elem) return ret def get_mf(self) -> Optional['CardMF']: @@ -101,11 +103,11 @@ return None # iterate towards the top. MF has parent == self node = self - while node.parent != node: + while node.parent and node.parent != node: node = node.parent - return node + return cast(CardMF, node) - def _get_self_selectables(self, alias:str=None, flags = []) -> dict: + def _get_self_selectables(self, alias:str=None, flags = []) -> Dict[str, 'CardFile']: """Return a dict of {'identifier': self} tuples. Args: @@ -124,7 +126,7 @@ sels.update({self.name: self}) return sels - def get_selectables(self, flags = []) -> dict: + def get_selectables(self, flags = []) -> Dict[str, 'CardFile']: """Return a dict of {'identifier': File} that is selectable from the current file. Args: @@ -140,7 +142,8 @@ sels = self._get_self_selectables('.', flags) # we can always select our parent if flags == [] or 'PARENT' in flags: - sels = self.parent._get_self_selectables('..', flags) + if self.parent: + sels = self.parent._get_self_selectables('..', flags) # if we have a MF, we can always select its applications if flags == [] or 'MF' in flags: mf = self.get_mf() @@ -149,22 +152,22 @@ sels.update(mf.get_app_selectables(flags = flags)) return sels - def get_selectable_names(self, flags = []) -> dict: + def get_selectable_names(self, flags = []) -> List[str]: """Return a dict of {'identifier': File} that is selectable from the current file. Args: flags : Specify which selectables to return 'FIDS' and/or 'NAMES'; If not specified, all selectables will be returned. Returns: - dict containing all selectable items. Key is identifier (string), value - a reference to a CardFile (or derived class) instance. + list containing all selectable names. """ sels = self.get_selectables(flags) - return sels.keys() + return list(sels.keys()) def decode_select_response(self, data_hex:str): """Decode the response to a SELECT command.""" - return self.parent.decode_select_response(data_hex) + if self.parent: + return self.parent.decode_select_response(data_hex) class CardDF(CardFile): @@ -241,7 +244,7 @@ sels.update({x.name: x for x in self.children.values() if x.name}) return sels - def lookup_file_by_name(self, name:str) -> Optional[CardFile]: + def lookup_file_by_name(self, name:Optional[str]) -> Optional[CardFile]: """Find a file with given name within current DF.""" if name == None: return None @@ -250,12 +253,12 @@ return i return None - def lookup_file_by_sfid(self, sfid:str) -> Optional[CardFile]: + def lookup_file_by_sfid(self, sfid:Optional[str]) -> Optional[CardFile]: """Find a file with given short file ID within current DF.""" if sfid == None: return None for i in self.children.values(): - if i.sfid == int(sfid): + if i.sfid == int(str(sfid)): return i return None @@ -332,8 +335,9 @@ def __init__(self, aid:str, **kwargs): super().__init__(**kwargs) self.aid = aid # Application Identifier - if self.parent: - self.parent.add_application(self) + mf = self.get_mf() + if mf: + mf.add_application(self) def __str__(self): return "ADF(%s)" % (self.aid) @@ -644,7 +648,7 @@ method = getattr(self, '_encode_record_bin', None) if callable(method): raw_bin_data = method(abstract_data) - return h2b(raw_bin_data) + return b2h(raw_bin_data) raise NotImplementedError def encode_record_bin(self, abstract_data:dict) -> bytearray: @@ -683,8 +687,8 @@ We add a special class for those, so the user only has to provide encoder/decoder functions for a record, while this class takes care of split / merge of records. """ - def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, - parent:Optional[CardDF]=None, rec_len:int=None, size={1,None}): + def __init__(self, fid:str, rec_len:int, sfid:str=None, name:str=None, desc:str=None, + parent:Optional[CardDF]=None, size={1,None}): """ Args: fid : File Identifier (4 hex digits) @@ -757,7 +761,7 @@ return method(abstract_data) method = getattr(self, '_encode_record_bin', None) if callable(method): - return h2b(method(abstract_data)) + return b2h(method(abstract_data)) raise NotImplementedError def encode_record_bin(self, abstract_data:dict) -> bytearray: @@ -1040,8 +1044,8 @@ rec_nr : Record number to read data_hex : Abstract data to be written """ - hex_data = self.selected_file.encode_record_hex(data) - return self.update_record(self, rec_nr, data_hex) + data_hex = self.selected_file.encode_record_hex(data) + return self.update_record(rec_nr, data_hex) diff --git a/pySim/utils.py b/pySim/utils.py index 607526c..75106d8 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -803,7 +803,7 @@ return None -def sw_match(sw:str, pattern:str) -> str: +def sw_match(sw:str, pattern:str) -> bool: """Match given SW against given pattern.""" # Create a masked version of the returned status word sw_lower = sw.lower() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib4de80451614712bdf5377a3a5b86156008e2c42 Gerrit-Change-Number: 23581 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 Apr 2 20:15:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 20:15:46 +0000 Subject: Change in pysim[master]: Fix various mistakes around the CardADF <-> CardApplication dualism In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23582 ) Change subject: Fix various mistakes around the CardADF <-> CardApplication dualism ...................................................................... Fix various mistakes around the CardADF <-> CardApplication dualism When the CardFile hierarchy talks about 'application' it means CardADF. When the RuntimeState and CardProfile talk about 'application' they mean a CardApplication. Let's clarify this in the file names, and make CardADF have an optional reference to the CardApplication, so that application specific status word interpretation really works. Change-Id: Ibc80a41d79dca547f14d5d84f447742e6b46d7ca --- M pySim-shell.py M pySim/filesystem.py 2 files changed, 26 insertions(+), 17 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim-shell.py b/pySim-shell.py index 3c56f51..c170398 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -45,8 +45,8 @@ from pySim.filesystem import CardMF, RuntimeState, CardDF, CardADF from pySim.ts_51_011 import CardProfileSIM, DF_TELECOM, DF_GSM from pySim.ts_102_221 import CardProfileUICC -from pySim.ts_31_102 import ADF_USIM -from pySim.ts_31_103 import ADF_ISIM +from pySim.ts_31_102 import CardApplicationUSIM +from pySim.ts_31_103 import CardApplicationISIM from pySim.card_data import CardDataCsv, card_data_register, card_data_get_field @@ -441,8 +441,8 @@ sys.exit(2) profile = CardProfileUICC() - profile.add_application(ADF_USIM()) - profile.add_application(ADF_ISIM()) + profile.add_application(CardApplicationUSIM) + profile.add_application(CardApplicationISIM) rs = RuntimeState(card, profile) diff --git a/pySim/filesystem.py b/pySim/filesystem.py index be0aaf6..9a68d5a 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -284,8 +284,8 @@ def __str__(self): return "MF(%s)" % (self.fid) - def add_application(self, app:'CardADF'): - """Add an ADF (Application Dedicated File) to the MF""" + def add_application_df(self, app:'CardADF'): + """Add an Application to the MF""" if not isinstance(app, CardADF): raise TypeError("Expected an ADF instance") if app.aid in self.applications: @@ -334,10 +334,12 @@ """ADF (Application Dedicated File) in the smart card filesystem""" def __init__(self, aid:str, **kwargs): super().__init__(**kwargs) + # reference to CardApplication may be set from CardApplication constructor + self.application:Optional[CardApplication] = None self.aid = aid # Application Identifier mf = self.get_mf() if mf: - mf.add_application(self) + mf.add_application_df(self) def __str__(self): return "ADF(%s)" % (self.aid) @@ -807,12 +809,13 @@ """ self.mf = CardMF() self.card = card - self.selected_file = self.mf + self.selected_file:CardDF = self.mf self.profile = profile - # add applications + MF-files from profile + # add application ADFs + MF-files from profile apps = self._match_applications() for a in apps: - self.mf.add_application(a) + if a.adf: + self.mf.add_application_df(a.adf) for f in self.profile.files_in_mf: self.mf.add_file(f) self.conserve_write = True @@ -849,8 +852,8 @@ else: return self.selected_file.parent - def get_application(self) -> Optional[CardADF]: - """Obtain the currently selected application (if any). + def get_application_df(self) -> Optional[CardADF]: + """Obtain the currently selected application DF (if any). Returns: CardADF() instance or None""" @@ -872,16 +875,16 @@ Returns: Tuple of two strings """ - app = self.get_application() - if app: + adf = self.get_application_df() + if adf: + app = adf.application # The application either comes with its own interpret_sw # method or we will use the interpret_sw method from the # card profile. - if hasattr(app, "interpret_sw"): + if app and hasattr(app, "interpret_sw"): return app.interpret_sw(sw) else: return self.profile.interpret_sw(sw) - return app.interpret_sw(sw) else: return self.profile.interpret_sw(sw) @@ -1078,7 +1081,7 @@ class CardApplication(object): """A card application is represented by an ADF (with contained hierarchy) and optionally some SW definitions.""" - def __init__(self, name, adf:str=None, sw:dict=None): + def __init__(self, name, adf:Optional[CardADF]=None, aid:str=None, sw:dict=None): """ Args: adf : ADF name @@ -1087,6 +1090,12 @@ self.name = name self.adf = adf self.sw = sw or dict() + # back-reference from ADF to Applicaiton + if self.adf: + self.aid = aid or self.adf.aid + self.adf.application = self + else: + self.aid = aid def __str__(self): return "APP(%s)" % (self.name) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibc80a41d79dca547f14d5d84f447742e6b46d7ca Gerrit-Change-Number: 23582 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 Apr 2 21:07:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 21:07:51 +0000 Subject: Change in pysim[master]: pySim-shell: Remove UsimCommands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23583 ) Change subject: pySim-shell: Remove UsimCommands ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6b84ce205f46a1efd19087d332920982f17ca9cc Gerrit-Change-Number: 23583 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 21:07: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 Fri Apr 2 21:08:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 21:08:08 +0000 Subject: Change in pysim[master]: fix various file definitions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23584 ) Change subject: fix various file definitions ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23584 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I365ece7b82a1c79b3af87a79ff964d7989362789 Gerrit-Change-Number: 23584 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 21:08: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 Apr 2 21:08:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 21:08:18 +0000 Subject: Change in pysim[master]: 51.011: Define some more files within DF_TELECOM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23585 ) Change subject: 51.011: Define some more files within DF_TELECOM ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I155729b4d62969cde2af00fc9fb9901299fe5c25 Gerrit-Change-Number: 23585 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 21:08: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 Apr 2 21:08:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 21:08:30 +0000 Subject: Change in pysim[master]: filesystem: Fix interpret_sw() fall-through 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/+/23586 to look at the new patch set (#2). Change subject: filesystem: Fix interpret_sw() fall-through ...................................................................... filesystem: Fix interpret_sw() fall-through if an application-specific interpret_sw() fails, fall back to the profile interpret_sw(). Change-Id: I326c6002c75e2f906848784b7831ea169134dbe4 --- M pySim/filesystem.py 1 file changed, 3 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/86/23586/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I326c6002c75e2f906848784b7831ea169134dbe4 Gerrit-Change-Number: 23586 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 Fri Apr 2 21:08:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 21:08:35 +0000 Subject: Change in pysim[master]: filesystem: Fix interpret_sw() fall-through In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23586 ) Change subject: filesystem: Fix interpret_sw() fall-through ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I326c6002c75e2f906848784b7831ea169134dbe4 Gerrit-Change-Number: 23586 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 02 Apr 2021 21:08: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 Apr 2 21:08:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 21:08:37 +0000 Subject: Change in pysim[master]: pySim-shell: Remove UsimCommands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23583 ) Change subject: pySim-shell: Remove UsimCommands ...................................................................... pySim-shell: Remove UsimCommands Those are a leftover of a very early attempt at pySim-shell, it has long been superseded by all of the filesystem.py infrastructure. Change-Id: I6b84ce205f46a1efd19087d332920982f17ca9cc --- M pySim-shell.py 1 file changed, 1 insertion(+), 19 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index c170398..931b5ea 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -54,7 +54,7 @@ class PysimApp(cmd2.Cmd): CUSTOM_CATEGORY = 'pySim Commands' def __init__(self, card, rs, script = None): - basic_commands = [Iso7816Commands(), UsimCommands()] + basic_commands = [Iso7816Commands()] super().__init__(persistent_history_file='~/.pysim_shell_history', allow_cli_args=False, use_ipython=True, auto_load_commands=False, command_sets=basic_commands, startup_script=script) self.intro = style('Welcome to pySim-shell!', fg=fg.red) @@ -346,24 +346,6 @@ raise RuntimeError("unable to export %i file(s)" % context['ERR']) - at with_default_category('USIM Commands') -class UsimCommands(CommandSet): - def __init__(self): - super().__init__() - - def do_read_ust(self, _): - """Read + Display the EF.UST""" - self._cmd.card.select_adf_by_aid(adf="usim") - (res, sw) = self._cmd.card.read_ust() - self._cmd.poutput(res[0]) - self._cmd.poutput(res[1]) - - def do_read_ehplmn(self, _): - """Read EF.EHPLMN""" - self._cmd.card.select_adf_by_aid(adf="usim") - (res, sw) = self._cmd.card.read_ehplmn() - self._cmd.poutput(res) - def parse_options(): parser = OptionParser(usage="usage: %prog [options]") -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6b84ce205f46a1efd19087d332920982f17ca9cc Gerrit-Change-Number: 23583 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 Apr 2 21:08:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 21:08:37 +0000 Subject: Change in pysim[master]: fix various file definitions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23584 ) Change subject: fix various file definitions ...................................................................... fix various file definitions As we can notice during 'export': Some files had been defined as LinFixed but are Transparent - and vice versa. Let's fix those an bring our definitions in sync with the specs. Change-Id: I365ece7b82a1c79b3af87a79ff964d7989362789 --- M pySim/ts_31_102.py M pySim/ts_31_103.py M pySim/ts_51_011.py 3 files changed, 15 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index cefc9d4..267008d 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -270,7 +270,7 @@ from pySim.filesystem import * from pySim.ts_51_011 import EF_IMSI, EF_xPLMNwAcT, EF_SPN, EF_CBMI, EF_ACC, EF_PLMNsel, EF_AD -from pySim.ts_51_011 import EF_CBMID, EF_ECC, EF_CBMIR +from pySim.ts_51_011 import EF_CBMID, EF_CBMIR import pySim.ts_102_221 @@ -460,6 +460,12 @@ """Deactivate a service within EF.UST""" self._cmd.card.update_ust(int(arg), 0) +# TS 31.103 Section 4.2.7 - *not* the same as DF.GSM/EF.ECC! +class EF_ECC(LinFixedEF): + def __init__(self, fid='6fb7', sfid=0x01, name='EF.ECC', + desc='Emergency Call Codes'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={4,20}) + class DF_USIM_5GS(CardDF): def __init__(self, fid='5FC0', name='DF.5GS', desc='5GS related files'): super().__init__(fid=fid, name=name, desc=desc) @@ -472,7 +478,7 @@ TransparentEF('4F05', None, 'EF.5GAUTHKEYS', '5G authentication keys', size={68, None}), TransparentEF('4F06', None, 'EF.UAC_AIC', 'UAC Access Identities Configuration', size={4, 4}), EF_SUCI_Calc_Info(), #TransparentEF('4F07', None, 'EF.SUCI_Calc_Info', 'SUCI Calculation Information', size={2, None}), - TransparentEF('4F08', None, 'EF.OPL5G', '5GS Operator PLMN List', size={10, None}), + LinFixedEF('4F08', None, 'EF.OPL5G', '5GS Operator PLMN List', rec_len={10, None}), # TransparentEF('4F09', None, 'EF.NSI', 'Network Specific Identifier'), # FFS TransparentEF('4F0A', None, 'EF.Routing_Indicator', 'Routing Indicator', size={4,4}), ] @@ -505,7 +511,7 @@ TransparentEF('6f7e', 0x0b, 'EF.LOCI', 'Locationn information', size={11,11}), EF_AD(sfid=0x03), EF_CBMID(sfid=0x0e), - EF_ECC(sfid=0x01), + EF_ECC(), EF_CBMIR(), DF_USIM_5GS(), ] diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index 0b0a4f1..8209845 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -124,7 +124,7 @@ return enc_addr_tlv(json_in) # TS 31.103 Section 4.2.9 -class EF_GBABP(LinFixedEF): +class EF_GBABP(TransparentEF): def __init__(self, fid='6fd5', sfid=None, name='EF.GBABP', desc='GBA Bootstrappng'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index e4a26a3..1455d8f 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -484,10 +484,11 @@ desc='Cell Broadcast Message Identifier for Data Download'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) -# TS 51.011 Section 10.3.26 -class EF_ECC(LinFixedEF): - def __init__(self, fid='6fb7', sfid=None, name='EF.ECC', desc='Emergency Call Codes'): - super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={4, 20}) +# TS 51.011 Section 10.3.27 +class EF_ECC(TransRecEF): + def __init__(self, fid='6fb7', sfid=None, name='EF.ECC', size={3,15}, rec_len=3, + desc='Emergency Call Codes'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) # TS 51.011 Section 10.3.28 class EF_CBMIR(TransRecEF): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23584 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I365ece7b82a1c79b3af87a79ff964d7989362789 Gerrit-Change-Number: 23584 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 Apr 2 21:08:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 21:08:38 +0000 Subject: Change in pysim[master]: 51.011: Define some more files within DF_TELECOM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23585 ) Change subject: 51.011: Define some more files within DF_TELECOM ...................................................................... 51.011: Define some more files within DF_TELECOM Add some more minimal definitions for various DF_TELECOM files Change-Id: I155729b4d62969cde2af00fc9fb9901299fe5c25 --- M pySim/ts_51_011.py 1 file changed, 39 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 1455d8f..a671f31 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -352,8 +352,38 @@ 'dialing_nr': u[2], 'cap_conf_id': u[3], 'ext1_record_id': u[4]} # TS 51.011 Section 10.5.5 +class EF_SMS(LinFixedEF): + def __init__(self, fid='6f3c', sfid=None, name='EF.SMS', desc='Short messages'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={176,176}) + def _decode_record_bin(self, raw_bin_data): + def decode_status(status): + if status & 0x01 == 0x00: + return (None, 'free_space') + elif status & 0x07 == 0x01: + return ('mt', 'message_read') + elif status & 0x07 == 0x03: + return ('mt', 'message_to_be_read') + elif status & 0x07 == 0x07: + return ('mo', 'message_to_be_sent') + elif status & 0x1f == 0x05: + return ('mo', 'sent_status_not_requested') + elif status & 0x1f == 0x0d: + return ('mo', 'sent_status_req_but_not_received') + elif status & 0x1f == 0x15: + return ('mo', 'sent_status_req_rx_not_stored_smsr') + elif status & 0x1f == 0x1d: + return ('mo', 'sent_status_req_rx_stored_smsr') + else: + return (None, 'rfu') + + status = decode_status(raw_bin_data[0]) + remainder = raw_bin_data[1:] + return {'direction': status[0], 'status': status[1], 'remainder': b2h(remainder)} + + +# TS 51.011 Section 10.5.5 class EF_MSISDN(LinFixedEF): - def __init__(self, fid='6f4f', sfid=None, name='EF.MSISDN', desc='MSISDN'): + def __init__(self, fid='6f40', sfid=None, name='EF.MSISDN', desc='MSISDN'): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={15, None}) def _decode_record_hex(self, raw_hex_data): return {'msisdn': dec_msisdn(raw_hex_data)} @@ -370,10 +400,16 @@ super().__init__(fid=fid, name=name, desc=desc) files = [ EF_ADN(), - # FDN, SMS, CCP, ECCP + EF_ADN(fid='6f3b', name='EF_FDN', desc='Fixed dialling numbers'), + EF_SMS(), + LinFixedEF(fid='6f3d', name='EF.CCP', desc='Capability Configuration Parameters', rec_len={14,14}), + LinFixedEF(fid='6f4f', name='EF.ECCP', desc='Extended Capability Configuration Parameters', rec_len={15,32}), EF_MSISDN(), EF_SMSP(), - # SMSS, LND, SDN, EXT1, EXT2, EXT3, BDN, EXT4, SMSR, CMI + TransparentEF(fid='6f43', name='EF.SMSS', desc='SMS status', size={2,8}), + # LND, SDN, EXT1, EXT2, EXT3, BDN, EXT4 + LinFixedEF(fid='6f47', name='EF.SMSR', desc='SMS status reports', rec_len={30,30}), + # CMI ] self.add_files(files) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I155729b4d62969cde2af00fc9fb9901299fe5c25 Gerrit-Change-Number: 23585 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 Apr 2 21:08:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 2 Apr 2021 21:08:38 +0000 Subject: Change in pysim[master]: filesystem: Fix interpret_sw() fall-through In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23586 ) Change subject: filesystem: Fix interpret_sw() fall-through ...................................................................... filesystem: Fix interpret_sw() fall-through if an application-specific interpret_sw() fails, fall back to the profile interpret_sw(). Change-Id: I326c6002c75e2f906848784b7831ea169134dbe4 --- M pySim/filesystem.py 1 file changed, 3 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 9a68d5a..55a7130 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -875,6 +875,7 @@ Returns: Tuple of two strings """ + res = None adf = self.get_application_df() if adf: app = adf.application @@ -882,11 +883,8 @@ # method or we will use the interpret_sw method from the # card profile. if app and hasattr(app, "interpret_sw"): - return app.interpret_sw(sw) - else: - return self.profile.interpret_sw(sw) - else: - return self.profile.interpret_sw(sw) + res = app.interpret_sw(sw) + return res or self.profile.interpret_sw(sw) def probe_file(self, fid:str, cmd_app=None): """Blindly try to select a file and automatically add a matching file -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I326c6002c75e2f906848784b7831ea169134dbe4 Gerrit-Change-Number: 23586 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 Apr 2 21:21:31 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 2 Apr 2021 21:21:31 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... add osmo_bts_features_names: short BTS feature strings This will be used by osmo-bts-omldummy to parse features strings from the cmdline. Change-Id: I699cd27512887d64d824be680303e70fff3677c1 --- M include/osmocom/gsm/bts_features.h M src/gsm/bts_features.c M src/gsm/libosmogsm.map 3 files changed, 33 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/23587/1 diff --git a/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h index ac2c760..bbdf00c 100644 --- a/include/osmocom/gsm/bts_features.h +++ b/include/osmocom/gsm/bts_features.h @@ -36,6 +36,11 @@ const char *osmo_bts_feature_name(enum osmo_bts_features feature); +extern const struct value_string osmo_bts_features_names[]; + +static inline const char *osmo_bts_features_name(enum osmo_bts_features val) +{ return get_value_string(osmo_bts_features_names, val); } + static inline int osmo_bts_set_feature(struct bitvec *features, enum osmo_bts_features feature) { OSMO_ASSERT(_NUM_BTS_FEAT < MAX_BTS_FEATURES); diff --git a/src/gsm/bts_features.c b/src/gsm/bts_features.c index c3f3667..fb3193f 100644 --- a/src/gsm/bts_features.c +++ b/src/gsm/bts_features.c @@ -47,8 +47,33 @@ { 0, NULL } }; -/*! return string representation of a BTS feature */ +/*! return description string of a BTS feature (osmo_bts_features_descs). + * To get the plain feature name, use osmo_bts_features_name() instead. */ const char *osmo_bts_feature_name(enum osmo_bts_features feature) { return get_value_string(osmo_bts_features_descs, feature); } + +const struct value_string osmo_bts_features_names[] = { + { BTS_FEAT_HSCSD, "HSCSD" }, + { BTS_FEAT_GPRS, "GPRS" }, + { BTS_FEAT_EGPRS, "EGPRS" }, + { BTS_FEAT_ECSD, "ECSD" }, + { BTS_FEAT_HOPPING, "HOPPING" }, + { BTS_FEAT_MULTI_TSC, "MULTI_TSC" }, + { BTS_FEAT_OML_ALERTS, "OML_ALERTS" }, + { BTS_FEAT_AGCH_PCH_PROP, "AGCH_PCH_PROP" }, + { BTS_FEAT_CBCH, "CBCH" }, + { BTS_FEAT_SPEECH_F_V1, "SPEECH_F_V1" }, + { BTS_FEAT_SPEECH_H_V1, "SPEECH_H_V1" }, + { BTS_FEAT_SPEECH_F_EFR, "SPEECH_F_EFR" }, + { BTS_FEAT_SPEECH_F_AMR, "SPEECH_F_AMR" }, + { BTS_FEAT_SPEECH_H_AMR, "SPEECH_H_AMR" }, + { BTS_FEAT_ETWS_PN, "ETWS_PN" }, + { BTS_FEAT_PAGING_COORDINATION, "PAGING_COORDINATION" }, + { BTS_FEAT_IPV6_NSVC, "IPV6_NSVC" }, + { BTS_FEAT_ACCH_REP, "ACCH_REP" }, + { BTS_FEAT_CCN, "CCN" }, + { BTS_FEAT_VAMOS, "VAMOS" }, + {} +}; diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 0ea0678..b5f587b 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -396,6 +396,8 @@ gsm48_decode_lai2; osmo_bts_features_descs; osmo_bts_feature_name; +osmo_bts_features_names; +osmo_bts_features_name; osmo_plmn_to_bcd; osmo_plmn_from_bcd; osmo_mcc_name; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 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 Apr 2 21:24:10 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 2 Apr 2021 21:24:10 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... add osmo_bts_features_names: short BTS feature strings This will be used by osmo-bts-omldummy to parse features strings from the cmdline. Note that osmo_bts_feature_name() already exists to return the longer descriptive value_strings from osmo_bts_features_descs (_descs!). Luckily that misses the plural 'features' in the name, so that I can still add a properly named osmo_bts_features_name() function that only returns the name, matching the common pattern used in osmocom code. Change-Id: I699cd27512887d64d824be680303e70fff3677c1 --- M include/osmocom/gsm/bts_features.h M src/gsm/bts_features.c M src/gsm/libosmogsm.map 3 files changed, 33 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/23587/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 21:25:20 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 2 Apr 2021 21:25:20 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... add osmo_bts_features_names: short BTS feature strings This will be used by osmo-bts-omldummy to parse features strings from the cmdline. Note that osmo_bts_feature_name() already exists to return the longer descriptive value_strings from osmo_bts_features_descs (_descs!). Luckily that misses the plural 'features' in the name, so that I can still add a properly named osmo_bts_features_name() function that only returns the name, matching the common pattern used in osmocom code. Related: SYS#4895 Change-Id: I699cd27512887d64d824be680303e70fff3677c1 --- M include/osmocom/gsm/bts_features.h M src/gsm/bts_features.c M src/gsm/libosmogsm.map 3 files changed, 33 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/23587/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 21:38:32 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 2 Apr 2021 21:38:32 +0000 Subject: Change in osmo-bts[master]: omldummy: introduce using getopt_long References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23588 ) Change subject: omldummy: introduce using getopt_long ...................................................................... omldummy: introduce using getopt_long Prepare for adding the --features cmdline arg following in a subsequent patch. Related: SYS#4895 Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc --- M src/osmo-bts-omldummy/main.c 1 file changed, 68 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/88/23588/1 diff --git a/src/osmo-bts-omldummy/main.c b/src/osmo-bts-omldummy/main.c index 22d8758..fe28b05 100644 --- a/src/osmo-bts-omldummy/main.c +++ b/src/osmo-bts-omldummy/main.c @@ -1,3 +1,9 @@ +#include +#include +#include + +#define _GNU_SOURCE +#include #include #include @@ -6,6 +12,64 @@ #include #include +static void print_usage(const char *prog_name) +{ + printf("Usage: %s [-h] dst_host site_id [trx_num]\n", prog_name); +} + +static void print_help(const char *prog_name) +{ + print_usage(prog_name); + printf(" -h --help This text.\n"); +} + +struct { + char *dst_host; + int site_id; + int trx_num; +} cmdline = { + .trx_num = 8, +}; + +void parse_cmdline(int argc, char **argv) +{ + while (1) { + int option_index = 0, c; + static struct option long_options[] = { + {"help", 0, 0, 'h'}, + {0} + }; + + c = getopt_long(argc, argv, "hd", long_options, &option_index); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(argv[0]); + exit(0); + default: + /* catch unknown options *as well as* missing arguments. */ + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } + + if (optind + 2 > argc) { + print_usage(argv[0]); + exit(1); + } + + cmdline.dst_host = argv[optind]; + cmdline.site_id = atoi(argv[optind + 1]); + if (optind + 2 < argc) + cmdline.trx_num = atoi(argv[optind + 2]); + + if (optind + 3 < argc) { + print_usage(argv[0]); + exit(1); + } +} int main(int argc, char **argv) { @@ -14,14 +78,7 @@ struct e1inp_line *line; int i; - if (argc < 3) { - fprintf(stderr, "Usage: %s dst_host site_id [trx_num]\n", argv[0]); - return 1; - } - - char *dst_host = argv[1]; - int site_id = atoi(argv[2]); - int trx_num = argc > 3 ? atoi(argv[3]) : 8; + parse_cmdline(argc, argv); tall_bts_ctx = talloc_named_const(NULL, 1, "OsmoBTS context"); msgb_talloc_ctx_init(tall_bts_ctx, 10*1024); @@ -31,11 +88,11 @@ bts = gsm_bts_alloc(tall_bts_ctx, 0); if (!bts) exit(1); - bts->ip_access.site_id = site_id; + bts->ip_access.site_id = cmdline.site_id; bts->ip_access.bts_id = 0; /* Additional TRXs */ - for (i = 1; i < trx_num; i++) { + for (i = 1; i < cmdline.trx_num; i++) { trx = gsm_bts_trx_alloc(bts); if (!trx) exit(1); @@ -46,8 +103,7 @@ //btsb = bts_role_bts(bts); abis_init(bts); - - line = abis_open(bts, dst_host, "OMLdummy"); + line = abis_open(bts, cmdline.dst_host, "OMLdummy"); if (!line) exit(2); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc Gerrit-Change-Number: 23588 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 Apr 2 21:38:33 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 2 Apr 2021 21:38:33 +0000 Subject: Change in osmo-bts[master]: omldummy: add cmdline arg --features References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23589 ) Change subject: omldummy: add cmdline arg --features ...................................................................... omldummy: add cmdline arg --features The current usage is to make osmo-bts-omldummy indicate BTS_FEAT_VAMOS on OML, so that we can test osmo-bsc's behavior when VAMOS is enabled. Related: SYS#4895 Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae --- M src/osmo-bts-omldummy/main.c 1 file changed, 37 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/89/23589/1 diff --git a/src/osmo-bts-omldummy/main.c b/src/osmo-bts-omldummy/main.c index fe28b05..fdb6f8e 100644 --- a/src/osmo-bts-omldummy/main.c +++ b/src/osmo-bts-omldummy/main.c @@ -14,19 +14,24 @@ static void print_usage(const char *prog_name) { - printf("Usage: %s [-h] dst_host site_id [trx_num]\n", prog_name); + printf("Usage: %s [-h] [--features FOO,BAR,BAZ] dst_host site_id [trx_num]\n", prog_name); } static void print_help(const char *prog_name) { print_usage(prog_name); printf(" -h --help This text.\n"); + printf(" -f --features FOO,BAR,BAZ BTS features to issue on OML startup.\n" + " The names correspond to BTS_FEAT_* constants\n" + " as defined in osmocom/gsm/bts_features.h,\n" + " e.g. '-f VAMOS'\n"); } struct { char *dst_host; int site_id; int trx_num; + char *features; } cmdline = { .trx_num = 8, }; @@ -37,10 +42,11 @@ int option_index = 0, c; static struct option long_options[] = { {"help", 0, 0, 'h'}, + {"features", 1, 0, 'f'}, {0} }; - c = getopt_long(argc, argv, "hd", long_options, &option_index); + c = getopt_long(argc, argv, "hdf:", long_options, &option_index); if (c == -1) break; @@ -48,6 +54,9 @@ case 'h': print_help(argv[0]); exit(0); + case 'f': + cmdline.features = optarg; + break; default: /* catch unknown options *as well as* missing arguments. */ fprintf(stderr, "Error in command line options. Exiting.\n"); @@ -71,6 +80,29 @@ } } +void set_bts_features(struct bitvec *features, char *features_str) +{ + char *saveptr = NULL; + char *token; + + if (!features_str) + return; + + while ((token = strtok_r(features_str, ",", &saveptr))) { + enum osmo_bts_features feat; + features_str = NULL; + + feat = get_string_value(osmo_bts_features_names, token); + + if ((int)feat < 0) { + fprintf(stderr, "Unknown BTS feature: '%s'\n", token); + exit(-1); + } + + osmo_bts_set_feature(features, feat); + } +} + int main(int argc, char **argv) { struct gsm_bts *bts; @@ -100,6 +132,9 @@ if (bts_init(bts) < 0) exit(1); + + set_bts_features(bts->features, cmdline.features); + //btsb = bts_role_bts(bts); abis_init(bts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae Gerrit-Change-Number: 23589 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 Apr 2 21:58:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 2 Apr 2021 21:58:45 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23587/3/src/gsm/bts_features.c File src/gsm/bts_features.c: https://gerrit.osmocom.org/c/libosmocore/+/23587/3/src/gsm/bts_features.c at 52 PS3, Line 52: osmo_bts_feature_name So now we have: osmo_bts_features_name, and osmo_bts_feature_name. Of course, the first symbol should have been called osmo_bts_features_desc(), but we can't change this. The new symbol name makes the situation even worse, and it's not obvious what is what for the API user. What about osmo_bts_feature_short_name() or osmo_bts_feature_name_short() instead? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 02 Apr 2021 21:58: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 Apr 2 22:00:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 2 Apr 2021 22:00:54 +0000 Subject: Change in osmo-bts[master]: omldummy: introduce using getopt_long In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23588 ) Change subject: omldummy: introduce using getopt_long ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23588/1/src/osmo-bts-omldummy/main.c File src/osmo-bts-omldummy/main.c: https://gerrit.osmocom.org/c/osmo-bts/+/23588/1/src/osmo-bts-omldummy/main.c at 43 PS1, Line 43: d What is 'd' for? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc Gerrit-Change-Number: 23588 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 02 Apr 2021 22:00:54 +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 Apr 2 22:13:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 2 Apr 2021 22:13:20 +0000 Subject: Change in osmo-bts[master]: omldummy: add cmdline arg --features In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23589 ) Change subject: omldummy: add cmdline arg --features ...................................................................... Patch Set 1: Given that omldummy already has some hard-coded features, we may want to allow disabling them too? Not sure what the syntax should look like, maybe: -f +VAMOS,-HOPPING. What do you think? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae Gerrit-Change-Number: 23589 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 02 Apr 2021 22:13:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 2 23:52:18 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 2 Apr 2021 23:52:18 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 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/+/23574 to look at the new patch set (#4). Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Ignore CHANnel ReQuireD with Access Delay IE > 63 It is observed that a CHANnel ReQuireD with access delay greater than 63 can be received from the Ericsson RBS. This results in osmo-bsc sending back a CHANnel ACTIVation with a Timing Advance IE containing the access delay value. The RBS NACKs this, leading to a BORKEN Channel. This patch makes the maximum acceptable access delay vty-configurable and Ignores CHANnel ReQuireD RSL Messages with Access Delay IE greater than that configured. Default value is 63. Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c 4 files changed, 33 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/74/23574/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 4 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 00:03:05 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Sat, 3 Apr 2021 00:03:05 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23574 ) Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Patch Set 4: (4 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3//COMMIT_MSG at 19 PS3, Line 19: Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce > Related: OS#5096 Done https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/abis_rsl.c at 1530 PS3, Line 1530: LOGL_NOTICE > not sure we want 'notice' on all of these, if this happens quite frequently on some BTSs. [?] Let's meet in the middle at INFO ? Most of the other similar logging here are abis_rsl.c is at INFO. I do find that DEBUG can be awfully verbose on a busy BTS, certainly with many facilities of interest at DEBUG is is impossible to actually read anything. I think of DEBUG as only for logging and later analysis, I think this is something I might want to see in real time while watching. thanks for review! https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c at 2754 PS3, Line 2754: BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK > As far as I can see, this parameter applies immediately, so: [?] Good catch! :) the perils of copy&paste.. And I did even look at that at 3am and say,oh that's ok... Thanks for review! https://gerrit.osmocom.org/c/osmo-bsc/+/23574/3/src/osmo-bsc/bsc_vty.c at 2755 PS3, Line 2755: "rach max-delay <0-127>", > I think 1-127 or 1-255 is a reasonably permitted range. 0 is indeed odd. Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 4 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 03 Apr 2021 00:03:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Comment-In-Reply-To: keith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 00:03:13 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Sat, 3 Apr 2021 00:03:13 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 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/+/23574 to look at the new patch set (#5). Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Ignore CHANnel ReQuireD with Access Delay IE > 63 It is observed that a CHANnel ReQuireD with access delay greater than 63 can be received from the Ericsson RBS. This results in osmo-bsc sending back a CHANnel ACTIVation with a Timing Advance IE containing the access delay value. The RBS NACKs this, leading to a BORKEN Channel. This patch makes the maximum acceptable access delay vty-configurable and Ignores CHANnel ReQuireD RSL Messages with Access Delay IE greater than that configured. Default value is 63. Related: OS#5096 Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c 4 files changed, 33 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/74/23574/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 5 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Apr 3 01:37:30 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 03 Apr 2021 01:37:30 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <6067c6f45b37c_38382ac31c6845fc3693c7@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: [ 147s] [COMPILING apps/dfu/main.c] [ 148s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 148s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 148s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 148s] Memory region Used Size Region Size %age Used [ 148s] rom: 16600 B 16 KB 101.32% [ 148s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 148s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 148s] /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' [ 148s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 148s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 148s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 148s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 216 bytes [ 148s] collect2: error: ld returned 1 exit status [ 148s] % [ 148s] make[2]: *** [Makefile:230: flash] Error 1 [ 148s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 148s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 148s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 148s] dh_auto_build: error: make -j1 returned exit code 2 [ 148s] make: *** [debian/rules:16: build] Error 25 [ 148s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 148s] ### VM INTERACTION START ### [ 151s] [ 137.106094] sysrq: Power Off [ 151s] [ 137.110335] reboot: Power down [ 151s] ### VM INTERACTION END ### [ 151s] [ 151s] cloud102 failed "build simtrace2_0.7.0.76.62ad.dsc" at Sat Apr 3 01:37:25 UTC 2021. [ 151s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Apr 3 01:37:47 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 03 Apr 2021 01:37:47 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <6067c6f496cc4_38382ac31c6845fc36944c@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 libboard/qmod/source/board_qmod.c] [ 157s] [COMPILING libboard/qmod/source/card_pres.c] [ 157s] [COMPILING libboard/qmod/source/i2c.c] [ 157s] [COMPILING libboard/qmod/source/wwan_led.c] [ 157s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 158s] [COMPILING apps/dfu/main.c] [ 158s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 158s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 158s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 158s] Memory region Used Size Region Size %age Used [ 158s] rom: 16592 B 16 KB 101.27% [ 158s] ram: 11680 B 48 KB 23.76/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: region `rom' overflowed by 208 bytes [ 158s] collect2: error: ld returned 1 exit status [ 158s] % [ 158s] make[2]: *** [Makefile:230: 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.932938] sysrq: Power Off [ 161s] [ 149.938840] reboot: Power down [ 161s] ### VM INTERACTION END ### [ 161s] [ 161s] lamb18 failed "build simtrace2_0.7.0.76.62ad.dsc" at Sat Apr 3 01:37:30 UTC 2021. [ 161s] -- 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 Apr 3 07:26:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 07:26:21 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23587/3/src/gsm/bts_features.c File src/gsm/bts_features.c: https://gerrit.osmocom.org/c/libosmocore/+/23587/3/src/gsm/bts_features.c at 52 PS3, Line 52: osmo_bts_feature_name > So now we have: [?] Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 03 Apr 2021 07:26: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 gerrit-no-reply at lists.osmocom.org Sat Apr 3 07:26:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 07:26:51 +0000 Subject: Change in osmo-bts[master]: omldummy: introduce using getopt_long In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23588 ) Change subject: omldummy: introduce using getopt_long ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc Gerrit-Change-Number: 23588 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 03 Apr 2021 07:26:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 09:35:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:30 +0000 Subject: Change in pysim[master]: Add type annotations to card_data.py References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23590 ) Change subject: Add type annotations to card_data.py ...................................................................... Add type annotations to card_data.py Change-Id: Ia09b3ecaa582d62a97c3adac2650686dc19d5ec1 --- M pySim/card_data.py 1 file changed, 30 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/90/23590/1 diff --git a/pySim/card_data.py b/pySim/card_data.py index ebc63a6..c6820c1 100644 --- a/pySim/card_data.py +++ b/pySim/card_data.py @@ -1,35 +1,36 @@ # coding=utf-8 -"""Abstraction of card data that can be queried from external source +"""Abstraction of card related data that can be queried from external source.""" -(C) 2021 by Sysmocom s.f.m.c. GmbH -All Rights Reserved +# (C) 2021 by Sysmocom s.f.m.c. GmbH +# All Rights Reserved +# +# Author: Philipp Maier +# +# 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 . -Author: Philipp Maier - -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 . -""" +from typing import List, Dict, Optional import csv -card_data_provider = [] +card_data_provider = List[CardData] class CardData(object): VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI', 'PIN1', 'PIN2', 'PUK1', 'PUK2'] # check input parameters, but do nothing concrete yet - def get_data(self, fields=[], key='ICCID', value=""): + def get_data(self, fields:List[str]=[], key:str='ICCID', value:str="") -> Dict[str,str]: """abstract implementation of get_data that only verifies the function parameters""" for f in fields: @@ -43,25 +44,28 @@ return {} - def get_field(self, field, key='ICCID', value=""): + def get_field(self, field:str, key:str='ICCID', value:str="") -> Optional[str]: """get a single field from CSV file using a specified key/value pair""" fields = [field] result = self.get(fields, key, value) return result.get(field) + def get(self, fields:List[str], key:str, value:str) -> Dict[str,str]: + """get fields from CSV file using a specified key/value pair""" + pass class CardDataCsv(CardData): """card data class that allows the user to query against a specified CSV file""" csv_file = None filename = None - def __init__(self, filename): + def __init__(self, filename:str): self.csv_file = open(filename, 'r') if not self.csv_file: raise RuntimeError("Could not open CSV-File '%s'" % filename) self.filename = filename - def get(self, fields, key, value): + def get(self, fields:List[str], key:str, value:str) -> Dict[str,str]: """get fields from CSV file using a specified key/value pair""" super().get_data(fields, key, value) @@ -83,14 +87,14 @@ return rc -def card_data_register(provider, provider_list=card_data_provider): +def card_data_register(provider:CardData, provider_list=card_data_provider): """Register a new card data provider""" if not isinstance(provider, CardData): raise ValueError("provider is not a card data provier") provider_list.append(provider) -def card_data_get(fields, key, value, provider_list=card_data_provider): +def card_data_get(fields, key:str, value:str, provider_list=card_data_provider) -> Dict[str,str]: """Query all registered card data providers""" for p in provider_list: if not isinstance(p, CardData): @@ -101,7 +105,7 @@ return {} -def card_data_get_field(field, key, value, provider_list=card_data_provider): +def card_data_get_field(field:str, key:str, value:str, provider_list=card_data_provider) -> Optional[str]: """Query all registered card data providers for a single field""" for p in provider_list: if not isinstance(p, CardData): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia09b3ecaa582d62a97c3adac2650686dc19d5ec1 Gerrit-Change-Number: 23590 Gerrit-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 Apr 3 09:35:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:30 +0000 Subject: Change in pysim[master]: rename card_data to card_key_provider. References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23591 ) Change subject: rename card_data to card_key_provider. ...................................................................... rename card_data to card_key_provider. "data" is an awfully generic term. Anything stored on a card is data. This specific code deals with resolving key/pin material from an external source. Change-Id: I4c8e1be3e766f7c0565c07b39d48abf8adc375af --- M pySim-shell.py R pySim/card_key_provider.py 2 files changed, 14 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/91/23591/1 diff --git a/pySim-shell.py b/pySim-shell.py index 931b5ea..d27deb7 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -48,7 +48,7 @@ from pySim.ts_31_102 import CardApplicationUSIM from pySim.ts_31_103 import CardApplicationISIM -from pySim.card_data import CardDataCsv, card_data_register, card_data_get_field +from pySim.card_key_provider import CardKeyProviderCsv, card_key_provider_register, card_key_provider_get_field class PysimApp(cmd2.Cmd): @@ -95,7 +95,7 @@ pin_adm = sanitize_pin_adm(arg) else: # try to find an ADM-PIN if none is specified - result = card_data_get_field('ADM1', key='ICCID', value=self.iccid) + result = card_key_provider_get_field('ADM1', key='ICCID', value=self.iccid) pin_adm = sanitize_pin_adm(result) if pin_adm: self.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self.iccid)) @@ -148,7 +148,7 @@ if str(code).upper() not in auto: return sanitize_pin_adm(code) - result = card_data_get_field(str(code), key='ICCID', value=self._cmd.iccid) + result = card_key_provider_get_field(str(code), key='ICCID', value=self._cmd.iccid) result = sanitize_pin_adm(result) if result: self._cmd.poutput("found %s '%s' for ICCID '%s'" % (code.upper(), result, self._cmd.iccid)) @@ -439,9 +439,9 @@ # or from CSV file in home directory csv_default = str(Path.home()) + "/.osmocom/pysim/card_data.csv" if opts.csv: - card_data_register(CardDataCsv(opts.csv)) + card_key_provider_register(CardKeyProviderCsv(opts.csv)) if os.path.isfile(csv_default): - card_data_register(CardDataCsv(csv_default)) + card_key_provider_register(CardKeyProviderCsv(csv_default)) # If the user supplies an ADM PIN at via commandline args authenticate # immediatley so that the user does not have to use the shell commands diff --git a/pySim/card_data.py b/pySim/card_key_provider.py similarity index 86% rename from pySim/card_data.py rename to pySim/card_key_provider.py index c6820c1..80f93d0 100644 --- a/pySim/card_data.py +++ b/pySim/card_key_provider.py @@ -23,9 +23,9 @@ import csv -card_data_provider = List[CardData] +card_key_providers = List[CardKeyProvider] -class CardData(object): +class CardKeyProvider(object): VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI', 'PIN1', 'PIN2', 'PUK1', 'PUK2'] @@ -54,7 +54,7 @@ """get fields from CSV file using a specified key/value pair""" pass -class CardDataCsv(CardData): +class CardKeyProviderCsv(CardKeyProvider): """card data class that allows the user to query against a specified CSV file""" csv_file = None filename = None @@ -87,17 +87,17 @@ return rc -def card_data_register(provider:CardData, provider_list=card_data_provider): +def card_key_provider_register(provider:CardKeyProvider, provider_list=card_key_providers): """Register a new card data provider""" - if not isinstance(provider, CardData): + if not isinstance(provider, CardKeyProvider): raise ValueError("provider is not a card data provier") provider_list.append(provider) -def card_data_get(fields, key:str, value:str, provider_list=card_data_provider) -> Dict[str,str]: +def card_key_provider_get(fields, key:str, value:str, provider_list=card_key_providers) -> Dict[str,str]: """Query all registered card data providers""" for p in provider_list: - if not isinstance(p, CardData): + if not isinstance(p, CardKeyProvider): raise ValueError("provider list contains provider, which is not a card data provier") result = p.get(fields, key, value) if result: @@ -105,10 +105,10 @@ return {} -def card_data_get_field(field:str, key:str, value:str, provider_list=card_data_provider) -> Optional[str]: +def card_key_provider_get_field(field:str, key:str, value:str, provider_list=card_key_providers) -> Optional[str]: """Query all registered card data providers for a single field""" for p in provider_list: - if not isinstance(p, CardData): + if not isinstance(p, CardKeyProvider): raise ValueError("provider list contains provider, which is not a card data provier") result = p.get_field(field, key, value) if result: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4c8e1be3e766f7c0565c07b39d48abf8adc375af Gerrit-Change-Number: 23591 Gerrit-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 Apr 3 09:35:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:31 +0000 Subject: Change in pysim[master]: filesystem.py: Fix type annotation of read_binary_dec() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23592 ) Change subject: filesystem.py: Fix type annotation of read_binary_dec() ...................................................................... filesystem.py: Fix type annotation of read_binary_dec() Change-Id: I781fc0c564a318a6f9b2ec8dccf9f8865bff0e48 --- M pySim/filesystem.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/92/23592/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 55a7130..3eea2f4 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -966,7 +966,7 @@ raise TypeError("Only works with TransparentEF") return self.card._scc.read_binary(self.selected_file.fid, length, offset) - def read_binary_dec(self) -> dict: + def read_binary_dec(self) -> Tuple[dict, str]: """Read [part of] a transparent EF binary data and decode it. Args: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23592 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I781fc0c564a318a6f9b2ec8dccf9f8865bff0e48 Gerrit-Change-Number: 23592 Gerrit-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 Apr 3 09:35:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:32 +0000 Subject: Change in pysim[master]: card_key_provider: Documentation with sphinx / autodoc References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23593 ) Change subject: card_key_provider: Documentation with sphinx / autodoc ...................................................................... card_key_provider: Documentation with sphinx / autodoc Change-Id: Ia41e14d643d452d92fc8d3c2fb9c4ac9021402e9 --- M docs/library.rst M pySim/card_key_provider.py 2 files changed, 71 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/93/23593/1 diff --git a/docs/library.rst b/docs/library.rst index ae027ff..656a780 100644 --- a/docs/library.rst +++ b/docs/library.rst @@ -90,3 +90,9 @@ .. automodule:: pySim.card_handler :members: + +pySim card_key_provider +----------------------- + +.. automodule:: pySim.card_key_provider + :members: diff --git a/pySim/card_key_provider.py b/pySim/card_key_provider.py index 80f93d0..b4e1daa 100644 --- a/pySim/card_key_provider.py +++ b/pySim/card_key_provider.py @@ -1,5 +1,14 @@ # coding=utf-8 -"""Abstraction of card related data that can be queried from external source.""" +"""Obtaining card parameters (mostly key data) from external source. + +This module contains a base class and a concrete implementation of +obtaining card key material (or other card-individual parameters) from +an external data source. + +This is used e.g. to keep PIN/PUK data in some file on disk, avoiding +the need of manually entering the related card-individual data on every +operation with pySim-shell. +""" # (C) 2021 by Sysmocom s.f.m.c. GmbH # All Rights Reserved @@ -23,16 +32,24 @@ import csv -card_key_providers = List[CardKeyProvider] +card_key_providers = List['CardKeyProvider'] class CardKeyProvider(object): + """Abstract base class, not containing any concrete implementation.""" VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI', 'PIN1', 'PIN2', 'PUK1', 'PUK2'] # check input parameters, but do nothing concrete yet - def get_data(self, fields:List[str]=[], key:str='ICCID', value:str="") -> Dict[str,str]: - """abstract implementation of get_data that only verifies the function parameters""" + def _verify_get_data(self, fields:List[str]=[], key:str='ICCID', value:str="") -> Dict[str,str]: + """Verify multiple fields for identified card. + Args: + fields : list of valid field names such as 'ADM1', 'PIN1', ... which are to be obtained + key : look-up key to identify card data, such as 'ICCID' + value : value for look-up key to identify card data + Returns: + dictionary of {field, value} strings for each requested field from 'fields' + """ for f in fields: if (f not in self.VALID_FIELD_NAMES): raise ValueError("Requested field name '%s' is not a valid field name, valid field names are: %s" % @@ -51,23 +68,34 @@ return result.get(field) def get(self, fields:List[str], key:str, value:str) -> Dict[str,str]: - """get fields from CSV file using a specified key/value pair""" + """Get multiple card-individual fields for identified card. + + Args: + fields : list of valid field names such as 'ADM1', 'PIN1', ... which are to be obtained + key : look-up key to identify card data, such as 'ICCID' + value : value for look-up key to identify card data + Returns: + dictionary of {field, value} strings for each requested field from 'fields' + """ pass class CardKeyProviderCsv(CardKeyProvider): - """card data class that allows the user to query against a specified CSV file""" + """Card key provider implementation that allows to query against a specified CSV file""" csv_file = None filename = None def __init__(self, filename:str): + """ + Args: + filename : file name (path) of CSV file containing card-individual key/data + """ self.csv_file = open(filename, 'r') if not self.csv_file: - raise RuntimeError("Could not open CSV-File '%s'" % filename) + raise RuntimeError("Could not open CSV file '%s'" % filename) self.filename = filename def get(self, fields:List[str], key:str, value:str) -> Dict[str,str]: - """get fields from CSV file using a specified key/value pair""" - super().get_data(fields, key, value) + super()._verify_get_data(fields, key, value) self.csv_file.seek(0) cr = csv.DictReader(self.csv_file) @@ -88,17 +116,31 @@ def card_key_provider_register(provider:CardKeyProvider, provider_list=card_key_providers): - """Register a new card data provider""" + """Register a new card key provider. + + Args: + provider : the to-be-registered provider + provider_list : override the list of providers from the global default + """ if not isinstance(provider, CardKeyProvider): raise ValueError("provider is not a card data provier") provider_list.append(provider) def card_key_provider_get(fields, key:str, value:str, provider_list=card_key_providers) -> Dict[str,str]: - """Query all registered card data providers""" + """Query all registered card data providers for card-individual [key] data. + + Args: + fields : list of valid field names such as 'ADM1', 'PIN1', ... which are to be obtained + key : look-up key to identify card data, such as 'ICCID' + value : value for look-up key to identify card data + provider_list : override the list of providers from the global default + Returns: + dictionary of {field, value} strings for each requested field from 'fields' + """ for p in provider_list: if not isinstance(p, CardKeyProvider): - raise ValueError("provider list contains provider, which is not a card data provier") + raise ValueError("provider list contains element which is not a card data provier") result = p.get(fields, key, value) if result: return result @@ -106,12 +148,20 @@ def card_key_provider_get_field(field:str, key:str, value:str, provider_list=card_key_providers) -> Optional[str]: - """Query all registered card data providers for a single field""" + """Query all registered card data providers for a single field. + + Args: + field : name valid field such as 'ADM1', 'PIN1', ... which is to be obtained + key : look-up key to identify card data, such as 'ICCID' + value : value for look-up key to identify card data + provider_list : override the list of providers from the global default + Returns: + dictionary of {field, value} strings for the requested field + """ for p in provider_list: if not isinstance(p, CardKeyProvider): - raise ValueError("provider list contains provider, which is not a card data provier") + raise ValueError("provider list contains element which is not a card data provier") result = p.get_field(field, key, value) if result: return result return None - -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia41e14d643d452d92fc8d3c2fb9c4ac9021402e9 Gerrit-Change-Number: 23593 Gerrit-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 Apr 3 09:35:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:34 +0000 Subject: Change in pysim[master]: utils.py: Add more type annotations References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23594 ) Change subject: utils.py: Add more type annotations ...................................................................... utils.py: Add more type annotations Change-Id: I50a0a07132890af0817f4ff0ce9fec53b7512522 --- M pySim/utils.py 1 file changed, 36 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/94/23594/1 diff --git a/pySim/utils.py b/pySim/utils.py index 75106d8..8acc0bf 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -3,7 +3,9 @@ """ pySim: various utilities """ -# +from typing import Optional, List, Dict, Any, Tuple +from pySim.transport import LinkBase + # Copyright (C) 2009-2010 Sylvain Munaut # # This program is free software: you can redistribute it and/or modify @@ -20,40 +22,42 @@ # along with this program. If not, see . # +# just to differentiate strings of hex nibbles from everything else +Hexstr = str -def h2b(s: str) -> bytearray: +def h2b(s:Hexstr) -> bytearray: """convert from a string of hex nibbles to a sequence of bytes""" return bytearray.fromhex(s) -def b2h(b: bytearray) -> str: +def b2h(b:bytearray) -> str: """convert from a sequence of bytes to a string of hex nibbles""" return ''.join(['%02x'%(x) for x in b]) -def h2i(s:str): +def h2i(s:Hexstr) -> List[int]: """convert from a string of hex nibbles to a list of integers""" return [(int(x,16)<<4)+int(y,16) for x,y in zip(s[0::2], s[1::2])] -def i2h(s) -> str: +def i2h(s:List[int]) -> str: """convert from a list of integers to a string of hex nibbles""" return ''.join(['%02x'%(x) for x in s]) -def h2s(s:str) -> str: +def h2s(s:Hexstr) -> str: """convert from a string of hex nibbles to an ASCII string""" return ''.join([chr((int(x,16)<<4)+int(y,16)) for x,y in zip(s[0::2], s[1::2]) if int(x + y, 16) != 0xff]) -def s2h(s:str) -> str: +def s2h(s:str) -> Hexstr: """convert from an ASCII string to a string of hex nibbles""" b = bytearray() b.extend(map(ord, s)) return b2h(b) # List of bytes to string -def i2s(s) -> str: +def i2s(s:List[int]) -> str: """convert from a list of integers to an ASCII string""" return ''.join([chr(x) for x in s]) -def swap_nibbles(s:str) -> str: +def swap_nibbles(s:Hexstr) -> Hexstr: """swap the nibbles in a hex string""" return ''.join([x+y for x,y in zip(s[1::2], s[0::2])]) @@ -104,7 +108,7 @@ ei = '%02x' % l + swap_nibbles('%01x%s' % ((oe<<3)|1, rpad(imsi, 15))) return ei -def dec_imsi(ef): +def dec_imsi(ef:Hexstr) -> Optional[str]: """Converts an EF value to the imsi string representation""" if len(ef) < 4: return None @@ -122,10 +126,10 @@ imsi = swapped[1:] return imsi -def dec_iccid(ef): +def dec_iccid(ef:Hexstr) -> str: return swap_nibbles(ef).strip('f') -def enc_iccid(iccid): +def enc_iccid(iccid:str) -> Hexstr: return swap_nibbles(rpad(iccid, 20)) def enc_plmn(mcc, mnc): @@ -151,7 +155,7 @@ return [s[i:i+(nbytes*2)] for i in range(0, len(s), (nbytes*2)) ] # Accepts hex string representing three bytes -def dec_mcc_from_plmn(plmn): +def dec_mcc_from_plmn(plmn) -> int: ia = h2i(plmn) digit1 = ia[0] & 0x0F # 1st byte, LSB digit2 = (ia[0] & 0xF0) >> 4 # 1st byte, MSB @@ -160,7 +164,7 @@ return 0xFFF # 4095 return derive_mcc(digit1, digit2, digit3) -def dec_mnc_from_plmn(plmn): +def dec_mnc_from_plmn(plmn) -> int: ia = h2i(plmn) digit1 = ia[2] & 0x0F # 3rd byte, LSB digit2 = (ia[2] & 0xF0) >> 4 # 3rd byte, MSB @@ -169,7 +173,7 @@ return 0xFFF # 4095 return derive_mnc(digit1, digit2, digit3) -def dec_act(twohexbytes): +def dec_act(twohexbytes:Hexstr) -> List[str]: act_list = [ {'bit': 15, 'name': "UTRAN"}, {'bit': 14, 'name': "E-UTRAN"}, @@ -186,7 +190,7 @@ sel.append(a['name']) return sel -def dec_xplmn_w_act(fivehexbytes): +def dec_xplmn_w_act(fivehexbytes:Hexstr) -> Dict[str,Any]: res = {'mcc': 0, 'mnc': 0, 'act': []} plmn_chars = 6 act_chars = 4 @@ -238,7 +242,7 @@ res['status'] = h2i(hexstr[34:36]) return res -def dec_xplmn(threehexbytes): +def dec_xplmn(threehexbytes:Hexstr) -> dict: res = {'mcc': 0, 'mnc': 0, 'act': []} plmn_chars = 6 plmn_str = threehexbytes[:plmn_chars] # first three bytes (six ascii hex chars) @@ -246,7 +250,7 @@ res['mnc'] = dec_mnc_from_plmn(plmn_str) return res -def format_xplmn(hexstr): +def format_xplmn(hexstr:Hexstr) -> str: s = "" for rec_data in hexstr_to_Nbytearr(hexstr, 3): rec_info = dec_xplmn(rec_data) @@ -257,7 +261,7 @@ s += "\t%s # %s\n" % (rec_data, rec_str) return s -def derive_milenage_opc(ki_hex, op_hex): +def derive_milenage_opc(ki_hex:Hexstr, op_hex:Hexstr) -> Hexstr: """ Run the milenage algorithm to calculate OPC from Ki and OP """ @@ -272,7 +276,7 @@ opc_bytes = aes.encrypt(op_bytes) return b2h(strxor(opc_bytes, op_bytes)) -def calculate_luhn(cc): +def calculate_luhn(cc) ->int: """ Calculate Luhn checksum used in e.g. ICCID and IMEI """ @@ -280,7 +284,7 @@ check_digit = 10 - sum(num[-2::-2] + [sum(divmod(d * 2, 10)) for d in num[::-2]]) % 10 return 0 if check_digit == 10 else check_digit -def mcc_from_imsi(imsi): +def mcc_from_imsi(imsi:str) -> Optional[str]: """ Derive the MCC (Mobile Country Code) from the first three digits of an IMSI """ @@ -292,7 +296,7 @@ else: return None -def mnc_from_imsi(imsi, long=False): +def mnc_from_imsi(imsi:str, long=False) -> Optional[str]: """ Derive the MNC (Mobile Country Code) from the 4th to 6th digit of an IMSI """ @@ -307,7 +311,7 @@ else: return None -def derive_mcc(digit1, digit2, digit3): +def derive_mcc(digit1:int, digit2:int, digit3:int) -> int: """ Derive decimal representation of the MCC (Mobile Country Code) from three given digits. @@ -324,7 +328,7 @@ return mcc -def derive_mnc(digit1, digit2, digit3=0x0f): +def derive_mnc(digit1:int, digit2:int, digit3:int=0x0f) -> int: """ Derive decimal representation of the MNC (Mobile Network Code) from two or (optionally) three given digits. @@ -344,7 +348,7 @@ return mnc -def dec_msisdn(ef_msisdn): +def dec_msisdn(ef_msisdn) -> Optional[Tuple[int,int,Optional[str]]]: """ Decode MSISDN from EF.MSISDN or EF.ADN (same structure). See 3GPP TS 31.102, section 4.2.26 and 4.4.2.3. @@ -385,7 +389,7 @@ return (npi, ton, msisdn) -def enc_msisdn(msisdn, npi=0x01, ton=0x03): +def enc_msisdn(msisdn:str, npi:int=0x01, ton:int=0x03) -> Hexstr: """ Encode MSISDN as LHV so it can be stored to EF.MSISDN. See 3GPP TS 31.102, section 4.2.26 and 4.4.2.3. @@ -411,7 +415,7 @@ return ('%02x' % bcd_len) + ('%02x' % npi_ton) + bcd -def dec_st(st, table="sim"): +def dec_st(st, table="sim") -> str: """ Parses the EF S/U/IST and prints the list of available services in EF S/U/IST """ @@ -599,7 +603,7 @@ return s -def is_hex(string, minlen=2, maxlen=None) -> bool: +def is_hex(string:str, minlen:int=2, maxlen:Optional[int]=None) -> bool: """ Check if a string is a valid hexstring """ @@ -621,7 +625,7 @@ except: return False -def sanitize_pin_adm(pin_adm, pin_adm_hex = None): +def sanitize_pin_adm(pin_adm, pin_adm_hex = None) -> Hexstr: """ The ADM pin can be supplied either in its hexadecimal form or as ascii string. This function checks the supplied opts parameter and @@ -650,10 +654,11 @@ return pin_adm -def init_reader(opts): +def init_reader(opts) -> Optional[LinkBase]: """ Init card reader driver """ + sl:Optional[LinkBase] = None try: if opts.pcsc_dev is not None: print("Using PC/SC reader interface") @@ -819,7 +824,7 @@ return sw_masked == pattern def tabulate_str_list(str_list, width:int = 79, hspace:int = 2, lspace:int = 1, - align_left:bool = True): + align_left:bool = True) -> str: """Pretty print a list of strings into a tabulated form. Args: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I50a0a07132890af0817f4ff0ce9fec53b7512522 Gerrit-Change-Number: 23594 Gerrit-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 Apr 3 09:35:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:34 +0000 Subject: Change in pysim[master]: card_handler: clean-up References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23595 ) Change subject: card_handler: clean-up ...................................................................... card_handler: clean-up * introduce type annotations * introduce + derive implementations from base class * move shared code to base class Change-Id: I7168506cbebb1ebb67f47453419b860824912051 --- M pySim/card_handler.py 1 file changed, 58 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/95/23595/1 diff --git a/pySim/card_handler.py b/pySim/card_handler.py index 9beab51..7f5bf2d 100644 --- a/pySim/card_handler.py +++ b/pySim/card_handler.py @@ -1,6 +1,9 @@ # -*- coding: utf-8 -*- -""" pySim: card handler utilities +""" pySim: card handler utilities. A 'card handler' is some method +by which cards can be inserted/removed into the card reader. For +normal smart card readers, this has to be done manually. However, +there are also automatic card feeders. """ # @@ -21,47 +24,76 @@ # along with this program. If not, see . # +from pySim.transport import LinkBase import subprocess import sys import yaml -# Manual card handler: User is prompted to insert/remove card from the reader. -class card_handler: +class CardHandler: + """Abstract base class representing a mechanism for card insertion/removal.""" - sl = None - - def __init__(self, sl): + def __init__(self, sl:LinkBase): self.sl = sl - def get(self, first = False): - print("Ready for Programming: Insert card now (or CTRL-C to cancel)") - self.sl.wait_for_card(newcardonly=not first) + def get(self, first:bool = False): + """Method called when pySim needs a new card to be inserted. + + Args: + first : FIXME + """ + print("Ready for Programming: ", end='') + self._get(first) def error(self): - print("Programming failed: Remove card from reader") - print("") + """Method called when pySim failed to program a card. Move card to 'bad' batch.""" + print("Programming failed: ", end='') + self._error() def done(self): - print("Programming successful: Remove card from reader") + """Method called when pySim failed to program a card. Move card to 'good' batch.""" + print("Programming successful: ", end='') + self._done() + + def _get(self, first:bool = False): + pass + + def _error(self): + pass + + def _done(self): + pass + + +class card_handler(CardHandler): + """Manual card handler: User is prompted to insert/remove card from the reader.""" + + def _get(self, first:bool = False): + print("Insert card now (or CTRL-C to cancel)") + self.sl.wait_for_card(newcardonly=not first) + + def _error(self): + print("Remove card from reader") print("") -# Automatic card handler: A machine is used to handle the cards. -class card_handler_auto: + def _done(self): + print("Remove card from reader") + print("") - sl = None - cmds = None + +class card_handler_auto(CardHandler): + """Automatic card handler: A machine is used to handle the cards.""" + verbose = True - def __init__(self, sl, config_file): + def __init__(self, sl:LinkBase, config_file:str): + super().__init__(sl) print("Card handler Config-file: " + str(config_file)) - self.sl = sl with open(config_file) as cfg: self.cmds = yaml.load(cfg, Loader=yaml.FullLoader) - self.verbose = (self.cmds.get('verbose') == True) - def __print_outout(self,out): + def __print_outout(self, out): print("") print("Card handler output:") print("---------------------8<---------------------") @@ -91,17 +123,17 @@ print("Error: Card handler failure! (rc=" + str(rc) + ")") sys.exit(rc) - def get(self, first = False): - print("Ready for Programming: Transporting card into the reader-bay...") + def _get(self, first:bool = False): + print("Transporting card into the reader-bay...") self.__exec_cmd(self.cmds['get']) self.sl.connect() - def error(self): - print("Programming failed: Transporting card to the error-bin...") + def _error(self): + print("Transporting card to the error-bin...") self.__exec_cmd(self.cmds['error']) print("") - def done(self): - print("Programming successful: Transporting card into the collector bin...") + def _done(self): + print("Transporting card into the collector bin...") self.__exec_cmd(self.cmds['done']) print("") -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23595 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I7168506cbebb1ebb67f47453419b860824912051 Gerrit-Change-Number: 23595 Gerrit-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 Apr 3 09:35:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:34 +0000 Subject: Change in pysim[master]: break circular import between utils + transport References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23596 ) Change subject: break circular import between utils + transport ...................................................................... break circular import between utils + transport Move init_reader() from utils.py to transport/__init__.py Change-Id: I168597ac14497fb188a15cb632f32452128bc1c6 --- M pySim-prog.py M pySim-read.py M pySim-shell.py M pySim/transport/__init__.py M pySim/utils.py 5 files changed, 35 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/96/23596/1 diff --git a/pySim-prog.py b/pySim-prog.py index 662824c..7b1283b 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -34,8 +34,9 @@ import json from pySim.commands import SimCardCommands +from pySim.transport import init_reader from pySim.cards import _cards_classes, card_detect -from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn, dec_iccid, init_reader +from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn, dec_iccid from pySim.ts_51_011 import EF from pySim.card_handler import * from pySim.utils import * diff --git a/pySim-read.py b/pySim-read.py index 638bd4b..59c5762 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -33,9 +33,10 @@ from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map from pySim.commands import SimCardCommands +from pySim.transport import init_reader from pySim.cards import card_detect, Card, UsimCard, IsimCard from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn -from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader, dec_addr_tlv +from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, dec_addr_tlv from pySim.utils import h2s, format_ePDGSelection def parse_options(): diff --git a/pySim-shell.py b/pySim-shell.py index d27deb7..ef76cb2 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -37,9 +37,10 @@ from pySim.exceptions import * from pySim.commands import SimCardCommands +from pySim.transport import init_reader from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, h2s -from pySim.utils import dec_st, init_reader, sanitize_pin_adm, tabulate_str_list, is_hex +from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex from pySim.card_handler import card_handler from pySim.filesystem import CardMF, RuntimeState, CardDF, CardADF diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index f946af8..10475c7 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -3,6 +3,8 @@ """ pySim: PCSC reader transport link base """ +from typing import Optional + from pySim.exceptions import * from pySim.utils import sw_match @@ -103,3 +105,30 @@ if not sw_match(rv[1], sw): raise SwMatchError(rv[1], sw.lower()) return rv + +def init_reader(opts) -> Optional[LinkBase]: + """ + Init card reader driver + """ + sl:Optional[LinkBase] = None + try: + if opts.pcsc_dev is not None: + print("Using PC/SC reader interface") + from pySim.transport.pcsc import PcscSimLink + sl = PcscSimLink(opts.pcsc_dev) + elif opts.osmocon_sock is not None: + print("Using Calypso-based (OsmocomBB) reader interface") + from pySim.transport.calypso import CalypsoSimLink + sl = CalypsoSimLink(sock_path=opts.osmocon_sock) + elif opts.modem_dev is not None: + print("Using modem for Generic SIM Access (3GPP TS 27.007)") + from pySim.transport.modem_atcmd import ModemATCommandLink + sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud) + else: # Serial reader is default + print("Using serial reader interface") + from pySim.transport.serial import SerialSimLink + sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate) + return sl + except Exception as e: + print("Card reader initialization failed with exception:\n" + str(e)) + return None diff --git a/pySim/utils.py b/pySim/utils.py index 8acc0bf..a0d6907 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -4,7 +4,6 @@ """ from typing import Optional, List, Dict, Any, Tuple -from pySim.transport import LinkBase # Copyright (C) 2009-2010 Sylvain Munaut # @@ -654,34 +653,6 @@ return pin_adm -def init_reader(opts) -> Optional[LinkBase]: - """ - Init card reader driver - """ - sl:Optional[LinkBase] = None - try: - if opts.pcsc_dev is not None: - print("Using PC/SC reader interface") - from pySim.transport.pcsc import PcscSimLink - sl = PcscSimLink(opts.pcsc_dev) - elif opts.osmocon_sock is not None: - print("Using Calypso-based (OsmocomBB) reader interface") - from pySim.transport.calypso import CalypsoSimLink - sl = CalypsoSimLink(sock_path=opts.osmocon_sock) - elif opts.modem_dev is not None: - print("Using modem for Generic SIM Access (3GPP TS 27.007)") - from pySim.transport.modem_atcmd import ModemATCommandLink - sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud) - else: # Serial reader is default - print("Using serial reader interface") - from pySim.transport.serial import SerialSimLink - sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate) - return sl - except Exception as e: - print("Card reader initialization failed with exception:\n" + str(e)) - return None - - def enc_ePDGSelection(hexstr, mcc, mnc, epdg_priority='0001', epdg_fqdn_format='00'): """ Encode ePDGSelection so it can be stored at EF.ePDGSelection or EF.ePDGSelectionEm. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I168597ac14497fb188a15cb632f32452128bc1c6 Gerrit-Change-Number: 23596 Gerrit-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 Apr 3 09:35:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:35 +0000 Subject: Change in pysim[master]: cosmetic: fix typo in comment References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23597 ) Change subject: cosmetic: fix typo in comment ...................................................................... cosmetic: fix typo in comment Change-Id: Iac8b310a470b3ad8dee5f61342fd5acedbbd6e5d --- M pySim/utils.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/97/23597/1 diff --git a/pySim/utils.py b/pySim/utils.py index a0d6907..9279e06 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -628,7 +628,7 @@ """ The ADM pin can be supplied either in its hexadecimal form or as ascii string. This function checks the supplied opts parameter and - returns the pin_adm as hex encoded string, regardles in which form + returns the pin_adm as hex encoded string, regardless in which form it was originally supplied by the user """ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iac8b310a470b3ad8dee5f61342fd5acedbbd6e5d Gerrit-Change-Number: 23597 Gerrit-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 Apr 3 09:35:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:35 +0000 Subject: Change in pysim[master]: docs: Update copyright statement References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23598 ) Change subject: docs: Update copyright statement ...................................................................... docs: Update copyright statement * list supreeth for his many contributions * update copyright years Change-Id: I431e54000e6d260d8173424496d11904599171d8 --- M docs/conf.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/98/23598/1 diff --git a/docs/conf.py b/docs/conf.py index 1fb06da..add26d8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,8 +18,8 @@ # -- Project information ----------------------------------------------------- project = 'pysim' -copyright = '2021, Sylvain Munaut, Harald Welte, Philipp Maier' -author = 'Sylvain Munaut, Harald Welte, Philipp Maier' +copyright = '2009-2021 by Sylvain Munaut, Harald Welte, Philipp Maier, Supreeth Herle' +author = 'Sylvain Munaut, Harald Welte, Philipp Maier, Supreeth Herle' # -- General configuration --------------------------------------------------- -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I431e54000e6d260d8173424496d11904599171d8 Gerrit-Change-Number: 23598 Gerrit-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 Apr 3 09:35:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:36 +0000 Subject: Change in pysim[master]: shell: Move dir, tree, export from ISO7816 to pySim commands References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23599 ) Change subject: shell: Move dir,tree,export from ISO7816 to pySim commands ...................................................................... shell: Move dir,tree,export from ISO7816 to pySim commands pySim has the notion of command categories. The ISO7816 category should only contain commands such as SELECT or CHV management which really is ISO7816. Custom commands like 'tree' or 'export' are pySim specific and hence go into a different category. Change-Id: Id38c8190c6279d037fe266c586065f1507a02932 --- M pySim-shell.py 1 file changed, 101 insertions(+), 96 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/99/23599/1 diff --git a/pySim-shell.py b/pySim-shell.py index ef76cb2..ae8a5a2 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -55,7 +55,7 @@ class PysimApp(cmd2.Cmd): CUSTOM_CATEGORY = 'pySim Commands' def __init__(self, card, rs, script = None): - basic_commands = [Iso7816Commands()] + basic_commands = [Iso7816Commands(), PySimCommands()] super().__init__(persistent_history_file='~/.pysim_shell_history', allow_cli_args=False, use_ipython=True, auto_load_commands=False, command_sets=basic_commands, startup_script=script) self.intro = style('Welcome to pySim-shell!', fg=fg.red) @@ -118,104 +118,11 @@ else: self.poutput("no description available") - - at with_default_category('ISO7816 Commands') -class Iso7816Commands(CommandSet): + at with_default_category('pySim Commands') +class PySimCommands(CommandSet): def __init__(self): super().__init__() - def do_select(self, opts): - """SELECT a File (ADF/DF/EF)""" - if len(opts.arg_list) == 0: - path_list = self._cmd.rs.selected_file.fully_qualified_path(True) - path_list_fid = self._cmd.rs.selected_file.fully_qualified_path(False) - self._cmd.poutput("currently selected file: " + '/'.join(path_list) + " (" + '/'.join(path_list_fid) + ")") - return - - path = opts.arg_list[0] - fcp_dec = self._cmd.rs.select(path, self._cmd) - self._cmd.update_prompt() - self._cmd.poutput(json.dumps(fcp_dec, indent=4)) - - def complete_select(self, text, line, begidx, endidx) -> List[str]: - """Command Line tab completion for SELECT""" - index_dict = { 1: self._cmd.rs.selected_file.get_selectable_names() } - return self._cmd.index_based_complete(text, line, begidx, endidx, index_dict=index_dict) - - def get_code(self, code): - """Use code either directly or try to get it from external data source""" - auto = ('PIN1', 'PIN2', 'PUK1', 'PUK2') - - if str(code).upper() not in auto: - return sanitize_pin_adm(code) - - result = card_key_provider_get_field(str(code), key='ICCID', value=self._cmd.iccid) - result = sanitize_pin_adm(result) - if result: - self._cmd.poutput("found %s '%s' for ICCID '%s'" % (code.upper(), result, self._cmd.iccid)) - else: - self._cmd.poutput("cannot find %s for ICCID '%s'" % (code.upper(), self._cmd.iccid)) - return result - - verify_chv_parser = argparse.ArgumentParser() - verify_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') - verify_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') - - @cmd2.with_argparser(verify_chv_parser) - def do_verify_chv(self, opts): - """Verify (authenticate) using specified PIN code""" - pin = self.get_code(opts.pin_code) - (data, sw) = self._cmd.card._scc.verify_chv(opts.pin_nr, h2b(pin)) - self._cmd.poutput("CHV verfication successful") - - unblock_chv_parser = argparse.ArgumentParser() - unblock_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') - unblock_chv_parser.add_argument('puk_code', type=str, help='PUK code digits \"PUK1\" or \"PUK2\" to get PUK code from external data source') - unblock_chv_parser.add_argument('new_pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') - - @cmd2.with_argparser(unblock_chv_parser) - def do_unblock_chv(self, opts): - """Unblock PIN code using specified PUK code""" - new_pin = self.get_code(opts.new_pin_code) - puk = self.get_code(opts.puk_code) - (data, sw) = self._cmd.card._scc.unblock_chv(opts.pin_nr, h2b(puk), h2b(new_pin)) - self._cmd.poutput("CHV unblock successful") - - change_chv_parser = argparse.ArgumentParser() - change_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') - change_chv_parser.add_argument('pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') - change_chv_parser.add_argument('new_pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') - - @cmd2.with_argparser(change_chv_parser) - def do_change_chv(self, opts): - """Change PIN code to a new PIN code""" - new_pin = self.get_code(opts.new_pin_code) - pin = self.get_code(opts.pin_code) - (data, sw) = self._cmd.card._scc.change_chv(opts.pin_nr, h2b(pin), h2b(new_pin)) - self._cmd.poutput("CHV change successful") - - disable_chv_parser = argparse.ArgumentParser() - disable_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') - disable_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') - - @cmd2.with_argparser(disable_chv_parser) - def do_disable_chv(self, opts): - """Disable PIN code using specified PIN code""" - pin = self.get_code(opts.pin_code) - (data, sw) = self._cmd.card._scc.disable_chv(opts.pin_nr, h2b(pin)) - self._cmd.poutput("CHV disable successful") - - enable_chv_parser = argparse.ArgumentParser() - enable_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') - enable_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') - - @cmd2.with_argparser(enable_chv_parser) - def do_enable_chv(self, opts): - """Enable PIN code using specified PIN code""" - pin = self.get_code(opts.pin_code) - (data, sw) = self._cmd.card._scc.enable_chv(opts.pin_nr, h2b(pin)) - self._cmd.poutput("CHV enable successful") - dir_parser = argparse.ArgumentParser() dir_parser.add_argument('--fids', help='Show file identifiers', action='store_true') dir_parser.add_argument('--names', help='Show file names', action='store_true') @@ -347,6 +254,104 @@ raise RuntimeError("unable to export %i file(s)" % context['ERR']) + at with_default_category('ISO7816 Commands') +class Iso7816Commands(CommandSet): + def __init__(self): + super().__init__() + + def do_select(self, opts): + """SELECT a File (ADF/DF/EF)""" + if len(opts.arg_list) == 0: + path_list = self._cmd.rs.selected_file.fully_qualified_path(True) + path_list_fid = self._cmd.rs.selected_file.fully_qualified_path(False) + self._cmd.poutput("currently selected file: " + '/'.join(path_list) + " (" + '/'.join(path_list_fid) + ")") + return + + path = opts.arg_list[0] + fcp_dec = self._cmd.rs.select(path, self._cmd) + self._cmd.update_prompt() + self._cmd.poutput(json.dumps(fcp_dec, indent=4)) + + def complete_select(self, text, line, begidx, endidx) -> List[str]: + """Command Line tab completion for SELECT""" + index_dict = { 1: self._cmd.rs.selected_file.get_selectable_names() } + return self._cmd.index_based_complete(text, line, begidx, endidx, index_dict=index_dict) + + def get_code(self, code): + """Use code either directly or try to get it from external data source""" + auto = ('PIN1', 'PIN2', 'PUK1', 'PUK2') + + if str(code).upper() not in auto: + return sanitize_pin_adm(code) + + result = card_key_provider_get_field(str(code), key='ICCID', value=self._cmd.iccid) + result = sanitize_pin_adm(result) + if result: + self._cmd.poutput("found %s '%s' for ICCID '%s'" % (code.upper(), result, self._cmd.iccid)) + else: + self._cmd.poutput("cannot find %s for ICCID '%s'" % (code.upper(), self._cmd.iccid)) + return result + + verify_chv_parser = argparse.ArgumentParser() + verify_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + verify_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(verify_chv_parser) + def do_verify_chv(self, opts): + """Verify (authenticate) using specified PIN code""" + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.verify_chv(opts.pin_nr, h2b(pin)) + self._cmd.poutput("CHV verfication successful") + + unblock_chv_parser = argparse.ArgumentParser() + unblock_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + unblock_chv_parser.add_argument('puk_code', type=str, help='PUK code digits \"PUK1\" or \"PUK2\" to get PUK code from external data source') + unblock_chv_parser.add_argument('new_pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(unblock_chv_parser) + def do_unblock_chv(self, opts): + """Unblock PIN code using specified PUK code""" + new_pin = self.get_code(opts.new_pin_code) + puk = self.get_code(opts.puk_code) + (data, sw) = self._cmd.card._scc.unblock_chv(opts.pin_nr, h2b(puk), h2b(new_pin)) + self._cmd.poutput("CHV unblock successful") + + change_chv_parser = argparse.ArgumentParser() + change_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + change_chv_parser.add_argument('pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') + change_chv_parser.add_argument('new_pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(change_chv_parser) + def do_change_chv(self, opts): + """Change PIN code to a new PIN code""" + new_pin = self.get_code(opts.new_pin_code) + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.change_chv(opts.pin_nr, h2b(pin), h2b(new_pin)) + self._cmd.poutput("CHV change successful") + + disable_chv_parser = argparse.ArgumentParser() + disable_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + disable_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(disable_chv_parser) + def do_disable_chv(self, opts): + """Disable PIN code using specified PIN code""" + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.disable_chv(opts.pin_nr, h2b(pin)) + self._cmd.poutput("CHV disable successful") + + enable_chv_parser = argparse.ArgumentParser() + enable_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + enable_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(enable_chv_parser) + def do_enable_chv(self, opts): + """Enable PIN code using specified PIN code""" + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.enable_chv(opts.pin_nr, h2b(pin)) + self._cmd.poutput("CHV enable successful") + + def parse_options(): parser = OptionParser(usage="usage: %prog [options]") -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id38c8190c6279d037fe266c586065f1507a02932 Gerrit-Change-Number: 23599 Gerrit-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 Apr 3 09:35:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:35:37 +0000 Subject: Change in pysim[master]: docs: Initial documentation for pySim-shell References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23600 ) Change subject: docs: Initial documentation for pySim-shell ...................................................................... docs: Initial documentation for pySim-shell Many bits and pieces are still missing, but it's better than nothing... Change-Id: I19fd56aed251d064f3e5d37ffad39c1e3e39989e --- M docs/shell.rst 1 file changed, 227 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/00/23600/1 diff --git a/docs/shell.rst b/docs/shell.rst index f9a2c82..314f633 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -1,2 +1,229 @@ pySim-shell =========== + +pySim-shell is an interactive command line shell for all kind of interactions with SIM cards. + +The interactive shell provides command for + +* navigating the on-card filesystem hierarchy +* authenticating with PINs such as ADM1 +* CHV/PIN management (VERIFY, ENABLE, DISABLE, UNBLOCK) +* decoding of SELECT response (file control parameters) +* reading and writing of files and records in raw, hex-encoded binary format +* for some files where related support has been developed: + + * decoded reading (display file data in JSON format) + * decoded writing (encode from JSON to binary format, then write) + +By means of using the python ``cmd2`` module, various useful features improve usability: + +* history of commands (persistent across restarts) +* output re-direction to files on your computer +* output piping through external tools like 'grep' +* tab completion of commands and SELECT-able files/directories +* interactive help for all commands + + +cmd2 basics +----------- + +FIXME + + + +ISO7816 commands +---------------- + +This category of commands relates to commands that originate in the ISO 7861-4 specifications, +most of them have a 1:1 resemblance in the specification. + +select +~~~~~~ + +The ``select`` command is used to select a file, either by its FID, AID or by its symbolic name. + +Try ``select`` with tab-completion to get a list of all current selectable items: + +:: + + pySIM-shell (MF)> select + .. 2fe2 a0000000871004 EF.ARR MF + 2f00 3f00 ADF.ISIM EF.DIR + 2f05 7f10 ADF.USIM EF.ICCID + 2f06 7f20 DF.GSM EF.PL + 2f08 a0000000871002 DF.TELECOM EF.UMPC + +Use ``select`` with a specific FID or name to select the new file. + +This will + +* output the [JSON decoded, if possible] select response +* change the prompt to the newly selected file +* enable any commands specific to the newly-selected file + +:: + + pySIM-shell (MF)> select ADF.USIM + { + "file_descriptor": { + "shareable": true, + "file_type": "df", + "structure": "no_info_given" + }, + "df_name": "A0000000871002FFFFFFFF8907090000", + "proprietary_info": { + "uicc_characteristics": "71", + "available_memory": 101640 + }, + "life_cycle_status_int": "operational_activated", + "security_attrib_compact": "00", + "pin_status_template_do": "90017083010183018183010A83010B" + } + pySIM-shell (MF/ADF.USIM)> + + + +change_chv +~~~~~~~~~~ + +This command allows you to change a CHV (PIN). + + +disable_chv +~~~~~~~~~~~ + +This command allows you to disable a CHV (PIN). + +enable_chv +~~~~~~~~~~ + +This command allows you to enable a CHV (PIN). + + +unblock_chv +~~~~~~~~~~~ + +This command allows you to unblock a CHV (PIN) using the PUK. + +verify_chv +~~~~~~~~~~ + +This command allows you to verify a CHV (PIN), which is how the specifications call +it if you authenticate yourself with the said CHV/PIN. + + + +pySim commands +-------------- + +Commands in this category are pySim specific; they do not have a 1:1 correspondence to ISO 7816 +or 3GPP commands. Mostly they will operate either only on local (in-memory) state, or execute +a complex sequence of card-commands. + +desc +~~~~ + +Display human readable file description for the currently selected file. + + +dir +~~~ + +:: + + usage: dir [-h] [--fids] [--names] [--apps] [--all] + + Show a listing of files available in currently selected DF or MF + + optional arguments: + -h, --help show this help message and exit + --fids Show file identifiers + --names Show file names + --apps Show applications + --all Show all selectable identifiers and names + + +export +~~~~~~ + +tree +~~~~ + +verify_adm +~~~~~~~~~~ + + + +Linear Fixed EF commands +------------------------ + +These commands become enabled only when your currently selected file is of *Linear Fixed EF* type. + +read_record +~~~~~~~~~~~ + +read_record_decoded +~~~~~~~~~~~~~~~~~~~ + +update_record +~~~~~~~~~~~~~ + +update_record_decoded +~~~~~~~~~~~~~~~~~~~~~ + + + +Transparent EF commands +----------------------- + +These commands become enabled only when your currently selected file is of *Transparent EF* type. + + +read_binary +~~~~~~~~~~~ + +read_binary_decoded +~~~~~~~~~~~~~~~~~~~ + +update_binary +~~~~~~~~~~~~~ + +update_binary_decoded +~~~~~~~~~~~~~~~~~~~~~ + + + +cmd2 settable parameters +------------------------ + +``cmd2`` has the concept of *settable parameters* which act a bit like environment variables in an OS-level +shell: They can be read and set, and they will influence the behavior somehow. + +conserve_write +~~~~~~~~~~~~~~ + +If enabled, pySim will (when asked to write to a card) always first read the respective file/record and +verify if the to-be-written value differs from the current on-card value. If not, the write will be skipped. +Writes will only be performed if the new value is different from the current on-card value. + +If disabled, pySim will always write irrespective of the current/new value. + +debug +~~~~~ + +If enabled, full python back-traces will be displayed in case of exceptions + +numeric_path +~~~~~~~~~~~~ + +Boolean variable that determines if path (e.g. in prompt) is displayed with numeric FIDs or string names. + +:: + + pySIM-shell (MF/EF.ICCID)> set numeric_path True + numeric_path - was: False + now: True + pySIM-shell (3f00/2fe2)> set numeric_path False + numeric_path - was: True + now: False + pySIM-shell (MF/EF.ICCID)> help set -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I19fd56aed251d064f3e5d37ffad39c1e3e39989e Gerrit-Change-Number: 23600 Gerrit-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 Apr 3 09:49:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:49:54 +0000 Subject: Change in pysim[master]: transport: Pass status word interpreter to exception handler References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23601 ) Change subject: transport: Pass status word interpreter to exception handler ...................................................................... transport: Pass status word interpreter to exception handler Prior to this patch, any SwMatchError raised within the 'transport' would not be interpreted. EXCEPTION of type 'SwMatchError' occurred with message: 'SW match failed! Expected 9000 and got 6982.' vs (now) EXCEPTION of type 'SwMatchError' occurred with message: 'SW match failed! Expected 9000 and got 6982: Command not allowed - Security status not satisfied' Change-Id: I08b7f2b6bd422f7f2f36094bc8a29b187ff882a6 --- M pySim-shell.py M pySim/transport/__init__.py 2 files changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/01/23601/1 diff --git a/pySim-shell.py b/pySim-shell.py index ae8a5a2..e73ec35 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -433,6 +433,8 @@ profile.add_application(CardApplicationISIM) rs = RuntimeState(card, profile) + # inform the transport that we can do context-specific SW interpretation + sl.set_sw_interpreter(rs) # FIXME: do this dynamically rs.mf.add_file(DF_TELECOM()) diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 10475c7..ea774cf 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -28,6 +28,12 @@ class LinkBase(object): """Base class for link/transport to card.""" + sw_interpreter = None + + def set_sw_interpreter(self, interp): + """Set an (optional) status word interpreter.""" + self.sw_interpreter = interp + def wait_for_card(self, timeout:int=None, newcardonly:bool=False): """Wait for a card and connect to it @@ -103,7 +109,7 @@ rv = self.send_apdu(pdu) if not sw_match(rv[1], sw): - raise SwMatchError(rv[1], sw.lower()) + raise SwMatchError(rv[1], sw.lower(), self.sw_interpreter) return rv def init_reader(opts) -> Optional[LinkBase]: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I08b7f2b6bd422f7f2f36094bc8a29b187ff882a6 Gerrit-Change-Number: 23601 Gerrit-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 Apr 3 09:55:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:55:07 +0000 Subject: Change in pysim[master]: Move init_reader() from utils.py to transport/__init__.py 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/+/23596 to look at the new patch set (#2). Change subject: Move init_reader() from utils.py to transport/__init__.py ...................................................................... Move init_reader() from utils.py to transport/__init__.py This avoids a circular dependency when introducing type annotations. Change-Id: I168597ac14497fb188a15cb632f32452128bc1c6 --- M pySim-prog.py M pySim-read.py M pySim-shell.py M pySim/transport/__init__.py M pySim/utils.py 5 files changed, 35 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/96/23596/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I168597ac14497fb188a15cb632f32452128bc1c6 Gerrit-Change-Number: 23596 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 Apr 3 09:55:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:55:07 +0000 Subject: Change in pysim[master]: utils.py: Add more type annotations 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/+/23594 to look at the new patch set (#2). Change subject: utils.py: Add more type annotations ...................................................................... utils.py: Add more type annotations Change-Id: I50a0a07132890af0817f4ff0ce9fec53b7512522 --- M pySim/utils.py 1 file changed, 33 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/94/23594/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I50a0a07132890af0817f4ff0ce9fec53b7512522 Gerrit-Change-Number: 23594 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 Apr 3 09:55:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:55:07 +0000 Subject: Change in pysim[master]: cosmetic: fix typo in comment In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23597 to look at the new patch set (#2). Change subject: cosmetic: fix typo in comment ...................................................................... cosmetic: fix typo in comment Change-Id: Iac8b310a470b3ad8dee5f61342fd5acedbbd6e5d --- M pySim/utils.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/97/23597/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iac8b310a470b3ad8dee5f61342fd5acedbbd6e5d Gerrit-Change-Number: 23597 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 Apr 3 09:55:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:55:07 +0000 Subject: Change in pysim[master]: docs: Update copyright statement 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/+/23598 to look at the new patch set (#2). Change subject: docs: Update copyright statement ...................................................................... docs: Update copyright statement * list supreeth for his many contributions * update copyright years Change-Id: I431e54000e6d260d8173424496d11904599171d8 --- M docs/conf.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/98/23598/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I431e54000e6d260d8173424496d11904599171d8 Gerrit-Change-Number: 23598 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 Apr 3 09:55:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:55:07 +0000 Subject: Change in pysim[master]: shell: Move dir, tree, export from ISO7816 to pySim 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/pysim/+/23599 to look at the new patch set (#2). Change subject: shell: Move dir,tree,export from ISO7816 to pySim commands ...................................................................... shell: Move dir,tree,export from ISO7816 to pySim commands pySim has the notion of command categories. The ISO7816 category should only contain commands such as SELECT or CHV management which really is ISO7816. Custom commands like 'tree' or 'export' are pySim specific and hence go into a different category. Change-Id: Id38c8190c6279d037fe266c586065f1507a02932 --- M pySim-shell.py 1 file changed, 101 insertions(+), 96 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/99/23599/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id38c8190c6279d037fe266c586065f1507a02932 Gerrit-Change-Number: 23599 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 Apr 3 09:55:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:55:07 +0000 Subject: Change in pysim[master]: docs: Initial documentation for pySim-shell 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/+/23600 to look at the new patch set (#2). Change subject: docs: Initial documentation for pySim-shell ...................................................................... docs: Initial documentation for pySim-shell Many bits and pieces are still missing, but it's better than nothing... Change-Id: I19fd56aed251d064f3e5d37ffad39c1e3e39989e --- M docs/shell.rst 1 file changed, 227 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/00/23600/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I19fd56aed251d064f3e5d37ffad39c1e3e39989e Gerrit-Change-Number: 23600 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 Apr 3 09:55:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:55:07 +0000 Subject: Change in pysim[master]: transport: Pass status word interpreter to exception handler In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/pysim/+/23601 ) Change subject: transport: Pass status word interpreter to exception handler ...................................................................... transport: Pass status word interpreter to exception handler Prior to this patch, any SwMatchError raised within the 'transport' would not be interpreted. EXCEPTION of type 'SwMatchError' occurred with message: 'SW match failed! Expected 9000 and got 6982.' vs (now) EXCEPTION of type 'SwMatchError' occurred with message: 'SW match failed! Expected 9000 and got 6982: Command not allowed - Security status not satisfied' Change-Id: I08b7f2b6bd422f7f2f36094bc8a29b187ff882a6 --- M pySim-shell.py M pySim/transport/__init__.py 2 files changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/01/23601/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I08b7f2b6bd422f7f2f36094bc8a29b187ff882a6 Gerrit-Change-Number: 23601 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 Sat Apr 3 09:56:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:56:44 +0000 Subject: Change in pysim[master]: cosmetic: fix typo in comment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23597 ) Change subject: cosmetic: fix typo in comment ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iac8b310a470b3ad8dee5f61342fd5acedbbd6e5d Gerrit-Change-Number: 23597 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 03 Apr 2021 09: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 Sat Apr 3 09:56:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:56:47 +0000 Subject: Change in pysim[master]: docs: Update copyright statement In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23598 ) Change subject: docs: Update copyright statement ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I431e54000e6d260d8173424496d11904599171d8 Gerrit-Change-Number: 23598 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 03 Apr 2021 09:56: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 Sat Apr 3 09:57:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 09:57:50 +0000 Subject: Change in pysim[master]: filesystem.py: Fix type annotation of read_binary_dec() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23592 ) Change subject: filesystem.py: Fix type annotation of read_binary_dec() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23592 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I781fc0c564a318a6f9b2ec8dccf9f8865bff0e48 Gerrit-Change-Number: 23592 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 03 Apr 2021 09:57: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 Apr 3 13:15:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 13:15:40 +0000 Subject: Change in pysim[master]: Introduce setuptools support References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23602 ) Change subject: Introduce setuptools support ...................................................................... Introduce setuptools support Add a pyproject.toml and setup.py for using setuptools to install pySim and its upstream dependencies. Change-Id: I5698f3b29184340db69a156f985aa3c78d9b5674 --- A pyproject.toml A setup.py 2 files changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/02/23602/1 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..9787c3b --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..d9f742c --- /dev/null +++ b/setup.py @@ -0,0 +1,22 @@ +from setuptools import setup + +setup( + name='pySim', + version='1.0', + packages=['pySim'], + url='https://osmocom.org/projects/pysim/wiki', + license='GPLv2', + author_email='simtrace at lists.osmocom.org', + description='Tools related to SIM/USIM/ISIM cards', + install_requires=[ + "pyscard", + "serial", + "pytlv", + "cmd2" + ], + scripts=[ + 'pySim-prog.py', + 'pySim-read.py', + 'pySim-shell.py' + ] +) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I5698f3b29184340db69a156f985aa3c78d9b5674 Gerrit-Change-Number: 23602 Gerrit-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 Apr 3 17:56:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 17:56:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23570 ) Change subject: SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I821d998704756fa30278f41d0371051db9d3fc58 Gerrit-Change-Number: 23570 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 03 Apr 2021 17: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 Sat Apr 3 17:56:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 17:56:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Implement minimal PCU-side SNS functionality In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23572 ) Change subject: NS_Emulation: Implement minimal PCU-side SNS functionality ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id1fb0fcb7a497a9614e82beb8a2c64b5af88150d Gerrit-Change-Number: 23572 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 03 Apr 2021 17:56:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 17:56:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 17:56:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Update config for IP BSS to use SNS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23569 ) Change subject: gbproxy: Update config for IP BSS to use SNS ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90bd101096979b170c38fa2a80abb80d296c4d2e Gerrit-Change-Number: 23569 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 03 Apr 2021 17: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 Sat Apr 3 17:56:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 17:56:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23570 ) Change subject: SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN ...................................................................... SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN Change-Id: I821d998704756fa30278f41d0371051db9d3fc58 --- M library/RAW_NS.ttcnpp M pcu/osmo-pcu-sns.cfg M sgsn/SGSN_Tests_NS.ttcn A sgsn/SGSN_Tests_SNS.cfg A sgsn/osmo-sgsn.sns.cfg 5 files changed, 261 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/library/RAW_NS.ttcnpp b/library/RAW_NS.ttcnpp index 76ac0a2..ff73348 100644 --- a/library/RAW_NS.ttcnpp +++ b/library/RAW_NS.ttcnpp @@ -34,6 +34,7 @@ #endif var NSConfiguration g_nsconfig; timer g_T_guard; + var boolean g_handle_rx_alive := false; } public altstep as_Tguard() runs on RAW_NS_CT { @@ -99,6 +100,7 @@ var default d := activate(ax_rx_fail_on_any_ns()); alt { [] NSCP[idx].receive(PDU_NS: exp_rx) -> value nrf { } + [g_handle_rx_alive] as_rx_alive_tx_ack(); } deactivate(d); return nrf; @@ -109,6 +111,7 @@ NSCP[idx].send(t_NS_ALIVE); alt { [] NSCP[idx].receive(t_NS_ALIVE_ACK); + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } } } @@ -122,6 +125,7 @@ [] NSCP[idx].receive(t_NS_ALIVE_ACK) { setverdict(fail, "Received unexpected NS-ALIVE ACK"); } + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } [] T.timeout { setverdict(pass); @@ -138,6 +142,7 @@ [] NSCP[idx].receive(ts_NS_RESET_ACK(g_nsconfig.nsvc[idx].nsvci, g_nsconfig.nsei)) { setverdict(pass); } + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } [] T.timeout { setverdict(fail, "Failed to receive a RESET ACK"); @@ -150,6 +155,7 @@ NSCP[idx].send(ts_NS_BLOCK(cause, g_nsconfig.nsvc[idx].nsvci)); alt { [] NSCP[idx].receive(tr_NS_BLOCK_ACK(g_nsconfig.nsvc[idx].nsvci)); + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } } } @@ -159,6 +165,7 @@ NSCP[idx].send(t_NS_UNBLOCK); alt { [] NSCP[idx].receive(t_NS_UNBLOCK_ACK); + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } } } @@ -198,6 +205,7 @@ [not exp_ack] T.timeout { setverdict(pass); } + [g_handle_rx_alive] as_rx_alive_tx_ack(); [] NSCP[idx].receive { repeat; } } } @@ -298,22 +306,23 @@ } /* perform outbound SNS-SIZE procedure */ -function f_outgoing_sns_size(template (omit) NsCause cause := omit, integer idx:= 0) +function f_outgoing_sns_size(template (omit) NsCause cause := omit, integer max_nsvcs := 1, + integer num_ip := 1, integer idx:= 0) runs on RAW_NS_CT { log("f_outgoing_sns_size(idx=", idx, ")"); var PDU_NS rx; var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { - NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, - num_v4 := 1, num_v6 := omit) + NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := max_nsvcs, + num_v4 := num_ip, num_v6 := omit) ); } else { - NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, - num_v4 := omit, num_v6 := 1) + NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := max_nsvcs, + num_v4 := omit, num_v6 := num_ip) ); } - /* expect one single SNS-SIZE with RESET flag; 4x v4 EP; no v6 EP */ + /* expect one single SNS-SIZE */ rx := f_ns_exp(tr_SNS_SIZE_ACK(g_nsconfig.nsei, cause), idx); } diff --git a/pcu/osmo-pcu-sns.cfg b/pcu/osmo-pcu-sns.cfg index a8a26bd..cfe4ccf 100644 --- a/pcu/osmo-pcu-sns.cfg +++ b/pcu/osmo-pcu-sns.cfg @@ -23,3 +23,5 @@ gamma 0 pcu-socket /tmp/pcu_bts gb-dialect ip-sns +ns + timer tns-test 10 diff --git a/sgsn/SGSN_Tests_NS.ttcn b/sgsn/SGSN_Tests_NS.ttcn index dd68b05..e5d012f 100644 --- a/sgsn/SGSN_Tests_NS.ttcn +++ b/sgsn/SGSN_Tests_NS.ttcn @@ -47,9 +47,74 @@ f_clean_ns_codec(); } +/* perform outgoing SNS-SIZE procedure */ +testcase TC_SNS_size() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + setverdict(pass); +} + +/* outgoing SNS-SIZE procedure with more BSS side IPs than SGSN can handle */ +testcase TC_SNS_size_too_big() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(cause := NS_CAUSE_INVALID_NR_OF_NSVCS, num_ip := 100); + setverdict(pass); +} + +/* perform outgoing SNS-CONFIG procedure (for BSS) */ +testcase TC_SNS_config_bss() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + setverdict(pass); +} + +/* perform incoming SNS-CONFIG procedure (for SGSN) */ +testcase TC_SNS_config_sgsn() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + setverdict(pass); +} + +/* perform full SNS handshake and then outbound NS-ALIVE */ +testcase TC_SNS_and_alive() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 120.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + f_outgoing_ns_alive(); + setverdict(pass); +} + control { - execute( TC_NS_connect_alive() ); - execute( TC_NS_connect_reset() ); + + if (mp_nsconfig[0].handle_sns) { + execute( TC_SNS_size() ); + execute( TC_SNS_size_too_big() ); + execute( TC_SNS_config_bss() ); + execute( TC_SNS_config_sgsn() ); + execute( TC_SNS_and_alive() ); + } else { + execute( TC_NS_connect_alive() ); + execute( TC_NS_connect_reset() ); + } } } diff --git a/sgsn/SGSN_Tests_SNS.cfg b/sgsn/SGSN_Tests_SNS.cfg new file mode 100644 index 0000000..d4dcea0 --- /dev/null +++ b/sgsn/SGSN_Tests_SNS.cfg @@ -0,0 +1,72 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./SGSN_Tests.default" + +# Local configuration below + +[LOGGING] + +[TESTPORT_PARAMETERS] +*.SGSNVTY.CTRL_HOSTNAME := "127.0.0.10" + +[MODULE_PARAMETERS] +SGSN_Tests.mp_nsconfig := { + { + handle_sns := true, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.103", + remote_ip := "127.0.0.10" + } + } + } + } + }, + { + handle_sns := true, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.103", + remote_ip := "127.0.0.10" + } + } + } + } + }, + { + handle_sns := true, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.103", + remote_ip := "127.0.0.10" + } + } + } + } + } +} +SGSN_Tests.mp_ranap_cfg := { + { + sctp_addr := { 23908, "127.0.0.103", 2905, "127.0.0.200" } + } +} +SGSN_Tests.mp_hlr_ip := "127.0.0.103" +SGSN_Tests.mp_ggsn_ip := "127.0.0.103" + +[MAIN_CONTROLLER] + +[EXECUTE] +SGSN_Tests.control +SGSN_Tests_Iu.control +SGSN_Tests_NS.control diff --git a/sgsn/osmo-sgsn.sns.cfg b/sgsn/osmo-sgsn.sns.cfg new file mode 100644 index 0000000..69f5147 --- /dev/null +++ b/sgsn/osmo-sgsn.sns.cfg @@ -0,0 +1,105 @@ +! +! OsmoSGSN (1.2.0.46-e77e-dirty) configuration saved from vty +!! +! +log gsmtap 127.0.0.1 + logging level set-all debug + logging filter all 1 +! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging print category-hex 0 + logging timestamp 1 + logging print extended-timestamp 1 + logging print file 1 + logging level all everything + logging level mm debug + logging level pag notice + logging level meas notice + logging level ref notice + logging level gprs debug + logging level lns debug + logging level lbssgp info + logging level llc debug + logging level sndcp debug + logging level slhc notice + logging level ranap info + logging level sua info + logging level v42bis info + logging level lglobal info + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms notice + logging level lctrl notice + logging level lgtp debug + logging level lstats notice + logging level lgsup debug + logging level loap notice + logging level lss7 notice + logging level lsccp info + logging level lsua notice + logging level lm3ua notice + logging level lmgcp notice +! +stats interval 5 +! +line vty + no login + bind 127.0.0.10 +ctrl + bind 127.0.0.10 +! +cs7 instance 0 + point-code 0.23.4 + asp asp-clnt-OsmoSGSN-A 2905 0 m3ua + remote-ip 127.0.0.200 + as as-clnt-OsmoSGSN-A m3ua + asp asp-clnt-OsmoSGSN-A + routing-key 3 0.23.4 +ns + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 30 + timer tns-alive 3 + timer tns-alive-retries 10 + bind udp local10 + listen 127.0.0.10 23000 + accept-dynamic-ip-sns + bind udp local10_1 + listen 127.0.0.10 23001 + ip-sns-default bind local10 + !ip-sns-default bind local10_1 +bssgp +sgsn + gtp local-ip 127.0.0.10 + ggsn 0 remote-ip 127.0.0.103 + ggsn 0 gtp-version 1 + gsup remote-ip 127.0.0.103 + gsup remote-port 4222 + auth-policy remote + gsup oap-id 0 + ! apn * ggsn 0 + no cdr filename + no cdr trap + cdr interval 600 + timer t3312 600 + timer t3322 6 + timer t3350 6 + timer t3360 6 + timer t3370 6 + timer t3313 30 + timer t3314 44 + timer t3316 44 + timer t3385 8 + timer t3386 8 + timer t3395 8 + timer t3397 8 + no compression rfc1144 + no compression v42bis -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I821d998704756fa30278f41d0371051db9d3fc58 Gerrit-Change-Number: 23570 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 Sat Apr 3 17:56:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 17:56:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Implement minimal PCU-side SNS functionality In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23572 ) Change subject: NS_Emulation: Implement minimal PCU-side SNS functionality ...................................................................... NS_Emulation: Implement minimal PCU-side SNS functionality Using this code, we can run a TTCN3 test using NS_Emulation in IP-SNS mode. It only covers the most basic cases but works for simple scenarios. Change-Id: Id1fb0fcb7a497a9614e82beb8a2c64b5af88150d --- M library/NS_Emulation.ttcnpp 1 file changed, 79 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index d58dc45..b5fc807 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -413,6 +413,9 @@ f_nsvc_add(nsvc_cfg); } + if (g_config.handle_sns and not g_config.role_sgsn) { + f_sns_outbound_size_config(); + } while (true) { alt { [] as_ns_common() {} @@ -473,6 +476,7 @@ } [g_config.handle_sns and g_config.role_sgsn] as_vcg_sns_sgsn(); + [g_config.handle_sns and not g_config.role_sgsn] as_vcg_sns_pcu(); [] NSVC.receive(tr_NsUdInd(?, ?, ?)) -> value rx_nsudi { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, @@ -545,6 +549,81 @@ } } + /* perform an outbound SNS-SIZE + SNS-CONFIG */ + private function f_sns_outbound_size_config(integer idx := 0) runs on NS_CT { + var NSVCConfiguration nsvc_cfg := g_config.nsvc[idx]; + var NSVC_CT vc; + + if (nsvc_cfg.provider.ip.address_family == AF_INET) { + NSVC.send(SnsRequest:{nsvc_cfg.nsvci, ts_SNS_SIZE(g_config.nsei, rst_flag := true, + max_nsvcs := 1, + num_v4 := 1, num_v6 := omit)}); + } else { + NSVC.send(SnsRequest:{nsvc_cfg.nsvci, ts_SNS_SIZE(g_config.nsei, rst_flag := true, + max_nsvcs := 1, + num_v4 := omit, num_v6 := 1)}); + } + /* expect SIZE-ACK */ + alt { + [] NSVC.receive(SnsIndication:{?, tr_SNS_SIZE_ACK(g_config.nsei, omit)}) -> sender vc; + [] NSVC.receive(NsStatusIndication:?) { repeat; } + } + /* send a SNS-CONFIG in response and expect a SNS-CONFIG-ACK */ + var template (omit) IP4_Elements v4; + var template (omit) IP6_Elements v6; + gen_sns_ip_elems(v4, v6); + NSVC.send(SnsRequest:{nsvc_cfg.nsvci, + ts_SNS_CONFIG(g_config.nsei, true, v4, v6)}) to vc; + alt { + [] as_ns_common_status() { + repeat; + } + [] NSVC.receive(SnsIndication:{?, + tr_SNS_CONFIG_ACK(g_config.nsei, omit)}) from vc { + /* success */ + log("Outbound SNS Config succeeded."); + } + [] NSVC.receive(SnsIndication:{?, + tr_SNS_CONFIG_ACK(g_config.nsei, ?)}) from vc { + setverdict(fail, "Unexpected SNS-CONFIG-NACK"); + self.stop; + } + } + } + + /* simple IP Sub-Network Service responder for the PCU/BSS side. This is not a full implementation + * of the protocol, merely sufficient to make the SGSN side happy to proceed */ + private altstep as_vcg_sns_pcu() runs on NS_CT { + var SnsIndication sind; + var NSVC_CT vc; + + /* FIXME: We assume our peer has only one endpoint */ + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, true, + {tr_SNS_IPv4(g_config.nsvc[0].provider.ip.remote_ip, + g_config.nsvc[0].provider.ip.remote_udp_port)})}) + -> value sind sender vc { + /* blindly acknowledge whatever the SGSN sends */ + NSVC.send(SnsRequest:{sind.nsvci, ts_SNS_CONFIG_ACK(g_config.nsei, omit)}) to vc; + log("Inbound SNS Config succeeded."); + /* switch to "alive" state already before sending the SNS-CONFIG, as otherwise + * there would be a race condition between internally performing the state change + * of all related NS-VCs and the first incoming NS-PDU after SNS-CONFIG-ACK */ + f_broadcast_ns_ctrl(NsCtrlRequest:ForceAliveState); + /* inform all NS-VC that they are now considered alive */ + f_broadcast_ns_ctrl(NsCtrlRequest:StartAliveProcedure); + } + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, false, ?)}) { /* ignore */} + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, true, ?)}) { + setverdict(fail, "Unexpected SNS-CONFIG content"); + self.stop; + } + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(?, ?, ?)}) { + setverdict(fail, "SNS-CONFIG from unexpected NSEI"); + self.stop; + } + + } + /* simple IP Sub-Network Service responder for the SGSN side. This is not a full implementation * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ private altstep as_vcg_sns_sgsn() runs on NS_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id1fb0fcb7a497a9614e82beb8a2c64b5af88150d Gerrit-Change-Number: 23572 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 Apr 3 17:56:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 17:56:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Update config for IP BSS to use SNS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23569 ) Change subject: gbproxy: Update config for IP BSS to use SNS ...................................................................... gbproxy: Update config for IP BSS to use SNS This reflects the more realistic use cases: IP-SNS is used on the BSS side, where osmo-gbproxy then behaves in SGSN role. Change-Id: I90bd101096979b170c38fa2a80abb80d296c4d2e --- M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.cfg 2 files changed, 13 insertions(+), 9 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 d3c6df6..dcf72b0 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -134,7 +134,7 @@ { nsei := 2001, role_sgsn := false, - handle_sns := false, + handle_sns := true, nsvc := { { provider := { @@ -143,7 +143,7 @@ local_udp_port := 21010, local_ip := "127.0.1.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1", + remote_ip := "127.0.0.2", data_weight := 1, signalling_weight := 1 } @@ -155,7 +155,7 @@ { nsei := 2002, role_sgsn := false, - handle_sns := false, + handle_sns := true, nsvc := { { provider := { @@ -164,7 +164,7 @@ local_udp_port := 21020, local_ip := "127.0.2.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1", + remote_ip := "127.0.0.2", data_weight := 1, signalling_weight := 1 } @@ -176,7 +176,7 @@ { nsei := 2003, role_sgsn := false, - handle_sns := false, + handle_sns := true, nsvc := { { provider := { @@ -185,7 +185,7 @@ local_udp_port := 21030, local_ip := "127.0.3.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1", + remote_ip := "127.0.0.2", data_weight := 1, signalling_weight := 1 } diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index efd0499..b2ccb3b 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -24,15 +24,19 @@ name second nri add 4 ns - bind udp local + bind udp sgsn-side listen 127.0.0.1 23000 accept-ipaccess nse 101 - ip-sns-bind local + ip-sns-bind sgsn-side ip-sns-remote 127.0.0.10 7777 nse 102 - ip-sns-bind local + ip-sns-bind sgsn-side ip-sns-remote 127.0.0.11 8888 + bind udp bss-side + listen 127.0.0.2 23000 + accept-dynamic-ip-sns + ip-sns-default bind bss-side timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90bd101096979b170c38fa2a80abb80d296c4d2e Gerrit-Change-Number: 23569 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 Sat Apr 3 17:58:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 17:58:15 +0000 Subject: Change in libosmocore[master]: ns2: Dump frame relay state to VTY during "show ns" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23546 ) Change subject: ns2: Dump frame relay state to VTY during "show ns" ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23546/1/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/23546/1/src/gb/gprs_ns2_vty.c at 2022 PS1, Line 2022: osmo_fr_network_dump_vty(vty, vty_fr_network); > I wonder why this is only in show ns, which is deprecated/hidden? maybe this is still useful to have [?] very nice catch. I wasn't even aware that it is supposed to be deprecated, didn't read the comments above. Let's see what Lynxis' thoughts were on this -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I798af3e97dc014b6e0fcde86560a1809852f7510 Gerrit-Change-Number: 23546 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 03 Apr 2021 17:58:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 18:07:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 18:07:19 +0000 Subject: Change in libosmocore[master]: ns2: remove "invalid NSEI" and "invalid NS-VCI" counters In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22563 ) Change subject: ns2: remove "invalid NSEI" and "invalid NS-VCI" counters ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iadb4baee6d459e2db7b16a64a213164572774a2e Gerrit-Change-Number: 22563 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 18:08:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 18:08:44 +0000 Subject: Change in osmo-bsc[master]: manual: Location Services: clarify BSC side address In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22081 ) Change subject: manual: Location Services: clarify BSC side address ...................................................................... Patch Set 1: another ping? This is getting somewhat tedious... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb Gerrit-Change-Number: 22081 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 03 Apr 2021 18:08: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 Sat Apr 3 18:09:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 18:09:06 +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: another ping? -- 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: Sat, 03 Apr 2021 18:09: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 Sat Apr 3 18:11:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 18:11:41 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/21118 ) Change subject: Configure E1 pcap file per line ...................................................................... Patch Set 5: > Patch Set 5: > I see the advantage of pcap-ng, but no I'm probably not going to learn how to do that. > > Please advise if you prefer I should fix up pespins comments or abandon. sorry for the very late response. As I didn't have time to work on the pcpa-ng approach, let's get this patch rebased (and the review comments adressed) so we can merge it. thanks! -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 5 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 03 Apr 2021 18:11: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 Sat Apr 3 18:23:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 18:23:00 +0000 Subject: Change in pysim[master]: jenkins.sh: Build documentation as part of build verification References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23603 ) Change subject: jenkins.sh: Build documentation as part of build verification ...................................................................... jenkins.sh: Build documentation as part of build verification Change-Id: Iea7547c81fcd3e4268da23c18ad56d841aaf7535 --- M contrib/jenkins.sh 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/03/23603/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e286047..efb913e 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -18,6 +18,11 @@ # Execute automatically discovered unit tests first python -m unittest discover -v -s tests/ +# attempt to build documentation +pip install sphinx +pip install sphinxcontrib-napoleon +(cd docs && make html) + +# run the test with physical cards cd pysim-testdata ../tests/pysim-test.sh - -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23603 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iea7547c81fcd3e4268da23c18ad56d841aaf7535 Gerrit-Change-Number: 23603 Gerrit-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 Apr 3 20:06:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 20:06:47 +0000 Subject: Change in pysim[master]: jenkins.sh: Build documentation as part of build verification In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23603 ) Change subject: jenkins.sh: Build documentation as part of build verification ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23603 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iea7547c81fcd3e4268da23c18ad56d841aaf7535 Gerrit-Change-Number: 23603 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 03 Apr 2021 20:06:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 20:07:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 20:07:02 +0000 Subject: Change in pysim[master]: jenkins.sh: Build documentation as part of build verification In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23603 ) Change subject: jenkins.sh: Build documentation as part of build verification ...................................................................... jenkins.sh: Build documentation as part of build verification Change-Id: Iea7547c81fcd3e4268da23c18ad56d841aaf7535 --- M contrib/jenkins.sh 1 file changed, 6 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e286047..efb913e 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -18,6 +18,11 @@ # Execute automatically discovered unit tests first python -m unittest discover -v -s tests/ +# attempt to build documentation +pip install sphinx +pip install sphinxcontrib-napoleon +(cd docs && make html) + +# run the test with physical cards cd pysim-testdata ../tests/pysim-test.sh - -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23603 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iea7547c81fcd3e4268da23c18ad56d841aaf7535 Gerrit-Change-Number: 23603 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 Apr 3 20:32:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 20:32:50 +0000 Subject: Change in pysim[master]: docs: Update copyright statement In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23598 ) Change subject: docs: Update copyright statement ...................................................................... docs: Update copyright statement * list supreeth for his many contributions * update copyright years Change-Id: I431e54000e6d260d8173424496d11904599171d8 --- M docs/conf.py 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/conf.py b/docs/conf.py index 1fb06da..add26d8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,8 +18,8 @@ # -- Project information ----------------------------------------------------- project = 'pysim' -copyright = '2021, Sylvain Munaut, Harald Welte, Philipp Maier' -author = 'Sylvain Munaut, Harald Welte, Philipp Maier' +copyright = '2009-2021 by Sylvain Munaut, Harald Welte, Philipp Maier, Supreeth Herle' +author = 'Sylvain Munaut, Harald Welte, Philipp Maier, Supreeth Herle' # -- General configuration --------------------------------------------------- -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I431e54000e6d260d8173424496d11904599171d8 Gerrit-Change-Number: 23598 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 Apr 3 20:33:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 3 Apr 2021 20:33:31 +0000 Subject: Change in pysim[master]: cosmetic: fix typo in comment In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23597 ) Change subject: cosmetic: fix typo in comment ...................................................................... cosmetic: fix typo in comment Change-Id: Iac8b310a470b3ad8dee5f61342fd5acedbbd6e5d --- M pySim/utils.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim/utils.py b/pySim/utils.py index 75106d8..a784b7e 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -625,7 +625,7 @@ """ The ADM pin can be supplied either in its hexadecimal form or as ascii string. This function checks the supplied opts parameter and - returns the pin_adm as hex encoded string, regardles in which form + returns the pin_adm as hex encoded string, regardless in which form it was originally supplied by the user """ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iac8b310a470b3ad8dee5f61342fd5acedbbd6e5d Gerrit-Change-Number: 23597 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 22:28:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 22:28:39 +0000 Subject: Change in pysim[master]: Add type annotations to card_data.py In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23590 ) Change subject: Add type annotations to card_data.py ...................................................................... Patch Set 1: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/pysim/+/23590/1/pySim/card_data.py File pySim/card_data.py: https://gerrit.osmocom.org/c/pysim/+/23590/1/pySim/card_data.py at 26 PS1, Line 26: card_data_provider = List[CardData] This looks wrong to me. It was a 'list' and now becomes a sub-type? It's not a list anymore. I guess what you meant is: card_data_provider: List[CardData] = [] but this is not going to work in Python 3.5, so instead: card_data_provider = [] # type: List[CardData] https://gerrit.osmocom.org/c/pysim/+/23590/1/pySim/card_data.py at 53 PS1, Line 53: get This is a new method, while the commit claims to add type annotations. Am I missing something? The fact that this method is supposed to return a dictionary, but does not return anything alone is odd. Looks like you wanted to add an abstract method, what should be accomplished using '@abc.abstractmethod' (the class itself needs to be inherited from 'abc.ABC'), and probably in a separate commit? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia09b3ecaa582d62a97c3adac2650686dc19d5ec1 Gerrit-Change-Number: 23590 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 03 Apr 2021 22:28: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 Sat Apr 3 22:51:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 22:51:11 +0000 Subject: Change in pysim[master]: rename card_data to card_key_provider. In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23591 ) Change subject: rename card_data to card_key_provider. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4c8e1be3e766f7c0565c07b39d48abf8adc375af Gerrit-Change-Number: 23591 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 03 Apr 2021 22:51:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 22:53:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 22:53:33 +0000 Subject: Change in pysim[master]: filesystem.py: Fix type annotation of read_binary_dec() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23592 ) Change subject: filesystem.py: Fix type annotation of read_binary_dec() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23592 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I781fc0c564a318a6f9b2ec8dccf9f8865bff0e48 Gerrit-Change-Number: 23592 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 03 Apr 2021 22: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 Sat Apr 3 23:04:16 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 23:04:16 +0000 Subject: Change in pysim[master]: card_key_provider: Documentation with sphinx / autodoc In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23593 ) Change subject: card_key_provider: Documentation with sphinx / autodoc ...................................................................... Patch Set 1: (4 comments) https://gerrit.osmocom.org/c/pysim/+/23593/1/pySim/card_key_provider.py File pySim/card_key_provider.py: https://gerrit.osmocom.org/c/pysim/+/23593/1/pySim/card_key_provider.py at 38 PS1, Line 38: Abstract Unrelated: if it's an *abstract* class, why is it inherited from 'object' instead of 'abc.ABC'? Why do abstract methods lack '@abc.abstractmethod'? See https://docs.python.org/3/library/abc.html. https://gerrit.osmocom.org/c/pysim/+/23593/1/pySim/card_key_provider.py at 94 PS1, Line 94: CSV file unrelated? https://gerrit.osmocom.org/c/pysim/+/23593/1/pySim/card_key_provider.py at 143 PS1, Line 143: element unrelated? https://gerrit.osmocom.org/c/pysim/+/23593/1/pySim/card_key_provider.py at 163 PS1, Line 163: element unrelated? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia41e14d643d452d92fc8d3c2fb9c4ac9021402e9 Gerrit-Change-Number: 23593 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 03 Apr 2021 23:04: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 Apr 3 23:09:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 23:09:12 +0000 Subject: Change in pysim[master]: Move init_reader() from utils.py to transport/__init__.py In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23596 ) Change subject: Move init_reader() from utils.py to transport/__init__.py ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/pysim/+/23596/2/pySim/transport/__init__.py File pySim/transport/__init__.py: https://gerrit.osmocom.org/c/pysim/+/23596/2/pySim/transport/__init__.py at 113 PS2, Line 113: sl:Optional[LinkBase] = None This is not going to work in EOL Python 3.5. I am personally fine with that, just letting you know since you do care about compatibility with Debian 9. To make it work, use the old syntax: sl = None # type: Optional[LinkBase] Looks ugly, but all code linters support this too. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I168597ac14497fb188a15cb632f32452128bc1c6 Gerrit-Change-Number: 23596 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 03 Apr 2021 23:09:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 23:33:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 23:33:22 +0000 Subject: Change in pysim[master]: utils.py: Add more type annotations In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23594 ) Change subject: utils.py: Add more type annotations ...................................................................... Patch Set 2: (14 comments) Some comments are not related to your change, but rather express my ideas on potential improvements. I could not resist while reading the code. https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py File pySim/utils.py: https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 31 PS2, Line 31: str "a string of hex nibbles" - Hexstr? https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 39 PS2, Line 39: str "a string of hex nibbles" - Hexstr? https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 54 PS2, Line 54: # List of bytes to string unrelated: this comment is out of sync with the docstring below: "List of bytes" vs "list of integers" https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 113 PS2, Line 113: return None A proper Pythonic approach would be to raise exceptions here... So either it returns something, or it fails. Also unrelated, of course. https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 157 PS2, Line 157: plmn Hexstr https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 166 PS2, Line 166: plmn Hexstr https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 192 PS2, Line 192: fivehexbytes:Hexstr I still find it odd that we (ab)use strings to represent bytes in a language where we have a special type for that... https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 278 PS2, Line 278: ->int cosmetic: missing space https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 290 PS2, Line 290: if imsi == None: Your type hint renders this check useless. I would remove it because it's wrong to pass None and expect this function to decode something. Looks like over-defensive programming to me. https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 298 PS2, Line 298: long bool https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 302 PS2, Line 302: if imsi == None: Same here. https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 350 PS2, Line 350: ef_msisdn Hexstr? https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 371 PS2, Line 371: return None I think we should rather 'raise ValueError' here and drop the 'Optional' from the returned value. Mixing a value, None, and exceptions is one of the worst things that I saw... Just an idea for a separate patch. https://gerrit.osmocom.org/c/pysim/+/23594/2/pySim/utils.py at 417 PS2, Line 417: st Hexstr? (not sure here, some magic happens on line 432) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I50a0a07132890af0817f4ff0ce9fec53b7512522 Gerrit-Change-Number: 23594 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 03 Apr 2021 23:33: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 Sat Apr 3 23:38:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 23:38:35 +0000 Subject: Change in pysim[master]: card_handler: clean-up In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23595 ) Change subject: card_handler: clean-up ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/pysim/+/23595/2/pySim/card_handler.py File pySim/card_handler.py: https://gerrit.osmocom.org/c/pysim/+/23595/2/pySim/card_handler.py at 34 PS2, Line 34: Abstract Let's please use Python's API for abstract classes: https://docs.python.org/3/library/abc.html. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23595 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I7168506cbebb1ebb67f47453419b860824912051 Gerrit-Change-Number: 23595 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 03 Apr 2021 23:38:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 23:40:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 23:40:37 +0000 Subject: Change in pysim[master]: shell: Move dir, tree, export from ISO7816 to pySim commands In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23599 ) Change subject: shell: Move dir,tree,export from ISO7816 to pySim commands ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id38c8190c6279d037fe266c586065f1507a02932 Gerrit-Change-Number: 23599 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 03 Apr 2021 23:40:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 23:42:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 23:42:51 +0000 Subject: Change in pysim[master]: docs: Initial documentation for pySim-shell In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23600 ) Change subject: docs: Initial documentation for pySim-shell ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I19fd56aed251d064f3e5d37ffad39c1e3e39989e Gerrit-Change-Number: 23600 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Sat, 03 Apr 2021 23:42:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 3 23:45:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 23:45:19 +0000 Subject: Change in pysim[master]: transport: Pass status word interpreter to exception handler In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23601 ) Change subject: transport: Pass status word interpreter to exception handler ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/pysim/+/23601/2/pySim/transport/__init__.py File pySim/transport/__init__.py: https://gerrit.osmocom.org/c/pysim/+/23601/2/pySim/transport/__init__.py at 33 PS2, Line 33: set_sw_interpreter Not sure what's the purpose of this method if it's just possible to assign 'sw_interpreter' of an instance directly. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I08b7f2b6bd422f7f2f36094bc8a29b187ff882a6 Gerrit-Change-Number: 23601 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 03 Apr 2021 23:45: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 Sat Apr 3 23:46:25 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 3 Apr 2021 23:46:25 +0000 Subject: Change in pysim[master]: Introduce setuptools support In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23602 ) Change subject: Introduce setuptools support ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I5698f3b29184340db69a156f985aa3c78d9b5674 Gerrit-Change-Number: 23602 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 03 Apr 2021 23:46:25 +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 Apr 4 01:42:29 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 04 Apr 2021 01:42:29 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <606919a0931d8_38382ac31c6845fc47598d@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: [ 201s] [COMPILING libboard/qmod/source/board_qmod.c] [ 201s] [COMPILING libboard/qmod/source/card_pres.c] [ 201s] [COMPILING libboard/qmod/source/i2c.c] [ 201s] [COMPILING libboard/qmod/source/wwan_led.c] [ 202s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 202s] [COMPILING apps/dfu/main.c] [ 202s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 202s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 202s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 203s] Memory region Used Size Region Size %age Used [ 203s] rom: 16592 B 16 KB 101.27% [ 203s] ram: 11680 B 48 KB 23.76/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' [ 203s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 208 bytes [ 203s] collect2: error: ld returned 1 exit status [ 203s] % [ 203s] make[2]: *** [Makefile:230: flash] Error 1 [ 203s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 203s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 203s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 203s] dh_auto_build: error: make -j1 returned exit code 2 [ 203s] make: *** [debian/rules:16: build] Error 25 [ 203s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 203s] ### VM INTERACTION START ### [ 206s] [ 192.175197] sysrq: Power Off [ 206s] [ 192.182825] reboot: Power down [ 206s] ### VM INTERACTION END ### [ 206s] [ 206s] lamb21 failed "build simtrace2_0.7.0.76.62ad.dsc" at Sun Apr 4 01:42:21 UTC 2021. [ 206s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Apr 4 01:45:36 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 04 Apr 2021 01:45:36 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <60691a5367b12_38382ac31c6845fc47624@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: [ 180s] [COMPILING apps/dfu/main.c] [ 180s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 180s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 180s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 181s] Memory region Used Size Region Size %age Used [ 181s] rom: 16600 B 16 KB 101.32% [ 181s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 181s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 181s] /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' [ 181s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 181s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 181s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 181s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 216 bytes [ 181s] collect2: error: ld returned 1 exit status [ 181s] % [ 181s] make[2]: *** [Makefile:230: flash] Error 1 [ 181s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 181s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 181s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 181s] dh_auto_build: error: make -j1 returned exit code 2 [ 181s] make: *** [debian/rules:16: build] Error 25 [ 181s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 181s] ### VM INTERACTION START ### [ 184s] [ 171.317235] sysrq: Power Off [ 184s] [ 171.322015] reboot: Power down [ 184s] ### VM INTERACTION END ### [ 184s] [ 184s] lamb05 failed "build simtrace2_0.7.0.76.62ad.dsc" at Sun Apr 4 01:45:22 UTC 2021. [ 184s] -- 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 Apr 4 12:16:17 2021 From: gerrit-no-reply at lists.osmocom.org (rousseau) Date: Sun, 4 Apr 2021 12:16:17 +0000 Subject: Change in osmo-ccid-firmware[master]: Fix typos in README.md References: Message-ID: rousseau has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23605 ) Change subject: Fix typos in README.md ...................................................................... Fix typos in README.md Change-Id: Ia2227b989dee0e57a41764ddfeca10e120c602e4 --- M README.md 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/05/23605/1 diff --git a/README.md b/README.md index a635dec..1098192 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ This repository contains a C-language implementation of the USB CCID (Smart Card Reader) device class. The code is written in a portable -fashin and can be found in the `ccid_common` sub-directory. +fashion and can be found in the `ccid_common` sub-directory. The code can be built to run as an userspace program on Linux, implementing a USB Gadget using the FunctionFS interface. For this @@ -31,7 +31,7 @@ Our coding standards are described at -We us a gerrit based patch submission/review process for managing +We use a gerrit based patch submission/review process for managing contributions. Please see for more details -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23605 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: Ia2227b989dee0e57a41764ddfeca10e120c602e4 Gerrit-Change-Number: 23605 Gerrit-PatchSet: 1 Gerrit-Owner: rousseau Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 13:43:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 13:43:19 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#8) to the change originally created by keith. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23574 ) Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Ignore CHANnel ReQuireD with Access Delay IE > 63 It is observed that a CHANnel ReQuireD with access delay greater than 63 can be received from the Ericsson RBS. This results in osmo-bsc sending back a CHANnel ACTIVation with a Timing Advance IE containing the access delay value. The RBS NACKs this, leading to a BORKEN Channel. This patch makes the maximum acceptable access delay vty-configurable and Ignores CHANnel ReQuireD RSL Messages with Access Delay IE greater than that configured. Default value is 63. Related: OS#5096 Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c 4 files changed, 33 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/74/23574/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 8 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 13:49:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 13:49:49 +0000 Subject: Change in pysim[master]: docs/shell.rst: Auto-generate shell comamnd reference References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23606 ) Change subject: docs/shell.rst: Auto-generate shell comamnd reference ...................................................................... docs/shell.rst: Auto-generate shell comamnd reference We use a slightly modified version of sphinx-argparse (with patch https://github.com/alex-rudakov/sphinx-argparse/pull/136 applied) in order to generate the command reference for each shell command in the manual. As the upstream repository seems unmaintained for ~2 years, let's use the osmcoom 'fork' with that above-mentioned patch applied. Change-Id: I134f267cf53c7ecbc8cbfb33a8766d63bf4a8582 --- M contrib/jenkins.sh M docs/conf.py M docs/shell.rst 3 files changed, 55 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/06/23606/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index efb913e..60061e3 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -21,6 +21,7 @@ # attempt to build documentation pip install sphinx pip install sphinxcontrib-napoleon +pip3 install -e 'git+https://github.com/osmocom/sphinx-argparse at master#egg=sphinx-argparse' (cd docs && make html) # run the test with physical cards diff --git a/docs/conf.py b/docs/conf.py index add26d8..2117172 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,6 +29,7 @@ # ones. extensions = [ "sphinx.ext.autodoc", + "sphinxarg.ext", "sphinx.ext.autosectionlabel", "sphinx.ext.napoleon" ] diff --git a/docs/shell.rst b/docs/shell.rst index 314f633..6d3375f 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -85,32 +85,41 @@ change_chv ~~~~~~~~~~ - -This command allows you to change a CHV (PIN). +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.change_chv_parser disable_chv ~~~~~~~~~~~ +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.disable_chv_parser -This command allows you to disable a CHV (PIN). enable_chv ~~~~~~~~~~ - -This command allows you to enable a CHV (PIN). +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.enable_chv_parser unblock_chv ~~~~~~~~~~~ +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.unblock_chv_parser -This command allows you to unblock a CHV (PIN) using the PUK. verify_chv ~~~~~~~~~~ - This command allows you to verify a CHV (PIN), which is how the specifications call it if you authenticate yourself with the said CHV/PIN. +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.verify_chv_parser + pySim commands @@ -128,30 +137,26 @@ dir ~~~ - -:: - - usage: dir [-h] [--fids] [--names] [--apps] [--all] - - Show a listing of files available in currently selected DF or MF - - optional arguments: - -h, --help show this help message and exit - --fids Show file identifiers - --names Show file names - --apps Show applications - --all Show all selectable identifiers and names +.. argparse:: + :module: pySim-shell + :func: PySimCommands.dir_parser export ~~~~~~ +.. argparse:: + :module: pySim-shell + :func: PySimCommands.export_parser + tree ~~~~ +FIXME + verify_adm ~~~~~~~~~~ - +FIXME Linear Fixed EF commands @@ -161,15 +166,30 @@ read_record ~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.read_rec_parser + read_record_decoded ~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.read_rec_dec_parser + update_record ~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.upd_rec_parser + update_record_decoded ~~~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.upd_rec_dec_parser @@ -181,15 +201,27 @@ read_binary ~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: TransparentEF.ShellCommands.read_bin_parser + read_binary_decoded ~~~~~~~~~~~~~~~~~~~ +Read + decode data from a transparent EF update_binary ~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: TransparentEF.ShellCommands.upd_bin_parser + update_binary_decoded ~~~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: TransparentEF.ShellCommands.upd_bin_dec_parser -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I134f267cf53c7ecbc8cbfb33a8766d63bf4a8582 Gerrit-Change-Number: 23606 Gerrit-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 Apr 4 13:49:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 13:49:51 +0000 Subject: Change in pysim[master]: docs: Documentation for classic pySim-{prog, read} tools References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23607 ) Change subject: docs: Documentation for classic pySim-{prog,read} tools ...................................................................... docs: Documentation for classic pySim-{prog,read} tools Particularly the documentation for pySim-prog is far from being complete, but it's a start. Change-Id: Ic1932e62a5d7cf33e0dd74cb071cfa7f27c6e497 --- M docs/legacy.rst 1 file changed, 99 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/07/23607/1 diff --git a/docs/legacy.rst b/docs/legacy.rst index 492be46..dad83d8 100644 --- a/docs/legacy.rst +++ b/docs/legacy.rst @@ -1,2 +1,101 @@ Legacy tools ============ + +*legacy tools* are the classic ``pySim-prog`` and ``pySim-read`` programs that +existed long before ``pySim-shell``. + +pySim-prog +---------- + +``pySim-prog`` was the first part of the pySim software suite. It started as +a tool to write ICCID, IMSI, MSISDN and Ki to very simplistic SIM cards, and +was later extended to a variety of other cards. As the number of features supported +became no longer bearable to express with command-line arguments, `pySim-shell` was +created. + +Basic use cases can still use `pySim-prog`. + +Program customizable SIMs +~~~~~~~~~~~~~~~~~~~~~~~~~ +Two modes are possible: + + - one where you specify every parameter manually : + +``./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -i -s `` + + + - one where they are generated from some minimal set : + +``./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -z -j `` + + With and , the soft will generate + 'predictable' IMSI and ICCID, so make sure you choose them so as not to + conflict with anyone. (for eg. your name as and + 0 1 2 ... for ). + + You also need to enter some parameters to select the device : + -t TYPE : type of card (supersim, magicsim, fakemagicsim or try 'auto') + -d DEV : Serial port device (default /dev/ttyUSB0) + -b BAUD : Baudrate (default 9600) + + +pySim-read +---------- + +``pySim-read`` allows you to read some data from a SIM card. It will only some files +of the card, and will only read files accessible to a normal user (without any special authentication) + +Specifically, pySim-read will dump the following: + +* MF + + * EF.ICCID + +* DF.GSM + + * EF,IMSI + * EF.GID1 + * EF.GID2 + * EF.SMSP + * EF.SPN + * EF.PLMNsel + * EF.PLMNwAcT + * EF.OPLMNwAcT + * EF.HPLMNAcT + * EF.ACC + * EF.MSISDN + * EF.AD + * EF.SST + +* ADF.USIM + + * EF.EHPLMN + * EF.UST + * EF.ePDGId + * EF.ePDGSelection + +* ADF.ISIM + + * EF.PCSCF + * EF.DOMAIN + * EF.IMPI + * EF.IMPU + * EF.UICCIARI + * EF.IST + + +:: + + Usage: pySim-read.py [options] + + Options: + -h, --help show this help message and exit + -d DEV, --device=DEV Serial Device for SIM access [default: /dev/ttyUSB0] + -b BAUD, --baud=BAUD Baudrate used for SIM access [default: 9600] + -p PCSC, --pcsc-device=PCSC + Which PC/SC reader number for SIM access + --modem-device=DEV Serial port of modem for Generic SIM Access (3GPP TS + 27.007) + --modem-baud=BAUD Baudrate used for modem's port [default: 115200] + --osmocon=PATH Socket path for Calypso (e.g. Motorola C1XX) based + reader (via OsmocomBB) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic1932e62a5d7cf33e0dd74cb071cfa7f27c6e497 Gerrit-Change-Number: 23607 Gerrit-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 Apr 4 13:55:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 13:55:30 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23574 ) Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Patch Set 8: Code-Review+2 (1 comment) I fixed it, LGTM. https://gerrit.osmocom.org/c/osmo-bsc/+/23574/7/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/7/src/osmo-bsc/bsc_vty.c at 2752 PS7, Line 2752: DEFUN_USRATTR > This muts be DEFUN_ATTR() if you use a global (libosmocore defined) attribute like CMD_ATTR_IMMEDIAT [?] Indeed, you cannot use a global command attribute as a user-/library-defined one. There are examples of using CMD_ATTR_IMMEDIATE in this file. This situation actually uncovers an interesting problem: one can mix different enum members and it will compile. Not sure if we can guard against this :/ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 8 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Sun, 04 Apr 2021 13:55:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 15:00:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 15:00:58 +0000 Subject: Change in simtrace2[master]: minor: use same LED pattern for cardem as other opplications References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23608 to review the following change. Change subject: minor: use same LED pattern for cardem as other opplications ...................................................................... minor: use same LED pattern for cardem as other opplications Change-Id: I5608c3312b648c0d59f79338ef1f97b6fe08f5b9 --- M firmware/apps/cardem/main.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/08/23608/1 diff --git a/firmware/apps/cardem/main.c b/firmware/apps/cardem/main.c index 3476af2..a30a211 100644 --- a/firmware/apps/cardem/main.c +++ b/firmware/apps/cardem/main.c @@ -147,7 +147,8 @@ unsigned int i = 0; led_init(); - led_blink(LED_RED, BLINK_3O_5F); + led_blink(LED_RED, BLINK_ALWAYS_ON); + led_blink(LED_GREEN, BLINK_ALWAYS_ON); /* Enable watchdog for 2000ms, with no window */ WDT_Enable(WDT, WDT_MR_WDRSTEN | WDT_MR_WDDBGHLT | WDT_MR_WDIDLEHLT | -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I5608c3312b648c0d59f79338ef1f97b6fe08f5b9 Gerrit-Change-Number: 23608 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 15:00:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 15:00:58 +0000 Subject: Change in simtrace2[master]: firmware: do not allow undefined symbols References: Message-ID: Hello Hoernchen, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23609 to review the following change. Change subject: firmware: do not allow undefined symbols ...................................................................... firmware: do not allow undefined symbols For some reason undefined symbols were downgraded to warnings, which means building a firmware that calls missing functions (= address zero) was perfectly fine, which of course made development more exciting.... This applies to builtins, too, printf of one char gets downgraded to putchar, which we don't have, so disable builtins. Change-Id: I492f41ad4162b9d07b1881ae4aed019db2dff8b5 --- M firmware/Makefile M firmware/libboard/common/source/board_lowlevel.c 2 files changed, 7 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/09/23609/1 diff --git a/firmware/Makefile b/firmware/Makefile index ccf5843..cc40673 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -164,14 +164,14 @@ # -mlong-calls -Wall #CFLAGS += -save-temps -fverbose-asm #CFLAGS += -Wa,-a,-ad -CFLAGS += -D__ARM +CFLAGS += -D__ARM -fno-builtin CFLAGS += --param max-inline-insns-single=500 -mcpu=cortex-m3 -mthumb # -mfix-cortex-m3-ldrd CFLAGS += -ffunction-sections -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -DTRACE_LEVEL=$(TRACE_LEVEL) -DALLOW_PEER_ERASE=$(ALLOW_PEER_ERASE) CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" CFLAGS += -DBOARD=\"$(BOARD)\" -DBOARD_$(BOARD) CFLAGS += -DAPPLICATION=\"$(APP)\" -DAPPLICATION_$(APP) ASFLAGS = -mcpu=cortex-m3 -mthumb -Wall -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -D__ASSEMBLY__ -LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=ResetException -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--print-memory-usage $(LIB) +LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=ResetException -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--print-memory-usage -Wl,--no-undefined $(LIB) #LD_OPTIONAL=-Wl,--print-gc-sections -Wl,--stats # Append BIN directories to output filename diff --git a/firmware/libboard/common/source/board_lowlevel.c b/firmware/libboard/common/source/board_lowlevel.c index b4d7d32..1ddbcba 100644 --- a/firmware/libboard/common/source/board_lowlevel.c +++ b/firmware/libboard/common/source/board_lowlevel.c @@ -218,3 +218,8 @@ do { } while ((jiffies - jiffies_start) < msecs); } + +void abort() { + NVIC_SystemReset(); + while(1) {}; +} -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I492f41ad4162b9d07b1881ae4aed019db2dff8b5 Gerrit-Change-Number: 23609 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 15:00:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 15:00:59 +0000 Subject: Change in simtrace2[master]: firmware: allow verbose builds References: Message-ID: Hello Hoernchen, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23610 to review the following change. Change subject: firmware: allow verbose builds ...................................................................... firmware: allow verbose builds make V=1 can be used to echo all compilation commands, which is useful because it allows IDEs to parse the gcc output in oder to properly index the source files using the actual defines passed to the compiler. Change-Id: I25c41dff89302a73ddd2a4aaba7cb14912fac3b8 --- M firmware/Makefile 1 file changed, 14 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/10/23610/1 diff --git a/firmware/Makefile b/firmware/Makefile index cc40673..2d0f62c 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -33,6 +33,14 @@ # User-modifiable options #------------------------------------------------------------------------------- +# verbosity +V ?= 0 +ifneq ("$(V)","0") +SILENT := +else +SILENT := @ +endif + # Chip & board used for compilation # (can be overriden by adding CHIP=chip and BOARD=board to the command-line) CHIP ?= sam3s4 @@ -210,18 +218,18 @@ ASM_OBJECTS_$(1) = $(addprefix $(OBJ)/$(1)_, $(ASM_OBJECTS)) $(1): $$(ASM_OBJECTS_$(1)) $$(C_OBJECTS_$(1)) - @$(CC) $(LDFLAGS) $(LD_OPTIONAL) -T"libboard/common/resources/$(CHIP)/$$@.ld" -Wl,-Map,$(OUTPUT)-$$@.map -o $(OUTPUT)-$$@.elf $$^ $(LIBS) - @$(NM) $(OUTPUT)-$$@.elf >$(OUTPUT)-$$@.elf.txt - @$(OBJCOPY) -O binary $(OUTPUT)-$$@.elf $(OUTPUT)-$$@.bin - @$(SIZE) $$^ $(OUTPUT)-$$@.elf + $(SILENT)$(CC) $(LDFLAGS) $(LD_OPTIONAL) -T"libboard/common/resources/$(CHIP)/$$@.ld" -Wl,-Map,$(OUTPUT)-$$@.map -o $(OUTPUT)-$$@.elf $$^ $(LIBS) + $(SILENT)$(NM) $(OUTPUT)-$$@.elf >$(OUTPUT)-$$@.elf.txt + $(SILENT)$(OBJCOPY) -O binary $(OUTPUT)-$$@.elf $(OUTPUT)-$$@.bin + $(SILENT)$(SIZE) $$^ $(OUTPUT)-$$@.elf $$(C_OBJECTS_$(1)): $(OBJ)/$(1)_%.o: %.c Makefile $(OBJ) $(BIN) @echo [COMPILING $$<] - @$(CC) $(CFLAGS) -DENVIRONMENT_$(1) -DENVIRONMENT=\"$(1)\" -Wa,-ahlms=$(BIN)/$$*.lst -c -o $$@ $$< + $(SILENT)$(CC) $(CFLAGS) -DENVIRONMENT_$(1) -DENVIRONMENT=\"$(1)\" -Wa,-ahlms=$(BIN)/$$*.lst -c -o $$@ $$< $$(ASM_OBJECTS_$(1)): $(OBJ)/$(1)_%.o: %.S Makefile $(OBJ) $(BIN) @echo [ASSEMBLING $$@] - @$(CC) $(ASFLAGS) -DENVIRONMENT_$(1) -DENVIRONMENT=\"$(1)\" -c -o $$@ $$< + $(SILENT)@$(CC) $(ASFLAGS) -DENVIRONMENT_$(1) -DENVIRONMENT=\"$(1)\" -c -o $$@ $$< debug_$(1): $(1) $(GDB) -x "$(BOARD_LIB)/resources/gcc/$(BOARD)_$(1).gdb" -ex "reset" -readnow -se $(OUTPUT)-$(1).elf -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I25c41dff89302a73ddd2a4aaba7cb14912fac3b8 Gerrit-Change-Number: 23610 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 15:00:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 15:00:59 +0000 Subject: Change in simtrace2[master]: cardem: choose a more reasonable default ATR References: Message-ID: Hello Hoernchen, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23611 to review the following change. Change subject: cardem: choose a more reasonable default ATR ...................................................................... cardem: choose a more reasonable default ATR PCSCd does not like invalid ATRs Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 --- M firmware/libcommon/source/card_emu.c M host/src/simtrace2-cardem-pcsc.c 2 files changed, 39 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/11/23611/1 diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index cad24b8..099fed1 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -1179,8 +1179,24 @@ } } -/* shortest ATR possible (uses default speed and no options) */ -static const uint8_t default_atr[] = { 0x3B, 0x00 }; +/* reasonable ATR offering all protocols and voltages + * smartphones might not care, but other readers do + +TS = 0x3B Direct Convention +T0 = 0x80 Y(1): b1000, K: 0 (historical bytes) +TD(1) = 0x80 Y(i+1) = b1000, Protocol T=0 +---- +TD(2) = 0x81 Y(i+1) = b1000, Protocol T=1 +---- +TD(3) = 0x1F Y(i+1) = b0001, Protocol T=15 +---- +TA(4) = 0xC7 Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V +---- +Historical bytes +TCK = 0x59 correct checksum + + * */ +static const uint8_t default_atr[] = { 0x3B, 0x80, 0x80, 0x81 , 0x1F, 0xC7, 0x59}; static struct card_handle card_handles[NUM_SLOTS]; diff --git a/host/src/simtrace2-cardem-pcsc.c b/host/src/simtrace2-cardem-pcsc.c index 883bad1..ad3e0f3 100644 --- a/host/src/simtrace2-cardem-pcsc.c +++ b/host/src/simtrace2-cardem-pcsc.c @@ -52,6 +52,26 @@ #define ATR_MAX_LEN 33 +/* +reasonable ATR offering all protocols and voltages +smartphones might not care, but other readers do + +TS = 0x3B Direct Convention +T0 = 0x80 Y(1): b1000, K: 0 (historical bytes) +TD(1) = 0x80 Y(i+1) = b1000, Protocol T=0 +---- +TD(2) = 0x81 Y(i+1) = b1000, Protocol T=1 +---- +TD(3) = 0x1F Y(i+1) = b0001, Protocol T=15 +---- +TA(4) = 0xC7 Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V +---- +Historical bytes +TCK = 0x59 correct checksum +*/ +#define DEFAULT_ATR_STR "3B8080811FC759" + + static void atr_update_csum(uint8_t *atr, unsigned int atr_len) { uint8_t csum = 0; @@ -274,7 +294,7 @@ int rc; int c, ret = 1; int skip_atr = 0; - char *atr = "3b00"; + char *atr = DEFAULT_ATR_STR; uint8_t real_atr[ATR_MAX_LEN]; int atr_len; int keep_running = 0; -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 Gerrit-Change-Number: 23611 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 15:02:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 15:02:19 +0000 Subject: Change in simtrace2[master]: minor: use same LED pattern for cardem as other applications In-Reply-To: References: Message-ID: Hello tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23608 to look at the new patch set (#2). Change subject: minor: use same LED pattern for cardem as other applications ...................................................................... minor: use same LED pattern for cardem as other applications Change-Id: I5608c3312b648c0d59f79338ef1f97b6fe08f5b9 --- M firmware/apps/cardem/main.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/08/23608/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I5608c3312b648c0d59f79338ef1f97b6fe08f5b9 Gerrit-Change-Number: 23608 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 15:04:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 15:04:40 +0000 Subject: Change in simtrace2[master]: firmware: do not allow undefined symbols In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23609 ) Change subject: firmware: do not allow undefined symbols ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I492f41ad4162b9d07b1881ae4aed019db2dff8b5 Gerrit-Change-Number: 23609 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 04 Apr 2021 15:04: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 Sun Apr 4 15:06:10 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 15:06:10 +0000 Subject: Change in simtrace2[master]: firmware: allow verbose builds In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23610 ) Change subject: firmware: allow verbose builds ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I25c41dff89302a73ddd2a4aaba7cb14912fac3b8 Gerrit-Change-Number: 23610 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 04 Apr 2021 15:06:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 15:08:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 15:08:19 +0000 Subject: Change in simtrace2[master]: cardem: choose a more reasonable default ATR In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23611 ) Change subject: cardem: choose a more reasonable default ATR ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/simtrace2/+/23611/1/firmware/libcommon/source/card_emu.c File firmware/libcommon/source/card_emu.c: https://gerrit.osmocom.org/c/simtrace2/+/23611/1/firmware/libcommon/source/card_emu.c at 1199 PS1, Line 1199: 0x59}; missing space https://gerrit.osmocom.org/c/simtrace2/+/23611/1/host/src/simtrace2-cardem-pcsc.c File host/src/simtrace2-cardem-pcsc.c: https://gerrit.osmocom.org/c/simtrace2/+/23611/1/host/src/simtrace2-cardem-pcsc.c at 56 PS1, Line 56: reasonable ATR offering all protocols and voltages Weird comment formatting. I would prefer to have it consistent with the GPL license header. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 Gerrit-Change-Number: 23611 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 04 Apr 2021 15:08: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 Apr 4 15:58:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 15:58:30 +0000 Subject: Change in osmo-bsc[master]: debug log, lchan_fsm: explain leaving wait_rll_rtp_establish state In-Reply-To: References: Message-ID: fixeria 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 5: Code-Review+2 -- 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: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 04 Apr 2021 15: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 Sun Apr 4 16:15:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 16:15:46 +0000 Subject: Change in simtrace2[master]: firmware: do not allow undefined symbols In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23609 ) Change subject: firmware: do not allow undefined symbols ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I492f41ad4162b9d07b1881ae4aed019db2dff8b5 Gerrit-Change-Number: 23609 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 04 Apr 2021 16:15:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 16:15:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 16:15:48 +0000 Subject: Change in simtrace2[master]: firmware: allow verbose builds In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23610 ) Change subject: firmware: allow verbose builds ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I25c41dff89302a73ddd2a4aaba7cb14912fac3b8 Gerrit-Change-Number: 23610 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 04 Apr 2021 16:15: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 Apr 4 16:16:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 16:16:18 +0000 Subject: Change in simtrace2[master]: minor: use same LED pattern for cardem as other applications In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23608 ) Change subject: minor: use same LED pattern for cardem as other applications ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I5608c3312b648c0d59f79338ef1f97b6fe08f5b9 Gerrit-Change-Number: 23608 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 16:16: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 Apr 4 16:16:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 16:16:20 +0000 Subject: Change in simtrace2[master]: minor: use same LED pattern for cardem as other applications In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23608 ) Change subject: minor: use same LED pattern for cardem as other applications ...................................................................... minor: use same LED pattern for cardem as other applications Change-Id: I5608c3312b648c0d59f79338ef1f97b6fe08f5b9 --- M firmware/apps/cardem/main.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/apps/cardem/main.c b/firmware/apps/cardem/main.c index 3476af2..a30a211 100644 --- a/firmware/apps/cardem/main.c +++ b/firmware/apps/cardem/main.c @@ -147,7 +147,8 @@ unsigned int i = 0; led_init(); - led_blink(LED_RED, BLINK_3O_5F); + led_blink(LED_RED, BLINK_ALWAYS_ON); + led_blink(LED_GREEN, BLINK_ALWAYS_ON); /* Enable watchdog for 2000ms, with no window */ WDT_Enable(WDT, WDT_MR_WDRSTEN | WDT_MR_WDDBGHLT | WDT_MR_WDIDLEHLT | -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I5608c3312b648c0d59f79338ef1f97b6fe08f5b9 Gerrit-Change-Number: 23608 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 16:16:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 16:16:24 +0000 Subject: Change in simtrace2[master]: firmware: do not allow undefined symbols In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23609 ) Change subject: firmware: do not allow undefined symbols ...................................................................... firmware: do not allow undefined symbols For some reason undefined symbols were downgraded to warnings, which means building a firmware that calls missing functions (= address zero) was perfectly fine, which of course made development more exciting.... This applies to builtins, too, printf of one char gets downgraded to putchar, which we don't have, so disable builtins. Change-Id: I492f41ad4162b9d07b1881ae4aed019db2dff8b5 --- M firmware/Makefile M firmware/libboard/common/source/board_lowlevel.c 2 files changed, 7 insertions(+), 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/firmware/Makefile b/firmware/Makefile index ccf5843..cc40673 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -164,14 +164,14 @@ # -mlong-calls -Wall #CFLAGS += -save-temps -fverbose-asm #CFLAGS += -Wa,-a,-ad -CFLAGS += -D__ARM +CFLAGS += -D__ARM -fno-builtin CFLAGS += --param max-inline-insns-single=500 -mcpu=cortex-m3 -mthumb # -mfix-cortex-m3-ldrd CFLAGS += -ffunction-sections -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -DTRACE_LEVEL=$(TRACE_LEVEL) -DALLOW_PEER_ERASE=$(ALLOW_PEER_ERASE) CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" CFLAGS += -DBOARD=\"$(BOARD)\" -DBOARD_$(BOARD) CFLAGS += -DAPPLICATION=\"$(APP)\" -DAPPLICATION_$(APP) ASFLAGS = -mcpu=cortex-m3 -mthumb -Wall -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -D__ASSEMBLY__ -LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=ResetException -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--print-memory-usage $(LIB) +LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=ResetException -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--print-memory-usage -Wl,--no-undefined $(LIB) #LD_OPTIONAL=-Wl,--print-gc-sections -Wl,--stats # Append BIN directories to output filename diff --git a/firmware/libboard/common/source/board_lowlevel.c b/firmware/libboard/common/source/board_lowlevel.c index b4d7d32..1ddbcba 100644 --- a/firmware/libboard/common/source/board_lowlevel.c +++ b/firmware/libboard/common/source/board_lowlevel.c @@ -218,3 +218,8 @@ do { } while ((jiffies - jiffies_start) < msecs); } + +void abort() { + NVIC_SystemReset(); + while(1) {}; +} -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I492f41ad4162b9d07b1881ae4aed019db2dff8b5 Gerrit-Change-Number: 23609 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 16:16:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 16:16:24 +0000 Subject: Change in simtrace2[master]: firmware: allow verbose builds In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23610 ) Change subject: firmware: allow verbose builds ...................................................................... firmware: allow verbose builds make V=1 can be used to echo all compilation commands, which is useful because it allows IDEs to parse the gcc output in oder to properly index the source files using the actual defines passed to the compiler. Change-Id: I25c41dff89302a73ddd2a4aaba7cb14912fac3b8 --- M firmware/Makefile 1 file changed, 14 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/firmware/Makefile b/firmware/Makefile index cc40673..2d0f62c 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -33,6 +33,14 @@ # User-modifiable options #------------------------------------------------------------------------------- +# verbosity +V ?= 0 +ifneq ("$(V)","0") +SILENT := +else +SILENT := @ +endif + # Chip & board used for compilation # (can be overriden by adding CHIP=chip and BOARD=board to the command-line) CHIP ?= sam3s4 @@ -210,18 +218,18 @@ ASM_OBJECTS_$(1) = $(addprefix $(OBJ)/$(1)_, $(ASM_OBJECTS)) $(1): $$(ASM_OBJECTS_$(1)) $$(C_OBJECTS_$(1)) - @$(CC) $(LDFLAGS) $(LD_OPTIONAL) -T"libboard/common/resources/$(CHIP)/$$@.ld" -Wl,-Map,$(OUTPUT)-$$@.map -o $(OUTPUT)-$$@.elf $$^ $(LIBS) - @$(NM) $(OUTPUT)-$$@.elf >$(OUTPUT)-$$@.elf.txt - @$(OBJCOPY) -O binary $(OUTPUT)-$$@.elf $(OUTPUT)-$$@.bin - @$(SIZE) $$^ $(OUTPUT)-$$@.elf + $(SILENT)$(CC) $(LDFLAGS) $(LD_OPTIONAL) -T"libboard/common/resources/$(CHIP)/$$@.ld" -Wl,-Map,$(OUTPUT)-$$@.map -o $(OUTPUT)-$$@.elf $$^ $(LIBS) + $(SILENT)$(NM) $(OUTPUT)-$$@.elf >$(OUTPUT)-$$@.elf.txt + $(SILENT)$(OBJCOPY) -O binary $(OUTPUT)-$$@.elf $(OUTPUT)-$$@.bin + $(SILENT)$(SIZE) $$^ $(OUTPUT)-$$@.elf $$(C_OBJECTS_$(1)): $(OBJ)/$(1)_%.o: %.c Makefile $(OBJ) $(BIN) @echo [COMPILING $$<] - @$(CC) $(CFLAGS) -DENVIRONMENT_$(1) -DENVIRONMENT=\"$(1)\" -Wa,-ahlms=$(BIN)/$$*.lst -c -o $$@ $$< + $(SILENT)$(CC) $(CFLAGS) -DENVIRONMENT_$(1) -DENVIRONMENT=\"$(1)\" -Wa,-ahlms=$(BIN)/$$*.lst -c -o $$@ $$< $$(ASM_OBJECTS_$(1)): $(OBJ)/$(1)_%.o: %.S Makefile $(OBJ) $(BIN) @echo [ASSEMBLING $$@] - @$(CC) $(ASFLAGS) -DENVIRONMENT_$(1) -DENVIRONMENT=\"$(1)\" -c -o $$@ $$< + $(SILENT)@$(CC) $(ASFLAGS) -DENVIRONMENT_$(1) -DENVIRONMENT=\"$(1)\" -c -o $$@ $$< debug_$(1): $(1) $(GDB) -x "$(BOARD_LIB)/resources/gcc/$(BOARD)_$(1).gdb" -ex "reset" -readnow -se $(OUTPUT)-$(1).elf -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I25c41dff89302a73ddd2a4aaba7cb14912fac3b8 Gerrit-Change-Number: 23610 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 16:19:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 16:19:25 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23574 ) Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23574/7/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23574/7/src/osmo-bsc/bsc_vty.c at 2752 PS7, Line 2752: DEFUN_USRATTR > Indeed, you cannot use a global command attribute as a user-/library-defined one. [?] we could probably assign different numeric ranges (like use some MSBs to distinguish the enum types, and the LSBs for the enum member) and then have some compile-time comparisons in the macro, something like a static_assert() that validates the enum member falls within the permitted range of that enum. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 8 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Sun, 04 Apr 2021 16:19:25 +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 Apr 4 16:20:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 16:20:04 +0000 Subject: Change in osmo-bsc[master]: Ignore CHANnel ReQuireD with Access Delay IE > 63 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23574 ) Change subject: Ignore CHANnel ReQuireD with Access Delay IE > 63 ...................................................................... Ignore CHANnel ReQuireD with Access Delay IE > 63 It is observed that a CHANnel ReQuireD with access delay greater than 63 can be received from the Ericsson RBS. This results in osmo-bsc sending back a CHANnel ACTIVation with a Timing Advance IE containing the access delay value. The RBS NACKs this, leading to a BORKEN Channel. This patch makes the maximum acceptable access delay vty-configurable and Ignores CHANnel ReQuireD RSL Messages with Access Delay IE greater than that configured. Default value is 63. Related: OS#5096 Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c 4 files changed, 33 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index f40aa3e..c8cf8b3 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -28,6 +28,7 @@ BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN, BTS_CTR_CHREQ_SUCCESSFUL, BTS_CTR_CHREQ_NO_CHANNEL, + BTS_CTR_CHREQ_MAX_DELAY_EXCEEDED, BTS_CTR_CHAN_RF_FAIL, BTS_CTR_CHAN_RF_FAIL_TCH, BTS_CTR_CHAN_RF_FAIL_SDCCH, @@ -529,6 +530,9 @@ /* MS/BS Power Control parameters */ struct gsm_power_ctrl_params ms_power_ctrl; struct gsm_power_ctrl_params bs_power_ctrl; + + /* We will ignore CHAN RQD with access delay greater than rach_max_delay */ + uint8_t rach_max_delay; }; #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/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 67e7d27..6445b6d 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1526,6 +1526,13 @@ return -EINVAL; } rqd->ta = rqd_hdr->data[sizeof(struct gsm48_req_ref)+2]; + if (rqd->ta > bts->rach_max_delay) { + LOG_BTS(bts, DRSL, LOGL_INFO, "Ignoring CHAN RQD: Access Delay(%d) greater than %u\n", + rqd->ta, bts->rach_max_delay); + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_MAX_DELAY_EXCEEDED]); + talloc_free(rqd); + return -EINVAL; + } /* Determine channel request cause code */ rqd->reason = get_reason_by_chreq(rqd->ref.ra, bts->network->neci); diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 280fe9f..91eaee0 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -433,6 +433,8 @@ vty_out(vty, " RACH Max transmissions: %u%s", rach_max_trans_raw2val(bts->si_common.rach_control.max_trans), VTY_NEWLINE); + vty_out(vty, " RACH Max Delay (Max Access Delay IE in CHANnel ReQuireD): %u%s", + bts->rach_max_delay, VTY_NEWLINE); if (bts->si_common.rach_control.cell_bar) vty_out(vty, " CELL IS BARRED%s", VTY_NEWLINE); if (bts->dtxu != GSM48_DTX_SHALL_NOT_BE_USED) @@ -1041,6 +1043,7 @@ vty_out(vty, " rach max transmission %u%s", rach_max_trans_raw2val(bts->si_common.rach_control.max_trans), VTY_NEWLINE); + vty_out(vty, " rach max-delay %u%s", bts->rach_max_delay, VTY_NEWLINE); vty_out(vty, " channel-description attach %u%s", bts->si_common.chan_desc.att, VTY_NEWLINE); @@ -2746,6 +2749,19 @@ return CMD_SUCCESS; } +DEFUN_ATTR(cfg_bts_rach_max_delay, + cfg_bts_rach_max_delay_cmd, + "rach max-delay <1-127>", + RACH_STR + "Set the max Access Delay IE value to accept in CHANnel ReQuireD\n" + "Maximum Access Delay IE value to accept in CHANnel ReQuireD\n", + CMD_ATTR_IMMEDIATE) +{ + struct gsm_bts *bts = vty->index; + bts->rach_max_delay = atoi(argv[0]); + return CMD_SUCCESS; +} + #define REP_ACCH_STR "FACCH/SACCH repetition\n" DEFUN_USRATTR(cfg_bts_rep_dl_facch, @@ -7668,6 +7684,7 @@ install_element(BTS_NODE, &cfg_bts_challoc_cmd); install_element(BTS_NODE, &cfg_bts_rach_tx_integer_cmd); install_element(BTS_NODE, &cfg_bts_rach_max_trans_cmd); + install_element(BTS_NODE, &cfg_bts_rach_max_delay_cmd); install_element(BTS_NODE, &cfg_bts_chan_desc_att_cmd); install_element(BTS_NODE, &cfg_bts_chan_dscr_att_cmd); install_element(BTS_NODE, &cfg_bts_chan_desc_bs_pa_mfrms_cmd); diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 398f26f..b5b7136 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -357,6 +357,8 @@ bts->bs_power_ctrl = power_ctrl_params_def; bts->bs_power_ctrl.dir = GSM_PWR_CTRL_DIR_DL; + bts->rach_max_delay = 63; + return bts; } @@ -767,6 +769,9 @@ [BTS_CTR_CHREQ_NO_CHANNEL] = \ { "chreq:no_channel", "Sent to MS no channel available" }, + [BTS_CTR_CHREQ_MAX_DELAY_EXCEEDED] = \ + { "chreq:max_delay_exceeded", + "Received channel requests with greater than permitted access delay" }, [BTS_CTR_CHAN_RF_FAIL] = \ { "chan:rf_fail", "Received a RF failure indication from BTS" }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce Gerrit-Change-Number: 23574 Gerrit-PatchSet: 8 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 16:20:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 16:20:35 +0000 Subject: Change in osmo-bsc[master]: debug log, lchan_fsm: explain leaving wait_rll_rtp_establish state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21644 ) Change subject: debug log, lchan_fsm: explain leaving wait_rll_rtp_establish state ...................................................................... debug log, lchan_fsm: explain leaving wait_rll_rtp_establish state Before, it is not clear whether the RTP is already done setting up or the RTP is skipped entirely. This log message clarifies that. Change-Id: I18ffcf93e82ee47413e4b2f741ffbfbb18322e1d --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 6 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/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 9c7ecaf..6f0fd63 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -861,8 +861,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: 6 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 Sun Apr 4 16:34:23 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 16:34:23 +0000 Subject: Change in osmo-bsc[master]: abis_nm: properly warn about unknown / not supported features In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18599 ) Change subject: abis_nm: properly warn about unknown / not supported features ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18599/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/18599/3//COMMIT_MSG at 12 PS3, Line 12: Vice versa, when some BTS feature is considered as supported : by the BSC, but a BTS reports that it is not, is definitely : a problem that requires some attention. Report this as ERROR. > ping? Sorry for very slow reply. I am now trying to remember the context and trying to understand your question. This change itself is rather cosmetic: we basically make osmo-bsc print something that is a bit easier to understand when the feature vectors are different. AFAIU, you're against using LOGL_ERROR for features which the BSC does expect, but the BTS does not support? In general, I agree, it's not an error. I will change it to NOTICE and will also remove "Please fix", because it's not a bug or something than can be easily fixed in code / configuration file. Do you agree? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b Gerrit-Change-Number: 18599 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 04 Apr 2021 16:34: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 Sun Apr 4 17:00:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 4 Apr 2021 17:00:26 +0000 Subject: Change in libosmocore[master]: ns2: Dump frame relay state to VTY during "show ns" In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23546 ) Change subject: ns2: Dump frame relay state to VTY during "show ns" ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23546/1/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/23546/1/src/gb/gprs_ns2_vty.c at 2022 PS1, Line 2022: osmo_fr_network_dump_vty(vty, vty_fr_network); > very nice catch. [?] it shouldn't be deprecated. It would be also great to have a separate command to show only the fr. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I798af3e97dc014b6e0fcde86560a1809852f7510 Gerrit-Change-Number: 23546 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 04 Apr 2021 17:00:26 +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 Sun Apr 4 17:01:39 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 4 Apr 2021 17:01:39 +0000 Subject: Change in osmo-dev[master]: net/templates/osmo-gbproxy.cfg: update format In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/23419 ) Change subject: net/templates/osmo-gbproxy.cfg: update format ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/23419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ia7008d6d2d26030aa4c35439f1525a53957443a1 Gerrit-Change-Number: 23419 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Assignee: neels Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Sun, 04 Apr 2021 17:01: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 Apr 4 17:01:50 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 4 Apr 2021 17:01:50 +0000 Subject: Change in osmo-dev[master]: net/templates/osmo-sgsn.cfg: update format In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/23418 ) Change subject: net/templates/osmo-sgsn.cfg: update format ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/23418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ie0a6d4a55f725ebcc6a55b6bd71c52ad72accbd2 Gerrit-Change-Number: 23418 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Assignee: neels Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Sun, 04 Apr 2021 17:01: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 Apr 4 17:06:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 17:06:38 +0000 Subject: Change in osmo-bsc[master]: abis_nm: rework warnings about unknown / not supported features 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/+/18599 to look at the new patch set (#5). Change subject: abis_nm: rework warnings about unknown / not supported features ...................................................................... abis_nm: rework warnings about unknown / not supported features The reported feature vector may contain new features the BSC is not aware of. Report each of them individually as NOTICE. It's normal when some BTS feature is considered as not supported by the BSC, but a BTS reports that it is - do not log this. Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b --- M src/osmo-bsc/abis_nm.c 1 file changed, 16 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/99/18599/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b Gerrit-Change-Number: 18599 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 Apr 4 17:06:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 17:06:38 +0000 Subject: Change in osmo-bsc[master]: abis_nm: cosmetic: use osmo_bts_feature_name() 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/+/18604 to look at the new patch set (#4). Change subject: abis_nm: cosmetic: use osmo_bts_feature_name() ...................................................................... abis_nm: cosmetic: use osmo_bts_feature_name() Change-Id: I15078ac030b0b824a554239b19bc501c624e2a87 --- M src/osmo-bsc/abis_nm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/04/18604/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I15078ac030b0b824a554239b19bc501c624e2a87 Gerrit-Change-Number: 18604 Gerrit-PatchSet: 4 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 Apr 4 17:20:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 17:20:24 +0000 Subject: Change in osmo-bsc[master]: abis_nm: rework warnings about unknown / not supported features 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/+/18599 to look at the new patch set (#6). Change subject: abis_nm: rework warnings about unknown / not supported features ...................................................................... abis_nm: rework warnings about unknown / not supported features The reported feature vector may contain new features the BSC is not aware of. Report each of them individually as NOTICE. It's normal when some BTS feature is considered as not supported by the BSC, but a BTS reports that it is - do not log this. Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b --- M src/osmo-bsc/abis_nm.c 1 file changed, 15 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/99/18599/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b Gerrit-Change-Number: 18599 Gerrit-PatchSet: 6 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 Apr 4 17:27:15 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 4 Apr 2021 17:27:15 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add vty `nse <0-65535> restart sns` In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23184 ) Change subject: gprs_ns2: add vty `nse <0-65535> restart sns` ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23184/1/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/23184/1/src/gb/gprs_ns2_vty.c at 1920 PS1, Line 1920: gprs_ns2_free_nsvcs(nse); > The SGSN cannot re-start SNS. Only the BSS can do this by sending SNS-SIZE. [?] The code was there before the SGSN SNS code :) So should we have 2 vty commands, one for BSS and one for SGSN? The code should work for both. But right, there is no restart for SGSN. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23184 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb55d8449908d348ab10572eebcf971737fba00d Gerrit-Change-Number: 23184 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 04 Apr 2021 17:27:15 +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 Sun Apr 4 17:33:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 17:33:49 +0000 Subject: Change in osmo-bsc[master]: bts_osmobts: update the list of supported features In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18617 ) Change subject: bts_osmobts: update the list of supported features ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18617/1/src/osmo-bsc/bts_osmobts.c File src/osmo-bsc/bts_osmobts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18617/1/src/osmo-bsc/bts_osmobts.c at 54 PS1, Line 54: osmo_bts_set_feature(&model->features, BTS_FEAT_OML_ALERTS); : osmo_bts_set_feature(&model->features, BTS_FEAT_CBCH); : osmo_bts_set_feature(&model->features, BTS_FEAT_SPEECH_F_V1); : osmo_bts_set_feature(&model->features, BTS_FEAT_SPEECH_H_V1); : osmo_bts_set_feature(&model->features, BTS_FEAT_SPEECH_F_EFR); : osmo_bts_set_feature(&model->features, BTS_FEAT_SPEECH_F_AMR); : osmo_bts_set_feature(&model->features, BTS_FEAT_SPEECH_H_AMR); : osmo_bts_set_feature(&model->features, BTS_FEAT_ETWS_PN); > how do you know that those are supported by the (remote, possibly old) osmo-bts version? The point [?] I think I am not understanding the point of having this list of 'expected' features in osmo-bsc. When I was working on this patch, I thought this is what we expect the recent osmo-bts to support. From your response, it now feels more like it's a set of features that any, even a very old osmo-bts version would support. We have EGPRS here, but not SPEECH_* features? Was EGPRS support introduced even earlier than FR/HR/AMR speech coding? I am confused. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I431c8ab9478cbc40179903edc21043623d805da1 Gerrit-Change-Number: 18617 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Sun, 04 Apr 2021 17:33:49 +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 Apr 4 17:47:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 17:47:33 +0000 Subject: Change in osmo-bsc[master]: abis_nm: rework warnings about unknown / not supported features 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/+/18599 to look at the new patch set (#7). Change subject: abis_nm: rework warnings about unknown / not supported features ...................................................................... abis_nm: rework warnings about unknown / not supported features The reported feature vector may contain new features the BSC is not aware of. Report each of them individually as NOTICE. It's normal when some BTS feature is considered as not supported by the BSC, but a BTS reports that it is - do not log this. Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b --- M src/osmo-bsc/abis_nm.c 1 file changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/99/18599/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b Gerrit-Change-Number: 18599 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 Sun Apr 4 17:47:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 17:47:33 +0000 Subject: Change in osmo-bsc[master]: abis_nm: cosmetic: use osmo_bts_feature_name() 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/+/18604 to look at the new patch set (#6). Change subject: abis_nm: cosmetic: use osmo_bts_feature_name() ...................................................................... abis_nm: cosmetic: use osmo_bts_feature_name() Change-Id: I15078ac030b0b824a554239b19bc501c624e2a87 --- M src/osmo-bsc/abis_nm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/04/18604/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I15078ac030b0b824a554239b19bc501c624e2a87 Gerrit-Change-Number: 18604 Gerrit-PatchSet: 6 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 Apr 4 17:54:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:43 +0000 Subject: Change in simtrace2[master]: cardem: choose a more reasonable default ATR In-Reply-To: References: Message-ID: Hello Jenkins Builder, Hoernchen, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23611 to look at the new patch set (#2). Change subject: cardem: choose a more reasonable default ATR ...................................................................... cardem: choose a more reasonable default ATR PCSCd does not like invalid ATRs Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 --- M firmware/libcommon/source/card_emu.c M host/src/simtrace2-cardem-pcsc.c 2 files changed, 38 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/11/23611/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 Gerrit-Change-Number: 23611 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:44 +0000 Subject: Change in simtrace2[master]: add library providing ISO 7816-3 utilities References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23612 to review the following change. Change subject: add library providing ISO 7816-3 utilities ...................................................................... add library providing ISO 7816-3 utilities this will become part of libosmocore since it it common to smart card related projects (such as osmo-ccid-firmware) Change-Id: I3d4c65d137fc4555fcb256443feadd1c695de73d --- A firmware/libcommon/include/iso7816_3.h A firmware/libcommon/source/iso7816_3.c 2 files changed, 221 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/12/23612/1 diff --git a/firmware/libcommon/include/iso7816_3.h b/firmware/libcommon/include/iso7816_3.h new file mode 100644 index 0000000..738d2a2 --- /dev/null +++ b/firmware/libcommon/include/iso7816_3.h @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * 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. +*/ +/* this library provides utilities to handle the ISO-7816 part 3 communication aspects (e.g. related to F and D) */ +#pragma once + +#include +#include + +/** default clock rate conversion integer Fd + * @implements ISO/IEC 7816-3:2006(E) section 8.1 + */ +#define ISO7816_3_DEFAULT_FD 372 +/** default baud rate adjustment factor Dd + * @implements ISO/IEC 7816-3:2006(E) section 8.1 + */ +#define ISO7816_3_DEFAULT_DD 1 +/** default clock rate conversion integer Fi + * @implements ISO/IEC 7816-3:2006(E) section 8.3 + * @note non-default value is optionally specified in TA1 + */ +#define ISO7816_3_DEFAULT_FI 372 +/** default baud rate adjustment factor Di + * @implements ISO/IEC 7816-3:2006(E) section 8.3 + * @note non-default value is optionally specified in TA1 + */ +#define ISO7816_3_DEFAULT_DI 1 +/** default maximum clock frequency, in Hz + * @implements ISO/IEC 7816-3:2006(E) section 8.3 + * @note non-default value is optionally specified in TA1 + */ +#define ISO7816_3_DEFAULT_FMAX 5000000UL +/** default Waiting Integer (WI) value for T=0 + * @implements ISO/IEC 7816-3:2006(E) section 10.2 + * @note non-default value is optionally specified in TC2 + */ +#define ISO7816_3_DEFAULT_WI 10 +/** default Waiting Time (WT) value, in ETU + * @implements ISO/IEC 7816-3:2006(E) section 8.1 + * @note depends on Fi, Di, and WI if protocol T=0 is selected + */ +#define ISO7816_3_DEFAULT_WT 9600 + +/** Table encoding the clock rate conversion integer Fi + * @note Fi is indicated in TA1, but the same table is used for F and Fn during PPS + * @implements ISO/IEC 7816-3:2006(E) table 7 + */ +extern const uint16_t iso7816_3_fi_table[]; + +/** Table encoding the maximum clock frequency f_max in Hz + * @implements ISO/IEC 7816-3:2006(E) table 7 + * @note f_max is indicated in TA1, but the same table is used for F and Fn during PPS + */ +extern const uint32_t iso7816_3_fmax_table[]; + +/** Table encoding the baud rate adjust integer Di + * @implements ISO/IEC 7816-3:2006(E) table 8 + * @note Di is indicated in TA1, but the same table is used for D and Dn during PPS + */ +extern const uint8_t iso7816_3_di_table[]; + +/* verify if the clock rate conversion integer F value is valid + * @param[in] f F value to be validated + * @return if F value is valid + * @note only values in ISO/IEC 7816-3:2006(E) table 7 are valid + */ +bool iso7816_3_valid_f(uint16_t f); +/* verify if the baud rate adjustment factor D value is valid + * @param[in] d D value to be validated + * @return if D value is valid + * @note only values in ISO/IEC 7816-3:2006(E) table 8 are valid + */ +bool iso7816_3_valid_d(uint8_t d); +/** calculate Waiting Time (WT) + * @param[in] wi Waiting Integer + * @param[in] fi clock rate conversion integer Fi value + * @param[in] di baud rate adjustment factor Di value + * @param[in] f clock rate conversion integer F value + * @param[in] d baud rate adjustment factor D value + * @return Waiting Time WT, in ETU, or < 0 on error (see code for return codes) + * @note this should happen after reset and T=0 protocol select (through PPS or implicit) + * @implements ISO/IEC 7816-3:2006(E) section 8.1 and 10.2 + */ +int32_t iso7816_3_calculate_wt(uint8_t wi, uint16_t fi, uint8_t di, uint16_t f, uint8_t d); diff --git a/firmware/libcommon/source/iso7816_3.c b/firmware/libcommon/source/iso7816_3.c new file mode 100644 index 0000000..f7262fb --- /dev/null +++ b/firmware/libcommon/source/iso7816_3.c @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * 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 "utils.h" +#include "iso7816_3.h" + +const uint16_t iso7816_3_fi_table[16] = { + 372, 372, 558, 744, 1116, 1488, 1860, 0, + 0, 512, 768, 1024, 1536, 2048, 0, 0 +}; + +const uint32_t iso7816_3_fmax_table[16] = { + 4000000, 5000000, 6000000, 8000000, 12000000, 16000000, 20000000, 0, + 0, 5000000, 7500000, 10000000, 15000000, 20000000, 0, 0 +}; + +const uint8_t iso7816_3_di_table[16] = { + 0, 1, 2, 4, 8, 16, 32, 64, + 12, 20, 0, 0, 0, 0, 0, 0, +}; + +/* all values are based on the Elementary Time Unit (ETU), defined in ISO/IEC 7816-3 section 7.1 + * this is the time required to transmit a bit, and is calculated as follows: 1 ETU = (F / D) x (1 / f) where: + * - F is the clock rate conversion integer + * - D is the baud rate adjustment factor + * - f is the clock frequency + * the possible F, f(max), and D values are defined in ISO/IEC 7816-3 table 7 and 8 + * - the initial value for F (after reset) is Fd = 372 + * - the initial value for D (after reset) is Dd = 1 + * - the initial maximum frequency f(max) is 5 MHz + * the card must measure the ETU based on the clock signal provided by the reader + * one ETU (e.g. 1 bit) takes F/D clock cycles, which the card must count + * + * the card can indicate an alternative set of supported values Fi (with corresponding f(max)) and Di for higher baud rate in TA1 in the ATR (see ISO/IEC 7816-3 section 8.3) + * these values are selected according to ISO/IEC 7816-3 section 6.3.1: + * - card in specific mode: they are enforced if TA2 is present (the reader can deactivate the card if it does not support these values) + * - card in negotiable mode: + * -- they can be selected by the reader using the Protocol and Parameters Selection (PPS) procedure + * -- the first offered protocol and default values are used when no PPS is started + * + * PPS is done with Fd and Dd (see ISO/IEC 7816-3 section 9) + * the reader can propose any F and D values between from Fd to Fi, and from Dd to Di (Fi and Di are indicated in TA1) + * the in PPS agreed values F and D are called Fn and Dn and are applied after a successful exchange, corresponding to PPS1_Response bit 5 + * + * the F and D values must be provided to the SAM3S USART peripheral (after reset and PPS) + */ + +bool iso7816_3_valid_f(uint16_t f) +{ + if (0 == f) { + return false; + } + uint8_t i = 0; + for (i = 0; i < ARRAY_SIZE(iso7816_3_fi_table) && iso7816_3_fi_table[i] != f; i++); + return (i < ARRAY_SIZE(iso7816_3_fi_table) && iso7816_3_fi_table[i] == f); +} + +bool iso7816_3_valid_d(uint8_t d) +{ + if (0 == d) { + return false; + } + uint8_t i = 0; + for (i = 0; i < ARRAY_SIZE(iso7816_3_di_table) && iso7816_3_di_table[i] != d; i++); + return (i < ARRAY_SIZE(iso7816_3_di_table) && iso7816_3_di_table[i] == d); +} + +/* + * the ETU is not only used to define the baud rate, but also the Waiting Time (WT) (see ISO/IEC 7816-3 section 8.1) + * when exceeding WT without card response, the reader flags the card as unresponsive, and resets it + * this can be used by the card to indicate errors or unsupported operations + * if the card requires more time to respond, it shall send a procedure byte to restart WT + * WT is calculated as follows (for T=0, see ISO/IEC 7816-3 section 10.2): WT = WI x 960 x (Fi / f(max)) where + * - WI is encoded in TC2 in the ATR (10 if absent) + * - WI does not depend on D/Di (used for the ETU) + * - after reset WT is 9600 ETU + * - WI (e.g. the new WT) is applied when T=0 is used (after 6.3.1), even if Fi is not Fn (this WT extension is important to know for the reader so to have the right timeout) + */ + +int32_t iso7816_3_calculate_wt(uint8_t wi, uint16_t fi, uint8_t di, uint16_t f, uint8_t d) +{ + // sanity checks + if (0 == wi) { + return -1; + } + if (!iso7816_3_valid_f(fi)) { + return -2; + } + if (!iso7816_3_valid_d(di)) { + return -3; + } + if (!iso7816_3_valid_f(f)) { + return -4; + } + if (!iso7816_3_valid_d(d)) { + return -5; + } + if (f > fi) { + return -6; + } + if (d > di) { + return -7; + } + + return wi * 960UL * (fi/f) * (di/d); // calculate timeout value in ETU +} -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I3d4c65d137fc4555fcb256443feadd1c695de73d Gerrit-Change-Number: 23612 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:44 +0000 Subject: Change in simtrace2[master]: add ISO 7816-3 library to remsim project References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23613 to review the following change. Change subject: add ISO 7816-3 library to remsim project ...................................................................... add ISO 7816-3 library to remsim project Change-Id: I99f3fecbc00d2379c3a6dc457b047c6fee41c292 --- M firmware/apps/cardem/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/13/23613/1 diff --git a/firmware/apps/cardem/Makefile b/firmware/apps/cardem/Makefile index 75c43e8..d5f68a5 100644 --- a/firmware/apps/cardem/Makefile +++ b/firmware/apps/cardem/Makefile @@ -1,3 +1,3 @@ C_FILES += $(C_LIBUSB_RT) -C_FILES += card_emu.c cciddriver.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c +C_FILES += card_emu.c cciddriver.c iso7816_3.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I99f3fecbc00d2379c3a6dc457b047c6fee41c292 Gerrit-Change-Number: 23613 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:45 +0000 Subject: Change in simtrace2[master]: rename PIN_PHONE_IO to PIN_USIM1_IO References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23614 to review the following change. Change subject: rename PIN_PHONE_IO to PIN_USIM1_IO ...................................................................... rename PIN_PHONE_IO to PIN_USIM1_IO this matches the naming scheme used for USIM2 Change-Id: I486b14260faec897e8c8698c4b7987bf36492497 --- M firmware/libboard/simtrace/include/board.h 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/14/23614/1 diff --git a/firmware/libboard/simtrace/include/board.h b/firmware/libboard/simtrace/include/board.h index 35c9426..5302c8b 100644 --- a/firmware/libboard/simtrace/include/board.h +++ b/firmware/libboard/simtrace/include/board.h @@ -78,11 +78,11 @@ /* Phone USIM slot 1 RST pin (active low; RST_PHONE in schematic) */ #define PIN_USIM1_nRST {PIO_PA24, PIOA, ID_PIOA, PIO_INPUT, PIO_IT_EDGE | PIO_DEGLITCH } /* Phone I/O data signal input/output (I/O_PHONE in schematic) */ -#define PIN_PHONE_IO {PIO_PA22A_TXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} +#define PIN_USIM1_IO {PIO_PA22A_TXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} /* Phone CLK clock input (CLK_PHONE in schematic) */ #define PIN_PHONE_CLK {PIO_PA23A_SCK1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} /* Pin used for phone USIM slot 1 communication */ -#define PINS_USIM1 PIN_PHONE_IO, PIN_PHONE_CLK, PIN_PHONE_CLK_INPUT, PIN_USIM1_VCC, PIN_PHONE_IO_INPUT, PIN_USIM1_nRST +#define PINS_USIM1 PIN_USIM1_IO, PIN_PHONE_CLK, PIN_PHONE_CLK_INPUT, PIN_USIM1_VCC, PIN_PHONE_IO_INPUT, PIN_USIM1_nRST /* Phone I/O data signal input/output (unused USART RX input; connected to I/O_PHONE in schematic) */ #define PIN_PHONE_IO_INPUT {PIO_PA21A_RXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} /* Pin used as clock input (to measure the ETU duration; connected to CLK_PHONE in schematic) */ -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I486b14260faec897e8c8698c4b7987bf36492497 Gerrit-Change-Number: 23614 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:45 +0000 Subject: Change in simtrace2[master]: minor add comments References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23615 to review the following change. Change subject: minor add comments ...................................................................... minor add comments this is just to better understand the flow Change-Id: I045286836176da729cc8c863866d6f6aa3836592 --- M firmware/libcommon/source/mode_cardemu.c 1 file changed, 24 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/15/23615/1 diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 6a8d98f..7a37317 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -1,7 +1,7 @@ /* card emulation mode * * (C) 2015-2017 by Harald Welte - * (C) 2018 by sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * (C) 2018-2019 by sysmocom -s.f.m.c. GmbH, Author: Kevin Redon * * 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 @@ -202,32 +202,33 @@ uint32_t csr; uint8_t byte = 0; - csr = usart->US_CSR & usart->US_IMR; + csr = usart->US_CSR & usart->US_IMR; // save state/flags before they get changed - if (csr & US_CSR_RXRDY) { - byte = (usart->US_RHR) & 0xFF; - if (rbuf_write(&ci->rb, byte) < 0) - TRACE_ERROR("rbuf overrun\r\n"); + if (csr & US_CSR_RXRDY) { // bytes has been received + byte = (usart->US_RHR) & 0xFF; // ready out byte + if (rbuf_write(&ci->rb, byte) < 0) // store byte in buffer + TRACE_ERROR("rbuf overrun\r\n"); // error if could not store in buffer } - if (csr & US_CSR_TXRDY) { - if (card_emu_tx_byte(ci->ch) == 0) - USART_DisableIt(usart, US_IER_TXRDY); + if (csr & US_CSR_TXRDY) { // ready to transmit the next byte + if (card_emu_tx_byte(ci->ch) == 0) // transmit next byte, and check if a byte is being transmitted + USART_DisableIt(usart, US_IER_TXRDY); // stop the TX ready signal if not byte has been transmitted } - if (csr & (US_CSR_OVRE|US_CSR_FRAME|US_CSR_PARE| - US_CSR_TIMEOUT|US_CSR_NACK|(1<<10))) { - usart->US_CR = US_CR_RSTSTA | US_CR_RSTIT | US_CR_RSTNACK; - TRACE_ERROR("%u e 0x%x st: 0x%lx\n", ci->num, byte, csr); + if (csr & (US_CSR_OVRE|US_CSR_FRAME|US_CSR_PARE|US_CSR_TIMEOUT|US_CSR_NACK|(1<<10))) { // error flag set + usart->US_CR = US_CR_RSTSTA | US_CR_RSTIT | US_CR_RSTNACK; // reset UART state to clear flag + TRACE_ERROR("%u USART error on 0x%x status: 0x%lx\n", ci->num, byte, csr); // warn user about error } } +/*! ISR called for USART0 */ void mode_cardemu_usart0_irq(void) { /* USART0 == Instance 1 == USIM 2 */ usart_irq_rx(1); } +/*! ISR called for USART1 */ void mode_cardemu_usart1_irq(void) { /* USART1 == Instance 0 == USIM 1 */ @@ -419,15 +420,21 @@ INIT_LLIST_HEAD(&cardem_inst[0].usb_out_queue); rbuf_reset(&cardem_inst[0].rb); PIO_Configure(pins_usim1, PIO_LISTSIZE(pins_usim1)); + + /* configure USART as ISO-7816 slave (e.g. card) */ ISO7816_Init(&cardem_inst[0].usart_info, CLK_SLAVE); NVIC_EnableIRQ(USART1_IRQn); PIO_ConfigureIt(&pin_usim1_rst, usim1_rst_irqhandler); PIO_EnableIt(&pin_usim1_rst); - usim1_rst_irqhandler(&pin_usim1_rst); /* obtain current RST state */ + + /* obtain current RST state */ + usim1_rst_irqhandler(&pin_usim1_rst); #ifndef DETECT_VCC_BY_ADC PIO_ConfigureIt(&pin_usim1_vcc, usim1_vcc_irqhandler); PIO_EnableIt(&pin_usim1_vcc); - usim1_vcc_irqhandler(&pin_usim1_vcc); /* obtain current VCC state */ + + /* obtain current VCC state */ + usim1_vcc_irqhandler(&pin_usim1_vcc); #else do {} while (!adc_triggered); /* wait for first ADC reading */ #endif /* DETECT_VCC_BY_ADC */ @@ -442,6 +449,7 @@ rbuf_reset(&cardem_inst[1].rb); PIO_Configure(pins_usim2, PIO_LISTSIZE(pins_usim2)); ISO7816_Init(&cardem_inst[1].usart_info, CLK_SLAVE); + // TODO enable timeout NVIC_EnableIRQ(USART0_IRQn); PIO_ConfigureIt(&pin_usim2_rst, usim2_rst_irqhandler); PIO_EnableIt(&pin_usim2_rst); @@ -458,6 +466,7 @@ SIMTRACE_CARDEM_USB_EP_USIM2_INT, cardem_inst[1].vcc_active, cardem_inst[1].rst_active, cardem_inst[1].vcc_active); sim_switch_use_physical(1, 1); + // TODO check rst and vcc #endif /* CARDEMU_SECOND_UART */ } -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I045286836176da729cc8c863866d6f6aa3836592 Gerrit-Change-Number: 23615 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:46 +0000 Subject: Change in simtrace2[master]: different voltage comparison on powerup References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23616 to review the following change. Change subject: different voltage comparison on powerup ...................................................................... different voltage comparison on powerup Change-Id: I71b703162219484e43638f1f2f692e9dd554ef55 --- M firmware/libcommon/source/mode_cardemu.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/16/23616/1 diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 7a37317..1dbd2d3 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -62,6 +62,7 @@ const Pin pin_insert; #ifdef DETECT_VCC_BY_ADC uint32_t vcc_uv; + uint32_t vcc_uv_last; #endif bool vcc_active; bool vcc_active_last; @@ -197,6 +198,7 @@ /* FIXME: integrate this with actual irq handler */ static void usart_irq_rx(uint8_t inst_num) { + OSMO_ASSERT(inst_num < ARRAY_SIZE(cardem_inst)); Usart *usart = get_usart_by_chan(inst_num); struct cardem_inst *ci = &cardem_inst[inst_num]; uint32_t csr; @@ -319,10 +321,14 @@ static void process_vcc_adc(struct cardem_inst *ci) { - if (ci->vcc_uv >= VCC_UV_THRESH_3V) + if (ci->vcc_uv >= VCC_UV_THRESH_3V && + ci->vcc_uv_last < VCC_UV_THRESH_3V) { ci->vcc_active = true; - else + } else if (ci->vcc_uv < VCC_UV_THRESH_3V && + ci->vcc_uv_last >= VCC_UV_THRESH_3V) { ci->vcc_active = false; + } + ci->vcc_uv_last = ci->vcc_uv; } void ADC_IrqHandler(void) -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I71b703162219484e43638f1f2f692e9dd554ef55 Gerrit-Change-Number: 23616 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:46 +0000 Subject: Change in simtrace2[master]: cardemu: different init for simtrace board which uses uart timers References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23617 to review the following change. Change subject: cardemu: different init for simtrace board which uses uart timers ...................................................................... cardemu: different init for simtrace board which uses uart timers Change-Id: I464f0ce1ec5e60be5f9377186b7d13a5e6dc637e --- M firmware/libcommon/source/mode_cardemu.c 1 file changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/17/23617/1 diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 1dbd2d3..c6c129d 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -429,7 +429,20 @@ /* configure USART as ISO-7816 slave (e.g. card) */ ISO7816_Init(&cardem_inst[0].usart_info, CLK_SLAVE); +#ifdef BOARD_simtrace + /* simtrace board uses uart timeouts */ + + /* don't use receive timeout timer for now */ + cardem_inst[0].usart_info.base->US_RTOR = 0; + /* enable interrupts to indicate when data has been received or timeout occurred */ + USART_EnableIt(cardem_inst[0].usart_info.base, US_IER_RXRDY | US_IER_TIMEOUT); +#else + /* enable interrupts to indicate when data has been received */ + USART_EnableIt(cardem_inst[0].usart_info.base, US_IER_RXRDY ); +#endif + /* enable interrupt requests for the USART peripheral */ NVIC_EnableIRQ(USART1_IRQn); + PIO_ConfigureIt(&pin_usim1_rst, usim1_rst_irqhandler); PIO_EnableIt(&pin_usim1_rst); -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I464f0ce1ec5e60be5f9377186b7d13a5e6dc637e Gerrit-Change-Number: 23617 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:47 +0000 Subject: Change in simtrace2[master]: make sim switch board specific References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23618 to review the following change. Change subject: make sim switch board specific ...................................................................... make sim switch board specific the simtrace board uses a bus switch not used on qmod and owhw to switch the SIM between physical and virtual Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e --- M firmware/libboard/common/include/sim_switch.h R firmware/libboard/owhw/source/sim_switch.c C firmware/libboard/qmod/source/sim_switch.c A firmware/libboard/simtrace/source/sim_switch.c 4 files changed, 71 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/18/23618/1 diff --git a/firmware/libboard/common/include/sim_switch.h b/firmware/libboard/common/include/sim_switch.h index 3d131f2..4439fa5 100644 --- a/firmware/libboard/common/include/sim_switch.h +++ b/firmware/libboard/common/include/sim_switch.h @@ -14,5 +14,13 @@ */ #pragma once +/** switch card lines to use physical or emulated card + * @param[in] nr card interface number (i.e. slot) + * @param[in] physical which physical interface to switch to (e.g. 0: physical, 1: virtual) + * @return 0 on success, negative else + */ int sim_switch_use_physical(unsigned int nr, int physical); +/** initialise card switching capabilities + * @return number of switchable card interfaces + */ int sim_switch_init(void); diff --git a/firmware/libboard/common/source/sim_switch.c b/firmware/libboard/owhw/source/sim_switch.c similarity index 100% rename from firmware/libboard/common/source/sim_switch.c rename to firmware/libboard/owhw/source/sim_switch.c diff --git a/firmware/libboard/common/source/sim_switch.c b/firmware/libboard/qmod/source/sim_switch.c similarity index 100% copy from firmware/libboard/common/source/sim_switch.c copy to firmware/libboard/qmod/source/sim_switch.c diff --git a/firmware/libboard/simtrace/source/sim_switch.c b/firmware/libboard/simtrace/source/sim_switch.c new file mode 100644 index 0000000..38886b1 --- /dev/null +++ b/firmware/libboard/simtrace/source/sim_switch.c @@ -0,0 +1,63 @@ +/* Code to switch between local (physical) and remote (emulated) SIM + * + * (C) 2015-2017 by Harald Welte + * (C) 2018, sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * 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 "board.h" +#include "trace.h" +#include "led.h" +#include "sim_switch.h" + +#ifdef PIN_SIM_SWITCH1 +static const Pin pin_conn_usim1 = {PIO_PA20, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}; +#endif +#ifdef PIN_SIM_SWITCH2 +static const Pin pin_conn_usim2 = {PIO_PA28, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}; +#endif + +static int initialized = 0; + +int sim_switch_use_physical(unsigned int nr, int physical) +{ + const Pin pin_sc = PIN_SC_SW_DEFAULT; // pin to control bus switch for VCC/RST/CLK signals + const Pin pin_io = PIN_IO_SW_DEFAULT; // pin to control bus switch for I/O signal + + if (nr > 0) { + TRACE_ERROR("SIM interface for Modem %d can't be switched\r\n", nr); + return -1; + } + + TRACE_INFO("Modem %u: %s SIM\n\r", nr, physical ? "physical" : "virtual"); + + if (physical) { + TRACE_INFO("%u: Use local/physical SIM\r\n", nr); + PIO_Set(&pin_sc); + PIO_Set(&pin_io); + } else { + TRACE_INFO("%u: Use remote/emulated SIM\r\n", nr); + PIO_Clear(&pin_sc); + PIO_Clear(&pin_io); + } + + return 0; +} + +int sim_switch_init(void) +{ + // the bus switch is already initialised + return 1; // SIMtrace hardware has only one switchable interface +} -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e Gerrit-Change-Number: 23618 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:47 +0000 Subject: Change in simtrace2[master]: cardem: currently simtrace does not support cardem References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23619 to review the following change. Change subject: cardem: currently simtrace does not support cardem ...................................................................... cardem: currently simtrace does not support cardem the SIMtrace board does not support the current card emulation application because this uses a timer counter to handle the timeouts, but on the SIMtrace board this is not connected to the CLK signal Change-Id: Idd09ea534179f0ede705573e1373dbd045c9828a --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/19/23619/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 8268bcf..1d6ff37 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -28,7 +28,7 @@ export LD_LIBRARY_PATH="$inst/lib" BUILDS="" -BUILDS+="simtrace/dfu simtrace/cardem simtrace/trace " # simtrace/triple_play +BUILDS+="simtrace/dfu simtrace/trace " BUILDS+="qmod/dfu qmod/cardem " BUILDS+="owhw/dfu owhw/cardem " -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Idd09ea534179f0ede705573e1373dbd045c9828a Gerrit-Change-Number: 23619 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:48 +0000 Subject: Change in simtrace2[master]: cardem: use USART timeout for waiting time References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23620 to review the following change. Change subject: cardem: use USART timeout for waiting time ...................................................................... cardem: use USART timeout for waiting time the reset/ATR handling has been heavily updated/fixed. instead of using the timer counter peripheral to handle the waiting time and corresponding timeout, the USART peripheral internal timeout mechanism is used. this is particularly important for the SIMtrace board since the clock signal is not connected to the timer counter. thus this change adds card emulation support for SIMtrace boards. Fi and Di have been properly rename to F and D since the "i" stands only for an "indicated" value, not the actual value. this does not change the USB protocol (the variable have just been renamed). additional variables store more information about the card capabilities NOTE: it has only be tested for the SIMtrace board Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 --- M contrib/jenkins.sh M firmware/apps/cardem/Makefile M firmware/apps/cardem/main.c M firmware/apps/trace/Makefile M firmware/libboard/qmod/include/board.h M firmware/libboard/simtrace/include/board.h M firmware/libcommon/include/card_emu.h M firmware/libcommon/include/simtrace_prot.h M firmware/libcommon/include/tc_etu.h M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/mode_cardemu.c M firmware/libcommon/source/tc_etu.c M firmware/libosmocore/include/osmocom/core/utils.h M host/src/simtrace2-cardem-pcsc.c 14 files changed, 365 insertions(+), 66 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/20/23620/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 1d6ff37..3f2eb7e 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -28,7 +28,7 @@ export LD_LIBRARY_PATH="$inst/lib" BUILDS="" -BUILDS+="simtrace/dfu simtrace/trace " +BUILDS+="simtrace/dfu simtrace/trace simtrace/cardem " BUILDS+="qmod/dfu qmod/cardem " BUILDS+="owhw/dfu owhw/cardem " diff --git a/firmware/apps/cardem/Makefile b/firmware/apps/cardem/Makefile index d5f68a5..d2039a5 100644 --- a/firmware/apps/cardem/Makefile +++ b/firmware/apps/cardem/Makefile @@ -1,3 +1,3 @@ C_FILES += $(C_LIBUSB_RT) -C_FILES += card_emu.c cciddriver.c iso7816_3.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c +C_FILES += card_emu.c iso7816_fidi.c iso7816_3.c iso7816_4.c mode_cardemu.c simtrace_iso7816.c tc_etu.c usb.c diff --git a/firmware/apps/cardem/main.c b/firmware/apps/cardem/main.c index a30a211..e1ab8fb 100644 --- a/firmware/apps/cardem/main.c +++ b/firmware/apps/cardem/main.c @@ -165,7 +165,7 @@ while (USBD_GetState() < USBD_STATE_CONFIGURED) { WDT_Restart(WDT); check_exec_dbg_cmd(); -#if 0 +#if 1 if (i >= MAX_USB_ITER * 3) { TRACE_ERROR("Resetting board (USB could " "not be configured)\n\r"); diff --git a/firmware/apps/trace/Makefile b/firmware/apps/trace/Makefile index 75c43e8..ddea898 100644 --- a/firmware/apps/trace/Makefile +++ b/firmware/apps/trace/Makefile @@ -1,3 +1,3 @@ C_FILES += $(C_LIBUSB_RT) -C_FILES += card_emu.c cciddriver.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c +C_FILES += iso7816_4.c iso7816_fidi.c simtrace_iso7816.c sniffer.c usb.c diff --git a/firmware/libboard/qmod/include/board.h b/firmware/libboard/qmod/include/board.h index 5165434..6f95d12 100644 --- a/firmware/libboard/qmod/include/board.h +++ b/firmware/libboard/qmod/include/board.h @@ -111,4 +111,7 @@ #define CARDEMU_SECOND_UART #define DETECT_VCC_BY_ADC +/** sysmoQMOD only supports card emulation */ +#ifdef APPLICATION_cardem #define HAVE_CARDEM +#endif diff --git a/firmware/libboard/simtrace/include/board.h b/firmware/libboard/simtrace/include/board.h index 5302c8b..65e6197 100644 --- a/firmware/libboard/simtrace/include/board.h +++ b/firmware/libboard/simtrace/include/board.h @@ -153,10 +153,18 @@ /** Supported modes */ /* SIMtrace board supports sniffer mode */ +#ifdef APPLICATION_trace #define HAVE_SNIFFER +#endif /* SIMtrace board supports CCID mode */ +#ifdef APPLICATION_ccid //#define HAVE_CCID +#endif /* SIMtrace board supports card emulation mode */ -//#define HAVE_CARDEM +#ifdef APPLICATION_cardem +#define HAVE_CARDEM +#endif /* SIMtrace board supports man-in-the-middle mode */ +#ifdef APPLICATION_mitm //#define HAVE_MITM +#endif diff --git a/firmware/libcommon/include/card_emu.h b/firmware/libcommon/include/card_emu.h index 8a73d5c..494d1e6 100644 --- a/firmware/libcommon/include/card_emu.h +++ b/firmware/libcommon/include/card_emu.h @@ -58,10 +58,43 @@ void card_emu_have_new_uart_tx(struct card_handle *ch); void card_emu_report_status(struct card_handle *ch, bool report_on_irq); +/*! call when the waiting time has half-expired + * param[in] ch card for which the waiting time half expired + */ +void card_emu_wt_halfed(void *ch); +/*! call when the waiting time has expired + * param[in] ch card for which the waiting time expired + */ +void card_emu_wt_expired(void *ch); + #define ENABLE_TX 0x01 #define ENABLE_RX 0x02 +// the following functions are callbacks implement in mode_cardemu.c + int card_emu_uart_update_fidi(uint8_t uart_chan, unsigned int fidi); + +/*! update F and D on USART peripheral + * @param[in] usart USART peripheral to configure + * @param[in] f clock rate conversion integer F value + * @param[in] d baud rate adjustment factor D value + * @note this should happen after reset and protocol select (through PPS or implicit) + */ +void card_emu_uart_update_fd(uint8_t uart_chan, uint16_t f, uint8_t d); +/*! update WT on USART peripheral + * @param[in] usart USART peripheral to configure + * @param[in] wt inactivity Waiting Time before card_emu_wt_expired is called (0 to disable) + */ +void card_emu_uart_update_wt(uint8_t uart_chan, uint32_t wt); +/*! reset waiting timeout count down on USART peripheral + * @param[in] usart USART peripheral to configure + */ +void card_emu_uart_reset_wt(uint8_t uart_chan); +/*! set I/O line high + * @param[in] usart USART peripheral to configure + * @param[in] set if I/O line should be set high (true), or cleared low (false) + */ +void card_emu_uart_io_set(uint8_t uart_chan, bool set); int card_emu_uart_tx(uint8_t uart_chan, uint8_t byte); void card_emu_uart_enable(uint8_t uart_chan, uint8_t rxtx); void card_emu_uart_wait_tx_idle(uint8_t uart_chan); diff --git a/firmware/libcommon/include/simtrace_prot.h b/firmware/libcommon/include/simtrace_prot.h index eca844a..e4832bb 100644 --- a/firmware/libcommon/include/simtrace_prot.h +++ b/firmware/libcommon/include/simtrace_prot.h @@ -230,11 +230,10 @@ uint32_t flags; /* phone-applied target voltage in mV */ uint16_t voltage_mv; - /* Fi/Di related information */ - uint8_t fi; - uint8_t di; - uint8_t wi; - uint32_t waiting_time; + uint8_t f; /*!< index of F and f_max values as encoded in ISO/IEC 7816-3:2006(E) Table 7 */ + uint8_t d; /*!< index of D value as encoded in ISO/IEC 7816-3:2006(E) Table 8 */ + uint8_t wi; /*!< Waiting Integer as defined in ISO/IEC 7816-3:2006(E) Section 10.2 */ + uint32_t wt; /*!< Waiting Time in ETU as defined in ISO/IEC 7816-3:2006(E) Section 8.1 */ } __attribute__ ((packed)); /* CEMU_USB_MSGT_DO_PTS */ diff --git a/firmware/libcommon/include/tc_etu.h b/firmware/libcommon/include/tc_etu.h index 663ae5a..8817a41 100644 --- a/firmware/libcommon/include/tc_etu.h +++ b/firmware/libcommon/include/tc_etu.h @@ -7,5 +7,3 @@ void tc_etu_enable(uint8_t chan_nr); void tc_etu_disable(uint8_t chan_nr); -extern void tc_etu_wtime_half_expired(void *handle); -extern void tc_etu_wtime_expired(void *handle); diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 269c7c6..fb532d5 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -1,7 +1,7 @@ /* ISO7816-3 state machine for the card side * * (C) 2010-2019 by Harald Welte - * (C) 2018 by sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * (C) 2018-2019 by sysmocom -s.f.m.c. GmbH, Author: Kevin Redon * * 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 @@ -26,6 +26,7 @@ #include "utils.h" #include "trace.h" +#include "iso7816_3.h" #include "iso7816_fidi.h" #include "tc_etu.h" #include "card_emu.h" @@ -154,18 +155,53 @@ bool in_reset; /*< if card is in reset (true = RST low/asserted, false = RST high/ released) */ bool clocked; /*< if clock is active ( true = active, false = inactive) */ - /* timing parameters, from PTS */ - uint8_t fi; - uint8_t di; - uint8_t wi; - uint8_t tc_chan; /* TC channel number */ uint8_t uart_chan; /* UART channel */ uint8_t in_ep; /* USB IN EP */ uint8_t irq_ep; /* USB IN EP */ - uint32_t waiting_time; /* in clocks */ + /*! clock rate conversion integer F + * @implements ISO/IEC 7816-3:2006(E) section 7.1 + * @note this represents the current value used + */ + uint16_t f; + /*! baud rate adjustment factor D + * @implements ISO/IEC 7816-3:2006(E) section 7.1 + * @note this represents the current value used + */ + uint8_t d; + /*! clock frequency in Hz + * @implements ISO/IEC 7816-3:2006(E) section 7.1 + * @note the USART peripheral in slave mode does not provide the current value. we could measure it but this is not really useful. instead we remember the maximum possible value corresponding to the selected F value + */ + uint32_t f_cur; + /*! clock rate conversion integer Fi + * @implements ISO/IEC 7816-3:2006(E) Table 7 + * @note this represents the maximum value supported by the card, and can be indicated in TA1 + * @note this value can be set in TA1 + */ + uint16_t fi; + /*! baud rate adjustment factor Di + * @implements ISO/IEC 7816-3:2006(E) Table 8 + * @note this represents the maximum value supported by the card, and can be indicated in TA1 + */ + uint8_t di; + /*! clock frequency, in Hz + * @implements ISO/IEC 7816-3:2006(E) Table 7 + * @note this represents the maximum value supported by the card, and can be indicated in TA1 + */ + uint32_t f_max; + /*! Waiting Integer + * @implements ISO/IEC 7816-3:2006(E) Section 10.2 + * @note this value can be set in TA2 + */ + uint8_t wi; + /*! Waiting Time, in ETU + * @implements ISO/IEC 7816-3:2006(E) Section 8.1 + * @note this depends on Fi, Di, and WI if T=0 is used + */ + uint32_t wt; /* ATR state machine */ struct { @@ -206,7 +242,9 @@ { struct msgb *msg; +#ifndef BOARD_simtrace tc_etu_disable(ch->tc_chan); +#endif /* release any buffers we may still own */ if (ch->uart_tx_msg) { @@ -390,13 +428,44 @@ case ISO_S_WAIT_POWER: case ISO_S_WAIT_CLK: case ISO_S_WAIT_RST: - /* disable Rx and Tx of UART */ - card_emu_uart_enable(ch->uart_chan, 0); + card_emu_uart_enable(ch->uart_chan, 0); // disable Rx and Tx of UART +#ifdef BOARD_simtrace + card_emu_uart_update_wt(ch->uart_chan, 0); // disable timeout + if (ISO_S_WAIT_POWER == new_state) { + card_emu_uart_io_set(ch->uart_chan, false); // pull I/O line low + } else { + card_emu_uart_io_set(ch->uart_chan, true); // pull I/O line high + } +#endif break; case ISO_S_WAIT_ATR: + + // reset the ETU-related values + ch->f = ISO7816_3_DEFAULT_FD; + ch->d = ISO7816_3_DEFAULT_DD; + +#ifdef BOARD_simtrace + card_emu_uart_update_fd(ch->uart_chan, ch->f, ch->d); // set baud rate + + // reset values optionally specified in the ATR + ch->fi = ISO7816_3_DEFAULT_FI; + ch->di = ISO7816_3_DEFAULT_DI; + ch->wi = ISO7816_3_DEFAULT_WI; + int32_t wt = iso7816_3_calculate_wt(ch->wi, ch->fi, ch->di, ch->f, ch->d); // get default waiting time + if (wt <= 0) { + TRACE_FATAL("%u: invalid WT %ld\r\n", ch->num, wt); + } + ch->wt = wt; + card_emu_uart_enable(ch->uart_chan, ENABLE_TX); // enable TX to be able to use the timeout + /* the ATR should only be sent 400 to 40k clock cycles after the RESET. + * we use the UART timeout mechanism to wait this time. + * since the initial ETU is Fd=372/Dd=1 clock cycles long, we have to wait 2-107 ETU. + */ + card_emu_uart_update_wt(ch->uart_chan, 2); +#else /* Reset to initial Fi / Di ratio */ - ch->fi = 1; - ch->di = 1; + ch->f = 1; + ch->d = 1; emu_update_fidi(ch); /* the ATR should only be sent 400 to 40k clock cycles after the RESET. * we use the tc_etu mechanism to wait this time. @@ -405,16 +474,20 @@ tc_etu_set_wtime(ch->tc_chan, 2); /* enable the TC/ETU counter once reset has been released */ tc_etu_enable(ch->tc_chan); +#endif + break; case ISO_S_IN_ATR: +#ifndef BOARD_simtrace /* initialize to default WI, this will be overwritten if we * send TC2, and it will be programmed into hardware after * ATR is finished */ ch->wi = ISO7816_3_DEFAULT_WI; /* update waiting time to initial waiting time */ - ch->waiting_time = ISO7816_3_INIT_WTIME; + ch->wt = ISO7816_3_INIT_WTIME; /* set initial waiting time */ - tc_etu_set_wtime(ch->tc_chan, ch->waiting_time); + tc_etu_set_wtime(ch->tc_chan, ch->wt); +#endif /* Set ATR sub-state to initial state */ ch->atr.idx = 0; /* enable USART transmission to reader */ @@ -489,9 +562,15 @@ } } } +#ifdef BOARD_simtrace + /* FIXME update waiting time in case of card is specific mode */ + /* reset PTS to initial state */ + set_pts_state(ch, PTS_S_WAIT_REQ_PTSS); +#else /* update waiting time (see ISO 7816-3 10.2) */ - ch->waiting_time = ch->wi * 960 * ch->fi; - tc_etu_set_wtime(ch->tc_chan, ch->waiting_time); + ch->wt = ch->wi * 960 * ch->fi; + tc_etu_set_wtime(ch->tc_chan, ch->wt); +#endif /* go to next state */ card_set_state(ch, ISO_S_WAIT_TPDU); return 0; @@ -557,9 +636,12 @@ return PTS_S_WAIT_REQ_PCK | is_resp; } - -static int -process_byte_pts(struct card_handle *ch, uint8_t byte) +/*! process incoming PTS byte + * @param[in] ch card handle on which the byte has been received + * @param[in] byte received PTS byte + * @return new iso7816_3_card_state or -1 at the end of PTS request + */ +static int process_byte_pts(struct card_handle *ch, uint8_t byte) { switch (ch->pts.state) { case PTS_S_WAIT_REQ_PTSS: @@ -625,11 +707,17 @@ break; case PTS_S_WAIT_RESP_PTS1: byte = ch->pts.resp[_PTS1]; - /* This must be TA1 */ - ch->fi = byte >> 4; - ch->di = byte & 0xf; - TRACE_DEBUG("%u: found Fi=%u Di=%u\r\n", ch->num, - ch->fi, ch->di); + // TODO the value should have been validated when receiving the request + ch->f = iso7816_3_fi_table[byte >> 4]; // save selected Fn + if (0 == ch->f) { + TRACE_ERROR("%u: invalid F index in PPS response: %u\r\n", ch->num, byte >> 4); + // TODO become unresponsive to signal error condition + } + ch->d = iso7816_3_di_table[byte & 0xf]; // save selected Dn + if (0 == ch->d) { + TRACE_ERROR("%u: invalid D index in PPS response: %u\r\n", ch->num, byte & 0xf); + // TODO become unresponsive to signal error condition + } break; case PTS_S_WAIT_RESP_PTS2: byte = ch->pts.resp[_PTS2]; @@ -654,10 +742,23 @@ switch (ch->pts.state) { case PTS_S_WAIT_RESP_PCK: card_emu_uart_wait_tx_idle(ch->uart_chan); +#ifdef BOARD_simtrace + card_emu_uart_update_fd(ch->uart_chan, ch->f, ch->d); // set selected baud rate + int32_t wt = iso7816_3_calculate_wt(ch->wi, ch->fi, ch->di, ch->f, ch->d); // get new waiting time + if (wt <= 0) { + TRACE_ERROR("%u: invalid WT calculated: %ld\r\n", ch->num, wt); + // TODO become unresponsive to signal error condition + } else { + ch->wt = wt; + } + // FIXME disable WT +#else /* update baud rate generator with Fi/Di */ emu_update_fidi(ch); +#endif /* Wait for the next TPDU */ card_set_state(ch, ISO_S_WAIT_TPDU); + set_pts_state(ch, PTS_S_WAIT_REQ_PTSS); break; default: /* calculate the next state and set it */ @@ -725,6 +826,10 @@ { if (ch->tpdu.state == new_ts) return; + if (ISO_S_IN_TPDU != ch->state) { + TRACE_ERROR("%u: setting TPDU state in %s state\r\n", ch->num, + get_value_string(iso7816_3_card_state_names, ch->state)); + } TRACE_DEBUG("%u: 7816 TPDU state %s -> %s\r\n", ch->num, get_value_string(tpdu_state_names, ch->tpdu.state), @@ -732,15 +837,20 @@ ch->tpdu.state = new_ts; switch (new_ts) { - case TPDU_S_WAIT_CLA: - case TPDU_S_WAIT_RX: - card_emu_uart_enable(ch->uart_chan, ENABLE_RX); + case TPDU_S_WAIT_CLA: // we will be waiting for the next incoming TDPU + card_emu_uart_enable(ch->uart_chan, ENABLE_RX); // switch back to receiving mode + card_emu_uart_update_wt(ch->uart_chan, 0); // disable waiting time since we don't expect any data + break; + case TPDU_S_WAIT_INS: // the reader started sending the TPDU header + card_emu_uart_update_wt(ch->uart_chan, ch->wt); // start waiting for the rest of the header/body + break; + case TPDU_S_WAIT_RX: // the reader should send us the TPDU body data + card_emu_uart_enable(ch->uart_chan, ENABLE_RX); // switch to receive mode to receive the body + card_emu_uart_update_wt(ch->uart_chan, ch->wt); // start waiting for the rest body break; case TPDU_S_WAIT_PB: - /* we just completed the TPDU header from reader to card - * and now need to disable the receiver, enable the - * transmitter and transmit the procedure byte */ - card_emu_uart_enable(ch->uart_chan, ENABLE_TX); + card_emu_uart_enable(ch->uart_chan, ENABLE_TX); // header is completely received, now we need to transmit the procedure byte + card_emu_uart_update_wt(ch->uart_chan, ch->wt); // prepare to extend the waiting time once half of it is reached break; default: break; @@ -1024,11 +1134,11 @@ sts->flags |= CEMU_STATUS_F_CLK_ACTIVE; if (ch->in_reset) sts->flags |= CEMU_STATUS_F_RESET_ACTIVE; - /* FIXME: voltage + card insert */ - sts->fi = ch->fi; - sts->di = ch->di; + /* FIXME set voltage and card insert values */ + sts->f = ch->f; + sts->d = ch->d; sts->wi = ch->wi; - sts->waiting_time = ch->waiting_time; + sts->wt = ch->wt; usb_buf_upd_len_and_submit(msg); } @@ -1083,9 +1193,7 @@ case CARD_IO_RST: if (active == 0 && ch->in_reset) { TRACE_INFO("%u: RST released\r\n", ch->num); - if (ch->vcc_active && ch->clocked) { - /* enable the TC/ETU counter once reset has been released */ - tc_etu_enable(ch->tc_chan); + if (ch->vcc_active && ch->clocked && ISO_S_WAIT_RST == ch->state) { /* prepare to send the ATR */ card_set_state(ch, ISO_S_WAIT_ATR); } @@ -1094,9 +1202,14 @@ TRACE_INFO("%u: RST asserted\r\n", ch->num); card_handle_reset(ch); chg_mask |= CEMU_STATUS_F_RESET_ACTIVE; +#ifdef BOARD_simtrace + card_set_state(ch, ISO_S_WAIT_RST); +#endif } ch->in_reset = active; break; + default: + break; } switch (ch->state) { @@ -1143,7 +1256,7 @@ } /* hardware driver informs us that one (more) ETU has expired */ -void tc_etu_wtime_half_expired(void *handle) +void card_emu_wt_halfed(void *handle) { struct card_handle *ch = handle; /* transmit NULL procedure byte well before waiting time expires */ @@ -1153,7 +1266,8 @@ case TPDU_S_WAIT_PB: case TPDU_S_WAIT_TX: putchar('N'); - card_emu_uart_tx(ch->uart_chan, ISO7816_3_PB_NULL); + card_emu_uart_tx(ch->uart_chan, ISO7816_3_PB_NULL); // we are waiting for data from the user. send a procedure byte to ask the reader to wait more time + card_emu_uart_reset_wt(ch->uart_chan); // reset WT break; default: break; @@ -1165,7 +1279,7 @@ } /* hardware driver informs us that one (more) ETU has expired */ -void tc_etu_wtime_expired(void *handle) +void card_emu_wt_expired(void *handle) { struct card_handle *ch = handle; switch (ch->state) { @@ -1174,6 +1288,7 @@ card_set_state(ch, ISO_S_IN_ATR); break; default: + // TODO become unresponsive TRACE_ERROR("%u: wtime_exp\r\n", ch->num); break; } @@ -1224,6 +1339,7 @@ INIT_LLIST_HEAD(&ch->uart_tx_queue); + /* initialize the card_handle with reasonable defaults */ ch->num = slot_num; ch->irq_ep = irq_ep; ch->in_ep = in_ep; @@ -1232,21 +1348,26 @@ ch->in_reset = in_reset; ch->clocked = clocked; - ch->fi = 0; - ch->di = 1; + ch->fi = ISO7816_3_DEFAULT_FI; + ch->di = ISO7816_3_DEFAULT_DI; ch->wi = ISO7816_3_DEFAULT_WI; + ch->wt = ISO7816_3_DEFAULT_WT;; ch->tc_chan = tc_chan; ch->uart_chan = uart_chan; - ch->waiting_time = ISO7816_3_INIT_WTIME; ch->atr.idx = 0; ch->atr.len = sizeof(default_atr); memcpy(ch->atr.atr, default_atr, ch->atr.len); - card_handle_reset(ch); + ch->pts.state = PTS_S_WAIT_REQ_PTSS; + ch->tpdu.state = TPDU_S_WAIT_CLA; + card_handle_reset(ch); +#ifndef BOARD_simtrace + /* simtrace uses uart timer instead */ tc_etu_init(ch->tc_chan, ch); +#endif return ch; } diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index c6c129d..32d3b17 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -22,6 +22,7 @@ #include "simtrace.h" #include "ringbuffer.h" #include "card_emu.h" +#include "iso7816_3.h" #include "iso7816_fidi.h" #include "utils.h" #include @@ -54,11 +55,15 @@ struct card_handle *ch; struct llist_head usb_out_queue; struct ringbuf rb; + uint32_t wt; /*!< receiver waiting time to trigger timeout (0 to deactivate it) */ + uint32_t wt_remaining; /*!< remaining waiting time */ + bool wt_halfed; /*!< if at least half of the waiting time passed */ struct Usart_info usart_info; int usb_pending_old; uint8_t ep_out; uint8_t ep_in; uint8_t ep_int; + const Pin pin_io; const Pin pin_insert; #ifdef DETECT_VCC_BY_ADC uint32_t vcc_uv; @@ -81,6 +86,7 @@ .ep_out = SIMTRACE_CARDEM_USB_EP_USIM1_DATAOUT, .ep_in = SIMTRACE_CARDEM_USB_EP_USIM1_DATAIN, .ep_int = SIMTRACE_CARDEM_USB_EP_USIM1_INT, + .pin_io = PIN_USIM1_IO, #ifdef PIN_SET_USIM1_PRES .pin_insert = PIN_SET_USIM1_PRES, #endif @@ -96,6 +102,7 @@ .ep_out = SIMTRACE_CARDEM_USB_EP_USIM2_DATAOUT, .ep_in = SIMTRACE_CARDEM_USB_EP_USIM2_DATAIN, .ep_int = SIMTRACE_CARDEM_USB_EP_USIM2_INT, + .pin_io = PIN_USIM2_IO, #ifdef PIN_SET_USIM2_PRES .pin_insert = PIN_SET_USIM2_PRES, #endif @@ -146,7 +153,11 @@ * receiver enabled during transmit */ USART_SetReceiverEnabled(usart, 1); usart->US_CR = US_CR_RSTSTA | US_CR_RSTIT | US_CR_RSTNACK; +#ifdef BOARD_simtrace + USART_EnableIt(usart, US_IER_TXRDY | US_IER_TIMEOUT); +#else USART_EnableIt(usart, US_IER_TXRDY); +#endif USART_SetTransmitterEnabled(usart, 1); break; case ENABLE_RX: @@ -156,7 +167,11 @@ USART_SetTransmitterEnabled(usart, 1); wait_tx_idle(usart); usart->US_CR = US_CR_RSTSTA | US_CR_RSTIT | US_CR_RSTNACK; +#ifdef BOARD_simtrace + USART_EnableIt(usart, US_IER_RXRDY | US_IER_TIMEOUT); +#else USART_EnableIt(usart, US_IER_RXRDY); +#endif USART_SetReceiverEnabled(usart, 1); break; case 0: @@ -198,11 +213,18 @@ /* FIXME: integrate this with actual irq handler */ static void usart_irq_rx(uint8_t inst_num) { - OSMO_ASSERT(inst_num < ARRAY_SIZE(cardem_inst)); + if (inst_num >= ARRAY_SIZE(cardem_inst)) { + TRACE_ERROR("%u: UART channel out of bounds\r\n", inst_num); + return; + } Usart *usart = get_usart_by_chan(inst_num); struct cardem_inst *ci = &cardem_inst[inst_num]; uint32_t csr; uint8_t byte = 0; + uint32_t errflags = (US_CSR_OVRE | US_CSR_FRAME | US_CSR_PARE | US_CSR_NACK | (1 << 10)); +#ifndef BOARD_simtrace + errflags |= US_CSR_TIMEOUT; +#endif csr = usart->US_CSR & usart->US_IMR; // save state/flags before they get changed @@ -217,10 +239,33 @@ USART_DisableIt(usart, US_IER_TXRDY); // stop the TX ready signal if not byte has been transmitted } - if (csr & (US_CSR_OVRE|US_CSR_FRAME|US_CSR_PARE|US_CSR_TIMEOUT|US_CSR_NACK|(1<<10))) { // error flag set + if (csr & errflags) { // error flag set usart->US_CR = US_CR_RSTSTA | US_CR_RSTIT | US_CR_RSTNACK; // reset UART state to clear flag TRACE_ERROR("%u USART error on 0x%x status: 0x%lx\n", ci->num, byte, csr); // warn user about error } +#ifdef BOARD_simtrace + // handle timeout + if (csr & US_CSR_TIMEOUT) { // RX has been inactive for some time + if (ci->wt_remaining <= (usart->US_RTOR & 0xffff)) { // waiting time has passed + ci->wt_remaining = 0; // timeout reached (will stop the timer) + } else { + ci->wt_remaining -= (usart->US_RTOR & 0xffff); // be sure to subtract the actual timeout since the new might not have been set and reloaded yet + } + if (0 == ci->wt_remaining) { + card_emu_wt_expired(ci->ch); // let the state know WT has expired + } else if (ci->wt_remaining <= ci->wt / 2 && !ci->wt_halfed) { + ci->wt_halfed = true; + card_emu_wt_halfed(ci->ch); // let the state know WT has half expired + } + if (ci->wt_remaining > 0xffff) { // value exceeds the USART TO range + usart->US_RTOR = 0xffff; // use the MAX + } else { + usart->US_RTOR = ci->wt_remaining; + } + usart->US_CR |= US_CR_STTTO; // clear timeout flag (and stop timeout until next character is received) + usart->US_CR |= US_CR_RETTO; // restart the counter (it wt is 0, the timeout is not started) + } +#endif } /*! ISR called for USART0 */ @@ -249,6 +294,91 @@ return 0; } +// call-back from card_emu.c to change UART baud rate +void card_emu_uart_update_fd(uint8_t uart_chan, uint16_t f, uint8_t d) +{ + Usart *usart = get_usart_by_chan(uart_chan); // get the USART based on the card handle + if (NULL == usart) { + TRACE_ERROR("%u: USART not found by chan\r\n", uart_chan); + return; + } + if (!iso7816_3_valid_f(f)) { + TRACE_ERROR("%u: invalid F: %u\r\n", uart_chan, f); + return; + } + if (!iso7816_3_valid_d(d)) { + TRACE_ERROR("%u: invalid D: %u\r\n", uart_chan, d); + return; + } + + uint16_t ratio = f / d; + if (ratio > 0 && ratio < 2048) { + /* make sure USART uses new F/D ratio */ + usart->US_CR |= US_CR_RXDIS | US_CR_RSTRX; // disable USART before changing baud rate + usart->US_FIDI = (ratio & 0x7ff); // change baud rate (ratio) + usart->US_CR |= US_CR_RXEN | US_CR_STTTO; // re-enable USART (and stop timeout) + TRACE_INFO("%u: USART F/D set to %u/%u\r\n", uart_chan, f, d); + } else { + TRACE_ERROR("%u: USART could not set F/D to %u/%u\r\n", uart_chan, f, d); + // TODO become unresponsive + } +} + +void card_emu_uart_update_wt(uint8_t uart_chan, uint32_t wt) +{ + if (uart_chan >= ARRAY_SIZE(cardem_inst)) { + TRACE_ERROR("%u: UART channel out of bounds\r\n", uart_chan); + return; + } + struct cardem_inst *ci = &cardem_inst[uart_chan]; + Usart *usart = get_usart_by_chan(uart_chan); // get the USART based on the card handle + if (NULL == usart) { + TRACE_ERROR("%u: USART not found by chan\r\n", uart_chan); + return; + } + + ci->wt = wt; // save value + card_emu_uart_reset_wt(uart_chan); // reset and start timer + TRACE_INFO("%u: USART WT set to %lu ETU\r\n", uart_chan, wt); +} + +void card_emu_uart_reset_wt(uint8_t uart_chan) +{ + if (uart_chan >= ARRAY_SIZE(cardem_inst)) { + TRACE_ERROR("%u: UART channel out of bounds\r\n", uart_chan); + return; + } + struct cardem_inst *ci = &cardem_inst[uart_chan]; + Usart *usart = get_usart_by_chan(uart_chan); // get the USART based on the card handle + if (NULL == usart) { + TRACE_ERROR("%u: USART not found by chan\r\n", uart_chan); + return; + } + + ci->wt_remaining = ci->wt; // reload WT value + ci->wt_halfed = false; // reset half expired + if (ci->wt_remaining > 0xffff) { // value exceeds the USART TO range + usart->US_RTOR = 0xffff; // use the MAX + } else { + usart->US_RTOR = ci->wt_remaining; + } + usart->US_CR |= US_CR_RETTO; // restart the counter (if wt is 0, the timeout is not started) +} + +void card_emu_uart_io_set(uint8_t uart_chan, bool set) +{ + if (uart_chan >= ARRAY_SIZE(cardem_inst)) { + TRACE_ERROR("%u: UART channel out of bounds\r\n", uart_chan); + return; + } + struct cardem_inst *ci = &cardem_inst[uart_chan]; + if (set) { + PIO_Set(&ci->pin_io); + } else { + PIO_Clear(&ci->pin_io); + } +} + /* call-back from card_emu.c to force a USART interrupt */ void card_emu_uart_interrupt(uint8_t uart_chan) { @@ -462,6 +592,10 @@ SIMTRACE_CARDEM_USB_EP_USIM1_INT, cardem_inst[0].vcc_active, cardem_inst[0].rst_active, cardem_inst[0].vcc_active); sim_switch_use_physical(0, 1); +#ifndef DETECT_VCC_BY_ADC + usim1_vcc_irqhandler(NULL); // check VCC/CLK state +#endif + usim1_rst_irqhandler(NULL); // force RST state #ifdef CARDEMU_SECOND_UART INIT_LLIST_HEAD(&cardem_inst[1].usb_out_queue); diff --git a/firmware/libcommon/source/tc_etu.c b/firmware/libcommon/source/tc_etu.c index 04a7324..f5f8918 100644 --- a/firmware/libcommon/source/tc_etu.c +++ b/firmware/libcommon/source/tc_etu.c @@ -23,6 +23,9 @@ #include "chip.h" +void card_emu_wt_halfed(void *handle); +void card_emu_wt_expired(void *handle); + /* pins for Channel 0 of TC-block 0, we only use TCLK + TIOB */ #define PIN_TCLK0 {PIO_PA4, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT } #define PIN_TIOA0 {PIO_PA0, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT} @@ -85,7 +88,7 @@ te->nr_events++; if (te->nr_events == te->wait_events/2) { /* Indicate that half the waiting tim has expired */ - tc_etu_wtime_half_expired(te->handle); + card_emu_wt_halfed(te->handle); } if (te->nr_events >= te->wait_events) { TcChannel *chan = te->chan; @@ -96,7 +99,7 @@ chan->TC_CCR = TC_CCR_CLKEN; /* Indicate that the waiting tim has expired */ - tc_etu_wtime_expired(te->handle); + card_emu_wt_expired(te->handle); } } } diff --git a/firmware/libosmocore/include/osmocom/core/utils.h b/firmware/libosmocore/include/osmocom/core/utils.h index 63a73ab..8f0e385 100644 --- a/firmware/libosmocore/include/osmocom/core/utils.h +++ b/firmware/libosmocore/include/osmocom/core/utils.h @@ -36,7 +36,7 @@ int get_string_value(const struct value_string *vs, const char *str); char osmo_bcd2char(uint8_t bcd); -/* only works for numbers in ascci */ +/* only works for numbers in ASCII */ uint8_t osmo_char2bcd(char c); int osmo_hexparse(const char *str, uint8_t *b, int max_len); @@ -60,7 +60,7 @@ rem -= ret; \ } while (0) -/*! Helper macro to terminate when an assertion failes +/*! Helper macro to terminate when an assertion fails * \param[in] exp Predicate to verify * This function will generate a backtrace and terminate the program if * the predicate evaluates to false (0). @@ -75,7 +75,7 @@ /*! duplicate a string using talloc and release its prior content (if any) * \param[in] ctx Talloc context to use for allocation * \param[out] dst pointer to string, will be updated with ptr to new string - * \param[in] newstr String that will be copieed to newly allocated string */ + * \param[in] newstr String that will be copied to newly allocated string */ static inline void osmo_talloc_replace_string(void *ctx, char **dst, const char *newstr) { if (*dst) diff --git a/host/src/simtrace2-cardem-pcsc.c b/host/src/simtrace2-cardem-pcsc.c index f11330c..d8fb531 100644 --- a/host/src/simtrace2-cardem-pcsc.c +++ b/host/src/simtrace2-cardem-pcsc.c @@ -93,9 +93,9 @@ struct cardemu_usb_msg_status *status; status = (struct cardemu_usb_msg_status *) buf; - printf("=> STATUS: flags=0x%x, fi=%u, di=%u, wi=%u wtime=%u\n", - status->flags, status->fi, status->di, status->wi, - status->waiting_time); + printf("=> STATUS: flags=0x%x, F=%u, D=%u, WI=%u WT=%u\n", + status->flags, status->f, status->d, status->wi, + status->wt); return 0; } -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Gerrit-Change-Number: 23620 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:49 +0000 Subject: Change in simtrace2[master]: cardem: ensure VCC_PHONE is floating References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23621 to review the following change. Change subject: cardem: ensure VCC_PHONE is floating ...................................................................... cardem: ensure VCC_PHONE is floating this change is mainly relevant for the SIMtrace board, but also affects the others. First we ensure VCC_PHONE is not forwarded to VCC_SIM because the card could affect the signal (card could draw too much current or feed back current in). next we disable VCC_SIM. the card slot does not need to be powered, and the FPF2019 leaks current back to VCC_PHONE, even with forwarding disabled (the reverse current protection only kicks in when VCC_PHONE is briefly shorted to ground, but still leaks 0.6V). enable the ADC channels normally used to measure VCC, even if not used. the dedicated ADC pins leak current when left unconfigured. enabling them puts them in high impedance. Change-Id: If1487c1c191838aaa08b654e49cd31c7180ffc19 XX pin reconfig Change-Id: Ib261073e3779ae7d98de18ce78b34ff37eafeaa2 --- M firmware/libboard/simtrace/include/board.h M firmware/libcommon/source/mode_cardemu.c 2 files changed, 17 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/21/23621/1 diff --git a/firmware/libboard/simtrace/include/board.h b/firmware/libboard/simtrace/include/board.h index 65e6197..bdc1eb7 100644 --- a/firmware/libboard/simtrace/include/board.h +++ b/firmware/libboard/simtrace/include/board.h @@ -120,6 +120,14 @@ /* ISO7816-communication related pins */ #define PINS_ISO7816 PIN_SIM_IO, PIN_SIM_CLK, PIN_ISO7816_RSTMC // SIM_PWEN_PIN, PIN_SIM_IO2, PIN_SIM_CLK2 +/** card emulation configuration */ +/* Disable power converter 4.5-6V to 3.3V (active high) */ +#define PIN_SIM_PWEN_CARDEMU {PIO_PA5, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT} +/* Disable power switch to forward VCC_PHONE to VCC_SIM (active high) */ +#define PIN_VCC_FWD_CARDEMU {PIO_PA26, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT} +/* Disable power to SIM */ +#define PINS_PWR_CARDEMU PIN_SIM_PWEN_CARDEMU, PIN_VCC_FWD_CARDEMU + /** External SPI flash interface **/ /* SPI MISO pin definition */ #define PIN_SPI_MISO {PIO_PA12A_MISO, PIOA, PIOA, PIO_PERIPH_A, PIO_PULLUP} diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 32d3b17..50fe668 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -546,12 +546,20 @@ TRACE_ENTRY(); +#ifdef PINS_PWR_CARDEMU + // enable power on required peripherals, else disable + Pin pins_pwr_cardemu[] = { PINS_PWR_CARDEMU }; + PIO_Configure(pins_pwr_cardemu, PIO_LISTSIZE(pins_pwr_cardemu)); +#endif /* PINS_PWR_CARDEMU */ #ifdef PINS_CARDSIM PIO_Configure(pins_cardsim, PIO_LISTSIZE(pins_cardsim)); #endif + // ADC channel 6 and 7 are used to measure VCC (else they are grounded) + ADC->ADC_CHER |= ADC_CHER_CH6 | ADC_CHER_CH7; // enable the ADC channels to put them in high impedance (else they leak current) #ifdef DETECT_VCC_BY_ADC - card_vcc_adc_init(); + card_vcc_adc_init(); // configure the ADC to measure VCC #endif /* DETECT_VCC_BY_ADC */ + // TODO pull SIMtrace board SIM lines low, else they can leak current back to VCC INIT_LLIST_HEAD(&cardem_inst[0].usb_out_queue); rbuf_reset(&cardem_inst[0].rb); -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ib261073e3779ae7d98de18ce78b34ff37eafeaa2 Gerrit-Change-Number: 23621 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:50 +0000 Subject: Change in simtrace2[master]: cardem: fix TPDU state check References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23622 to review the following change. Change subject: cardem: fix TPDU state check ...................................................................... cardem: fix TPDU state check this change allows to initialize the TPDU state while in ISO_S_WAIT_TPDU, before actually entering ISO_S_TPDU Change-Id: I505d3add32a43de31499b800bc53442f99f65931 --- M firmware/libcommon/source/card_emu.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/22/23622/1 diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index fb532d5..259d48e 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -826,7 +826,7 @@ { if (ch->tpdu.state == new_ts) return; - if (ISO_S_IN_TPDU != ch->state) { + if (ISO_S_IN_TPDU != ch->state && ISO_S_WAIT_TPDU != ch->state) { TRACE_ERROR("%u: setting TPDU state in %s state\r\n", ch->num, get_value_string(iso7816_3_card_state_names, ch->state)); } -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I505d3add32a43de31499b800bc53442f99f65931 Gerrit-Change-Number: 23622 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:50 +0000 Subject: Change in simtrace2[master]: cardem: ignore set ATR References: Message-ID: Hello tsaitgaist, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23623 to review the following change. Change subject: cardem: ignore set ATR ...................................................................... cardem: ignore set ATR the PPS procedure with baud rate change has not been tested. by keeping the default ATR instead of applying the ATR sent by the host software, no other baud rate choice is offered. Change-Id: Ibf7c6b83d2cf68172c7aa25116d838e24a95d5fe --- M firmware/libcommon/source/card_emu.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/23/23623/1 diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 259d48e..f84f334 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -1238,17 +1238,20 @@ if (len > sizeof(ch->atr.atr)) return -1; +/* ignore new ATR for now since we PPS has not been tested memcpy(ch->atr.atr, atr, len); ch->atr.len = len; ch->atr.idx = 0; +*/ #if TRACE_LEVEL >= TRACE_LEVEL_INFO uint8_t i; TRACE_INFO("%u: ATR set: ", ch->num); - for (i = 0; i < ch->atr.len; i++) { + for (i = 0; i < len; i++) { TRACE_INFO_WP("%02x ", atr[i]); } TRACE_INFO_WP("\n\r"); + TRACE_INFO("%u: ATR set currently ignored\n\r", ch->num); #endif /* FIXME: race condition with transmitting ATR to reader? */ -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibf7c6b83d2cf68172c7aa25116d838e24a95d5fe Gerrit-Change-Number: 23623 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tsaitgaist Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:54:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:54:51 +0000 Subject: Change in simtrace2[master]: Revert "cardem: disable upload for simtrace2" References: Message-ID: Hello Hoernchen, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23624 to review the following change. Change subject: Revert "cardem: disable upload for simtrace2" ...................................................................... Revert "cardem: disable upload for simtrace2" This reverts commit baa62777c845c3466fae5d80729e6b2bd754eea8. cardem w/ simtrae board should now work. Change-Id: I1bce9a57ad2960695c31b8879f5d4ded2dddd7bc --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/24/23624/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 3f2eb7e..f3e13c0 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -63,8 +63,6 @@ # make -C "$base/doc/manuals" publish #fi -rm -rf $TOPDIR/firmware/bin/simtrace-cardem* - if [ "x$publish" = "x--publish" ]; then echo echo "=============== UPLOAD BUILD ==============" -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I1bce9a57ad2960695c31b8879f5d4ded2dddd7bc Gerrit-Change-Number: 23624 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:55:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:55:00 +0000 Subject: Change in simtrace2[master]: cardem: choose a more reasonable default ATR In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23611 ) Change subject: cardem: choose a more reasonable default ATR ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/simtrace2/+/23611/1/firmware/libcommon/source/card_emu.c File firmware/libcommon/source/card_emu.c: https://gerrit.osmocom.org/c/simtrace2/+/23611/1/firmware/libcommon/source/card_emu.c at 1199 PS1, Line 1199: 0x59}; > missing space Done https://gerrit.osmocom.org/c/simtrace2/+/23611/1/host/src/simtrace2-cardem-pcsc.c File host/src/simtrace2-cardem-pcsc.c: https://gerrit.osmocom.org/c/simtrace2/+/23611/1/host/src/simtrace2-cardem-pcsc.c at 56 PS1, Line 56: reasonable ATR offering all protocols and voltages > Weird comment formatting. I would prefer to have it consistent with the GPL license header. Done -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 Gerrit-Change-Number: 23611 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 04 Apr 2021 17:55:00 +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 Apr 4 17:55:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 17:55:21 +0000 Subject: Change in osmo-bsc[master]: bts_osmobts: update the list of supported features In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18617 ) Change subject: bts_osmobts: update the list of supported features ...................................................................... Abandoned Ok, I see. This change is just a result of my misunderstanding. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I431c8ab9478cbc40179903edc21043623d805da1 Gerrit-Change-Number: 18617 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 Sun Apr 4 17:56:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 17:56:15 +0000 Subject: Change in simtrace2[master]: cardem: choose a more reasonable default ATR In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23611 ) Change subject: cardem: choose a more reasonable default ATR ...................................................................... Patch Set 2: Code-Review+1 Looks good to me now. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 Gerrit-Change-Number: 23611 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 04 Apr 2021 17:56:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:56:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:56:31 +0000 Subject: Change in simtrace2[master]: cardem: choose a more reasonable default ATR In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23611 ) Change subject: cardem: choose a more reasonable default ATR ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 Gerrit-Change-Number: 23611 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 04 Apr 2021 17:56:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:56:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:56:33 +0000 Subject: Change in simtrace2[master]: cardem: choose a more reasonable default ATR In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23611 ) Change subject: cardem: choose a more reasonable default ATR ...................................................................... cardem: choose a more reasonable default ATR PCSCd does not like invalid ATRs Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 --- M firmware/libcommon/source/card_emu.c M host/src/simtrace2-cardem-pcsc.c 2 files changed, 38 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index cad24b8..269c7c6 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -1179,8 +1179,23 @@ } } -/* shortest ATR possible (uses default speed and no options) */ -static const uint8_t default_atr[] = { 0x3B, 0x00 }; +/* reasonable ATR offering all protocols and voltages + * smartphones might not care, but other readers do + * + * TS = 0x3B Direct Convention + * T0 = 0x80 Y(1): b1000, K: 0 (historical bytes) + * TD(1) = 0x80 Y(i+1) = b1000, Protocol T=0 + * ---- + * TD(2) = 0x81 Y(i+1) = b1000, Protocol T=1 + * ---- + * TD(3) = 0x1F Y(i+1) = b0001, Protocol T=15 + * ---- + * TA(4) = 0xC7 Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V + * ---- + * Historical bytes + * TCK = 0x59 correct checksum + */ +static const uint8_t default_atr[] = { 0x3B, 0x80, 0x80, 0x81 , 0x1F, 0xC7, 0x59 }; static struct card_handle card_handles[NUM_SLOTS]; diff --git a/host/src/simtrace2-cardem-pcsc.c b/host/src/simtrace2-cardem-pcsc.c index 883bad1..f11330c 100644 --- a/host/src/simtrace2-cardem-pcsc.c +++ b/host/src/simtrace2-cardem-pcsc.c @@ -52,6 +52,26 @@ #define ATR_MAX_LEN 33 + +/* reasonable ATR offering all protocols and voltages + * smartphones might not care, but other readers do + * + * TS = 0x3B Direct Convention + * T0 = 0x80 Y(1): b1000, K: 0 (historical bytes) + * TD(1) = 0x80 Y(i+1) = b1000, Protocol T=0 + * ---- + * TD(2) = 0x81 Y(i+1) = b1000, Protocol T=1 + * ---- + * TD(3) = 0x1F Y(i+1) = b0001, Protocol T=15 + * ---- + * TA(4) = 0xC7 Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V + * ---- + * Historical bytes + * TCK = 0x59 correct checksum + */ +#define DEFAULT_ATR_STR "3B8080811FC759" + + static void atr_update_csum(uint8_t *atr, unsigned int atr_len) { uint8_t csum = 0; @@ -274,7 +294,7 @@ int rc; int c, ret = 1; int skip_atr = 0; - char *atr = "3b00"; + char *atr = DEFAULT_ATR_STR; uint8_t real_atr[ATR_MAX_LEN]; int atr_len; int keep_running = 0; -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 Gerrit-Change-Number: 23611 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 17:58:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 17:58:09 +0000 Subject: Change in simtrace2[master]: add ISO 7816-3 library to remsim project In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23613 ) Change subject: add ISO 7816-3 library to remsim project ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I99f3fecbc00d2379c3a6dc457b047c6fee41c292 Gerrit-Change-Number: 23613 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 17:58: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 Apr 4 18:00:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 18:00:43 +0000 Subject: Change in simtrace2[master]: rename PIN_PHONE_IO to PIN_USIM1_IO In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23614 ) Change subject: rename PIN_PHONE_IO to PIN_USIM1_IO ...................................................................... Patch Set 1: IMHO it doesn't make sense to rename only the IO pin but keep the "PHONE" name for the CLK and other #defines in that same file. Furthermore, there's of course always the rationale to keep naming as close as possible to the naming in the schematics. So in general, I'm not sure if we want to merge it. But if we do, then we want all PHONE to be renamed. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I486b14260faec897e8c8698c4b7987bf36492497 Gerrit-Change-Number: 23614 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 18:00: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 Sun Apr 4 18:01:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 18:01:21 +0000 Subject: Change in simtrace2[master]: minor add comments In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23615 ) Change subject: minor add comments ...................................................................... Patch Set 1: Code-Review-1 the general coding style in Osmcoom is /* not //, I will re-work this. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I045286836176da729cc8c863866d6f6aa3836592 Gerrit-Change-Number: 23615 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 18:01:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 18:02:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 18:02:04 +0000 Subject: Change in simtrace2[master]: different voltage comparison on powerup In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23616 ) Change subject: different voltage comparison on powerup ...................................................................... Patch Set 1: needs a better description in the commit log. I will work on this. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I71b703162219484e43638f1f2f692e9dd554ef55 Gerrit-Change-Number: 23616 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 18:02: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 Sun Apr 4 18:03:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 18:03:15 +0000 Subject: Change in simtrace2[master]: cardemu: different init for simtrace board which uses uart timers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23617 ) Change subject: cardemu: different init for simtrace board which uses uart timers ...................................................................... Patch Set 1: the goal is probably to move away from the tc_etu for all of the boards. I will review this and take it further. One problem with this patch is that it means tc_etu.o is still required for some boards (qemu, owhw) but not for others (simtrace). -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I464f0ce1ec5e60be5f9377186b7d13a5e6dc637e Gerrit-Change-Number: 23617 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 18:03: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 Apr 4 18:06:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 18:06:32 +0000 Subject: Change in simtrace2[master]: make sim switch board specific In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23618 ) Change subject: make sim switch board specific ...................................................................... Patch Set 1: the point here is that not only the type of switch is different, but also its functionality. On simtrace, we have * one UART connected to the SIM side * one UART connected to the phone/modem side * a "SPST" bus-switch to connect both together (basically implementing bypass) On owhw/qmod, we have * two UARTs each connected to a phone/modem * a "SPDT" swithc to route the phone to either "its" UART on the SAM3s, or to the physical SIM -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e Gerrit-Change-Number: 23618 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 18:06: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 Sun Apr 4 18:06:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 18:06:58 +0000 Subject: Change in simtrace2[master]: cardem: currently simtrace does not support cardem In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23619 ) Change subject: cardem: currently simtrace does not support cardem ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Idd09ea534179f0ede705573e1373dbd045c9828a Gerrit-Change-Number: 23619 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 18:06: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 Sun Apr 4 18:09:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 18:09:17 +0000 Subject: Change in simtrace2[master]: cardem: use USART timeout for waiting time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23620 ) Change subject: cardem: use USART timeout for waiting time ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/apps/cardem/Makefile File firmware/apps/cardem/Makefile: https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/apps/cardem/Makefile at 3 PS1, Line 3: tc_etu tc_etu.c here is only needed for non-simtrace boards. We should probably compile it only conditionally, unless we move away from tc_etu altogether. https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/apps/cardem/main.c File firmware/apps/cardem/main.c: https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/apps/cardem/main.c at 168 PS1, Line 168: #if 1 looks like an unrelated change -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Gerrit-Change-Number: 23620 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 18:09: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 Sun Apr 4 18:16:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 18:16:14 +0000 Subject: Change in simtrace2[master]: cardem: use USART timeout for waiting time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23620 ) Change subject: cardem: use USART timeout for waiting time ...................................................................... Patch Set 1: (5 comments) https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libboard/simtrace/include/board.h File firmware/libboard/simtrace/include/board.h: https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libboard/simtrace/include/board.h at 156 PS1, Line 156: #ifdef APPLICATION_trace I don't like that kind of change. The goal has always been to move to a triple-play firmware. So this file should define the board's physical capabilities, while the application #defines specify which code to include in the build. https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libcommon/include/tc_etu.h File firmware/libcommon/include/tc_etu.h: https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libcommon/include/tc_etu.h at a11 PS1, Line 11: extern void tc_etu_wtime_expired(void *handle); this will breaks the tests, as they call the functions. https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libcommon/source/mode_cardemu.c File firmware/libcommon/source/mode_cardemu.c: https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libcommon/source/mode_cardemu.c at 217 PS1, Line 217: ("% not sure we want to make this a non-fatal error. Clearly this should never happen... https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libcommon/source/tc_etu.c File firmware/libcommon/source/tc_etu.c: https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libcommon/source/tc_etu.c at 91 PS1, Line 91: card_emu_wt_halfed see the other comment; the tests need to be updated accordingly. /usr/bin/ld: /space/home/laforge/projects/git/simtrace2/firmware/test/../libcommon/source/card_emu.c:845: undefined reference to `card_emu_uart_update_wt' https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libosmocore/include/osmocom/core/utils.h File firmware/libosmocore/include/osmocom/core/utils.h: https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libosmocore/include/osmocom/core/utils.h at 78 PS1, Line 78: * \param[in] newstr String that will be copied to newly allocated string */ unrelated spelling fixes, should go in separate commit. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Gerrit-Change-Number: 23620 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 18:16: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 Sun Apr 4 18:16:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 18:16:23 +0000 Subject: Change in simtrace2[master]: cardem: currently simtrace does not support cardem In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23619 ) Change subject: cardem: currently simtrace does not support cardem ...................................................................... cardem: currently simtrace does not support cardem the SIMtrace board does not support the current card emulation application because this uses a timer counter to handle the timeouts, but on the SIMtrace board this is not connected to the CLK signal Change-Id: Idd09ea534179f0ede705573e1373dbd045c9828a --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 8268bcf..1d6ff37 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -28,7 +28,7 @@ export LD_LIBRARY_PATH="$inst/lib" BUILDS="" -BUILDS+="simtrace/dfu simtrace/cardem simtrace/trace " # simtrace/triple_play +BUILDS+="simtrace/dfu simtrace/trace " BUILDS+="qmod/dfu qmod/cardem " BUILDS+="owhw/dfu owhw/cardem " -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Idd09ea534179f0ede705573e1373dbd045c9828a Gerrit-Change-Number: 23619 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 18:28:30 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Sun, 4 Apr 2021 18:28:30 +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: keith has uploaded a new patch set (#3) to the change originally created by ipse. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18703 ) Change subject: stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR signal. ...................................................................... stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR signal. Change-Id: Ice3379020039dc3634aa3887939740729d720dee --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/lchan_fsm.c 2 files changed, 142 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/18703/3 -- 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: 3 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith 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 Apr 4 18:34:55 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Sun, 4 Apr 2021 18:34:55 +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: keith has uploaded a new patch set (#4) to the change originally created by ipse. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18703 ) Change subject: stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR signal. ...................................................................... stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR signal. Change-Id: Ice3379020039dc3634aa3887939740729d720dee --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bts.c M src/osmo-bsc/lchan_fsm.c 3 files changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/18703/4 -- 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: 4 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith 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 Apr 4 18:36:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 18:36:36 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 --- M doc/examples/osmo-bsc/osmo-bsc-minimal.cfg M doc/examples/osmo-bsc/osmo-bsc.cfg M doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg M doc/manuals/chapters/bts.adoc M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M tests/ctrl/osmo-bsc-neigh-test.cfg M tests/neighbor_ident.vty 8 files changed, 26 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/25/23625/1 diff --git a/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg b/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg index b8cd78d..2258495 100644 --- a/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg +++ b/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg @@ -2,7 +2,7 @@ network country code 901 mobile network code 70 bts 0 - type sysmobts + type osmo-bts band GSM-1800 location_area_code 23 ipa unit-id 1800 0 diff --git a/doc/examples/osmo-bsc/osmo-bsc.cfg b/doc/examples/osmo-bsc/osmo-bsc.cfg index 828875d..807bd19 100644 --- a/doc/examples/osmo-bsc/osmo-bsc.cfg +++ b/doc/examples/osmo-bsc/osmo-bsc.cfg @@ -19,7 +19,7 @@ handover1 maximum distance 9999 periodic location update 30 bts 0 - type sysmobts + type osmo-bts band DCS1800 cell_identity 6969 location_area_code 1 diff --git a/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg b/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg index 0ecb5fc..335e23d 100644 --- a/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg +++ b/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg @@ -18,7 +18,7 @@ handover1 maximum distance 9999 periodic location update 30 bts 0 - type sysmobts + type osmo-bts band DCS1800 cell_identity 0 location_area_code 1 diff --git a/doc/manuals/chapters/bts.adoc b/doc/manuals/chapters/bts.adoc index e416775..6ef0a0c 100644 --- a/doc/manuals/chapters/bts.adoc +++ b/doc/manuals/chapters/bts.adoc @@ -105,7 +105,7 @@ ---- network bts 0 - type sysmobts + type osmo-bts band DCS1800 description The new BTS in Baikonur location_area_code 2342 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 91eaee0..eebfc33 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2342,6 +2342,20 @@ return CMD_SUCCESS; } +DEFUN_DEPRECATED(cfg_bts_type_sysmobts, + cfg_bts_type_sysmobts_cmd, + "type sysmobts", + "Set the BTS type\n" + "Deprecated alias for 'osmo-bts'\n") +{ + const char *args[] = { "osmo-bts" }; + + vty_out(vty, "%% BTS type 'sysmobts' is deprecated, " + "use 'type osmo-bts' instead.%s", VTY_NEWLINE); + + return cfg_bts_type(self, vty, 1, args); +} + DEFUN_USRATTR(cfg_bts_band, cfg_bts_band_cmd, X(BSC_VTY_ATTR_RESTART_ABIS_OML_LINK), @@ -7659,6 +7673,7 @@ install_element(GSMNET_NODE, &cfg_bts_cmd); install_node(&bts_node, config_write_bts); install_element(BTS_NODE, &cfg_bts_type_cmd); + install_element(BTS_NODE, &cfg_bts_type_sysmobts_cmd); install_element(BTS_NODE, &cfg_description_cmd); install_element(BTS_NODE, &cfg_no_description_cmd); install_element(BTS_NODE, &cfg_bts_band_cmd); diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index b5b7136..471829c 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -67,7 +67,7 @@ { GSM_BTS_TYPE_NANOBTS, "nanobts" }, { GSM_BTS_TYPE_RBS2000, "rbs2000" }, { GSM_BTS_TYPE_NOKIA_SITE, "nokia_site" }, - { GSM_BTS_TYPE_OSMOBTS, "sysmobts" }, + { GSM_BTS_TYPE_OSMOBTS, "osmo-bts" }, { 0, NULL } }; @@ -77,7 +77,7 @@ { GSM_BTS_TYPE_NANOBTS, "ip.access nanoBTS or compatible" }, { GSM_BTS_TYPE_RBS2000, "Ericsson RBS2000 Series" }, { GSM_BTS_TYPE_NOKIA_SITE, "Nokia {Metro,Ultra,In}Site" }, - { GSM_BTS_TYPE_OSMOBTS, "sysmocom sysmoBTS" }, + { GSM_BTS_TYPE_OSMOBTS, "Osmocom Base Transceiver Station" }, { 0, NULL } }; diff --git a/tests/ctrl/osmo-bsc-neigh-test.cfg b/tests/ctrl/osmo-bsc-neigh-test.cfg index 7ef8271..93d7fca 100644 --- a/tests/ctrl/osmo-bsc-neigh-test.cfg +++ b/tests/ctrl/osmo-bsc-neigh-test.cfg @@ -26,7 +26,7 @@ periodic location update 30 neighbor-resolution bind 127.0.0.1 bts 0 - type sysmobts + type osmo-bts band DCS1800 cell_identity 6969 location_area_code 1 @@ -83,7 +83,7 @@ phys_chan_config TCH/F hopping enabled 0 bts 1 - type sysmobts + type osmo-bts band DCS1800 cell_identity 123 location_area_code 1 diff --git a/tests/neighbor_ident.vty b/tests/neighbor_ident.vty index b1429d8..950d852 100644 --- a/tests/neighbor_ident.vty +++ b/tests/neighbor_ident.vty @@ -19,7 +19,7 @@ [<0-65535>] Port to bind the service to [defaults to 4248 if not provided] OsmoBSC(config-net)# bts 0 -OsmoBSC(config-net-bts)# type sysmobts +OsmoBSC(config-net-bts)# type osmo-bts OsmoBSC(config-net-bts)# base_station_id_code 10 OsmoBSC(config-net-bts)# location_area_code 20 OsmoBSC(config-net-bts)# cell_identity 30 @@ -29,7 +29,7 @@ OsmoBSC(config-net-bts)# exit OsmoBSC(config-net)# bts 1 -OsmoBSC(config-net-bts)# type sysmobts +OsmoBSC(config-net-bts)# type osmo-bts OsmoBSC(config-net-bts)# base_station_id_code 11 OsmoBSC(config-net-bts)# location_area_code 21 OsmoBSC(config-net-bts)# cell_identity 31 @@ -39,7 +39,7 @@ OsmoBSC(config-net-bts)# exit OsmoBSC(config-net)# bts 2 -OsmoBSC(config-net-bts)# type sysmobts +OsmoBSC(config-net-bts)# type osmo-bts OsmoBSC(config-net-bts)# base_station_id_code 12 OsmoBSC(config-net-bts)# location_area_code 22 OsmoBSC(config-net-bts)# cell_identity 65535 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 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 Apr 4 18:59:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 18:59:39 +0000 Subject: Change in ...osmo-python-tests[master]: Use proper python3 shebang in all modules References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/python/osmo-python-tests/+/23626 ) Change subject: Use proper python3 shebang in all modules ...................................................................... Use proper python3 shebang in all modules Change-Id: I1295be505f4ec30e809297a474b689e6c0cdf505 --- M osmopy/osmo_ipa.py M osmopy/trap_helper.py M osmopy/twisted_ipa.py M scripts/ctrl2cgi.py M scripts/osmo_rate_ctr2csv.py M scripts/osmo_trap2cgi.py M scripts/soap.py M setup.py 8 files changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/python/osmo-python-tests refs/changes/26/23626/1 diff --git a/osmopy/osmo_ipa.py b/osmopy/osmo_ipa.py index f957f41..5538d27 100755 --- a/osmopy/osmo_ipa.py +++ b/osmopy/osmo_ipa.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/osmopy/trap_helper.py b/osmopy/trap_helper.py index d942cd2..a48770b 100644 --- a/osmopy/trap_helper.py +++ b/osmopy/trap_helper.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/osmopy/twisted_ipa.py b/osmopy/twisted_ipa.py index 5b65f12..f39bc5c 100755 --- a/osmopy/twisted_ipa.py +++ b/osmopy/twisted_ipa.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/scripts/ctrl2cgi.py b/scripts/ctrl2cgi.py index 95ff788..3e8f87d 100755 --- a/scripts/ctrl2cgi.py +++ b/scripts/ctrl2cgi.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/scripts/osmo_rate_ctr2csv.py b/scripts/osmo_rate_ctr2csv.py index 1e3fc9f..a66fb01 100755 --- a/scripts/osmo_rate_ctr2csv.py +++ b/scripts/osmo_rate_ctr2csv.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/scripts/osmo_trap2cgi.py b/scripts/osmo_trap2cgi.py index ca73fa8..a03fd2b 100755 --- a/scripts/osmo_trap2cgi.py +++ b/scripts/osmo_trap2cgi.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/scripts/soap.py b/scripts/soap.py index 0cb2184..8a5f514 100755 --- a/scripts/soap.py +++ b/scripts/soap.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/setup.py b/setup.py index ab604ce..301420a 100755 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Osmopython: test utilities for osmocom programs # Copyright (C) 2013 Katerina Barone-Adesi kat.obsc at gmail.com -- To view, visit https://gerrit.osmocom.org/c/python/osmo-python-tests/+/23626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-Change-Id: I1295be505f4ec30e809297a474b689e6c0cdf505 Gerrit-Change-Number: 23626 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 Apr 4 20:10:38 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Sun, 4 Apr 2021 20:10:38 +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: keith 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 4: Sorry, I pushed to Patchset 3 from the wrong branch. Patchset 4 is Patchset 2, just rebased. -- 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: 4 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 04 Apr 2021 20:10: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 Apr 4 20:11:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 20:11:42 +0000 Subject: Change in osmo-bsc[master]: Replace all references to 'sysmobts' with 'osmo-bts' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23627 ) Change subject: Replace all references to 'sysmobts' with 'osmo-bts' ...................................................................... Replace all references to 'sysmobts' with 'osmo-bts' sysmoBTS is a BTS model sold by Sysmocom, which runs osmo-bts. The later may also work with some other back-ends, including the genaral purpose SDR hardware. Therefore, it's more logical to call it 'osmo-bts'. Change-Id: I93ab4dbf483e0786c35685b75ee4ea83bd591f7b --- M include/osmocom/bsc/bss.h M include/osmocom/bsc/bts.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/bsc_ctrl_commands.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_init.c A src/osmo-bsc/bts_osmobts.c D src/osmo-bsc/bts_sysmobts.c M src/osmo-bsc/lchan_fsm.c 9 files changed, 77 insertions(+), 77 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/27/23627/1 diff --git a/include/osmocom/bsc/bss.h b/include/osmocom/bsc/bss.h index b8945db..199f981 100644 --- a/include/osmocom/bsc/bss.h +++ b/include/osmocom/bsc/bss.h @@ -16,5 +16,5 @@ extern int bts_model_rbs2k_init(void); extern int bts_model_nanobts_init(void); extern int bts_model_nokia_site_init(void); -extern int bts_model_sysmobts_init(void); +extern int bts_model_osmobts_init(void); #endif diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index c8cf8b3..f56c0df 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -552,7 +552,7 @@ return 0; } -static inline int is_sysmobts_v2(const struct gsm_bts *bts) +static inline int is_osmobts(const struct gsm_bts *bts) { switch (bts->type) { case GSM_BTS_TYPE_OSMOBTS: diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 49b7890..ca39825 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -53,7 +53,7 @@ bts_nokia_site.c \ bts_siemens_bs11.c \ bts_sm.c \ - bts_sysmobts.c \ + bts_osmobts.c \ bts_unknown.c \ chan_alloc.c \ codec_pref.c \ diff --git a/src/osmo-bsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c index 9383167..96aeba2 100644 --- a/src/osmo-bsc/bsc_ctrl_commands.c +++ b/src/osmo-bsc/bsc_ctrl_commands.c @@ -102,7 +102,7 @@ * so let's us just reboot it. For the sysmoBTS we can just * restart the process as all state is gone. */ - if (!is_sysmobts_v2(bts) && strcmp(cmd->value, "restart") == 0) { + if (!is_osmobts(bts) && strcmp(cmd->value, "restart") == 0) { struct gsm_bts_trx *trx; llist_for_each_entry_reverse(trx, &bts->trx_list, list) abis_nm_ipaccess_restart(trx); diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index eebfc33..5192c49 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -3795,7 +3795,7 @@ { struct gsm_bts *bts = vty->index; - if (!is_ipaccess_bts(bts) || is_sysmobts_v2(bts)) { + if (!is_ipaccess_bts(bts) || is_osmobts(bts)) { vty_out(vty, "%% This command is only intended for ipaccess nanoBTS. See OS#3707.%s", VTY_NEWLINE); return CMD_WARNING; @@ -5764,7 +5764,7 @@ return CMD_WARNING; } - if (!is_ipaccess_bts(bts) || is_sysmobts_v2(bts)) { + if (!is_ipaccess_bts(bts) || is_osmobts(bts)) { vty_out(vty, "%% This command only works for ipaccess nanoBTS.%s", VTY_NEWLINE); return CMD_WARNING; diff --git a/src/osmo-bsc/bts_init.c b/src/osmo-bsc/bts_init.c index 18f1ed4..0e3debc 100644 --- a/src/osmo-bsc/bts_init.c +++ b/src/osmo-bsc/bts_init.c @@ -24,7 +24,7 @@ bts_model_rbs2k_init(); bts_model_nanobts_init(); bts_model_nokia_site_init(); - bts_model_sysmobts_init(); + bts_model_osmobts_init(); /* Your new BTS here. */ return 0; } diff --git a/src/osmo-bsc/bts_osmobts.c b/src/osmo-bsc/bts_osmobts.c new file mode 100644 index 0000000..1814ada --- /dev/null +++ b/src/osmo-bsc/bts_osmobts.c @@ -0,0 +1,69 @@ +/* Osmocom OsmoBTS specific code */ + +/* (C) 2010-2012 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 +#include +#include +#include +#include +#include + +extern struct gsm_bts_model bts_model_nanobts; + +static struct gsm_bts_model model_osmobts; + +int bts_model_osmobts_init(void) +{ + model_osmobts = bts_model_nanobts; + model_osmobts.name = "osmo-bts"; + model_osmobts.type = GSM_BTS_TYPE_OSMOBTS; + + /* Unlike nanoBTS, osmo-bts does support SI2bis and SI2ter fine */ + model_osmobts.force_combined_si = false; + + model_osmobts.features.data = &model_osmobts._features_data[0]; + model_osmobts.features.data_len = + sizeof(model_osmobts._features_data); + memset(model_osmobts.features.data, 0, model_osmobts.features.data_len); + + osmo_bts_set_feature(&model_osmobts.features, BTS_FEAT_GPRS); + osmo_bts_set_feature(&model_osmobts.features, BTS_FEAT_EGPRS); + osmo_bts_set_feature(&model_osmobts.features, BTS_FEAT_PAGING_COORDINATION); + osmo_bts_set_feature(&model_osmobts.features, BTS_FEAT_IPV6_NSVC); + osmo_bts_set_feature(&model_osmobts.features, BTS_FEAT_CCN); + + model_osmobts.nm_att_tlvdef.def[NM_ATT_OSMO_NS_LINK_CFG].type = TLV_TYPE_TL16V; + + return gsm_bts_model_register(&model_osmobts); +} diff --git a/src/osmo-bsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c deleted file mode 100644 index f24c615..0000000 --- a/src/osmo-bsc/bts_sysmobts.c +++ /dev/null @@ -1,69 +0,0 @@ -/* sysmocom sysmoBTS specific code */ - -/* (C) 2010-2012 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 -#include -#include -#include -#include -#include - -extern struct gsm_bts_model bts_model_nanobts; - -static struct gsm_bts_model model_sysmobts; - -int bts_model_sysmobts_init(void) -{ - model_sysmobts = bts_model_nanobts; - model_sysmobts.name = "sysmobts"; - model_sysmobts.type = GSM_BTS_TYPE_OSMOBTS; - - /* Unlike nanoBTS, sysmoBTS supports SI2bis and SI2ter fine */ - model_sysmobts.force_combined_si = false; - - model_sysmobts.features.data = &model_sysmobts._features_data[0]; - model_sysmobts.features.data_len = - sizeof(model_sysmobts._features_data); - memset(model_sysmobts.features.data, 0, model_sysmobts.features.data_len); - - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_GPRS); - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_EGPRS); - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_PAGING_COORDINATION); - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_IPV6_NSVC); - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_CCN); - - model_sysmobts.nm_att_tlvdef.def[NM_ATT_OSMO_NS_LINK_CFG].type = TLV_TYPE_TL16V; - - return gsm_bts_model_register(&model_sysmobts); -} diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 6f0fd63..6b36f23 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -1304,7 +1304,7 @@ lchan->release.rr_cause = bsc_gsm48_rr_cause_from_rsl_cause(lchan->release.rsl_error_cause); lchan_fsm_state_chg(LCHAN_ST_WAIT_AFTER_ERROR); /* TODO: we used to do this only for sysmobts: - int do_free = is_sysmobts_v2(ts->trx->bts); + int do_free = is_osmobts(ts->trx->bts); LOGP(DRSL, LOGL_NOTICE, "%s CHAN REL ACK for broken channel. %s.\n", gsm_lchan_name(lchan), -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I93ab4dbf483e0786c35685b75ee4ea83bd591f7b Gerrit-Change-Number: 23627 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 Apr 4 20:13:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 20:13:55 +0000 Subject: Change in osmo-bsc[master]: Split GSM_BTS_TYPE_OSMOBTS to individual BTS types In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18616 ) Change subject: Split GSM_BTS_TYPE_OSMOBTS to individual BTS types ...................................................................... Abandoned See https://gerrit.osmocom.org/c/osmo-bsc/+/23625. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I00a815cfa6daab126742d27843e700c07c1db183 Gerrit-Change-Number: 18616 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 gerrit-no-reply at lists.osmocom.org Sun Apr 4 20:17:06 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 20:17:06 +0000 Subject: Change in osmo-bsc[master]: abis_nm: rework warnings about unknown / not supported features In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18599 ) Change subject: abis_nm: rework warnings about unknown / not supported features ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18599/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/18599/5//COMMIT_MSG at 13 PS5, Line 13: do not log this I changed my decision while re-working this patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b Gerrit-Change-Number: 18599 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 04 Apr 2021 20:17:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 20:19:43 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 4 Apr 2021 20:19:43 +0000 Subject: Change in osmo-bsc[master]: abis_nm: finally handle BTS_TYPE_VARIANT, match BTS type In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18618 ) Change subject: abis_nm: finally handle BTS_TYPE_VARIANT, match BTS type ...................................................................... Abandoned -- 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-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:19:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:19:58 +0000 Subject: Change in simtrace2[master]: add library providing ISO 7816-3 utilities In-Reply-To: References: Message-ID: Hello Jenkins Builder, tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23612 to look at the new patch set (#2). Change subject: add library providing ISO 7816-3 utilities ...................................................................... add library providing ISO 7816-3 utilities this will become part of libosmocore since it it common to smart card related projects (such as osmo-ccid-firmware) Change-Id: I3d4c65d137fc4555fcb256443feadd1c695de73d --- A firmware/libcommon/include/iso7816_3.h A firmware/libcommon/source/iso7816_3.c 2 files changed, 229 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/12/23612/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I3d4c65d137fc4555fcb256443feadd1c695de73d Gerrit-Change-Number: 23612 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:19:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:19:58 +0000 Subject: Change in simtrace2[master]: rename PIN_PHONE_{CLK, IO} to PIN_USIM1_{CLK, IO} In-Reply-To: References: Message-ID: Hello Jenkins Builder, tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23614 to look at the new patch set (#2). Change subject: rename PIN_PHONE_{CLK,IO} to PIN_USIM1_{CLK,IO} ...................................................................... rename PIN_PHONE_{CLK,IO} to PIN_USIM1_{CLK,IO} While this differs from tha naming in the schematics ({CLK,IO}_PHONE), this matches the naming scheme used for USIM2 and the naming on other boards. Change-Id: I486b14260faec897e8c8698c4b7987bf36492497 --- M firmware/libboard/simtrace/include/board.h 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/14/23614/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I486b14260faec897e8c8698c4b7987bf36492497 Gerrit-Change-Number: 23614 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:19:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:19:58 +0000 Subject: Change in simtrace2[master]: minor add comments In-Reply-To: References: Message-ID: Hello Jenkins Builder, tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23615 to look at the new patch set (#2). Change subject: minor add comments ...................................................................... minor add comments this is just to better understand the flow Change-Id: I045286836176da729cc8c863866d6f6aa3836592 --- M firmware/libcommon/source/mode_cardemu.c 1 file changed, 28 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/15/23615/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I045286836176da729cc8c863866d6f6aa3836592 Gerrit-Change-Number: 23615 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:19:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:19:58 +0000 Subject: Change in simtrace2[master]: cardem: use edge-triggered VCC ADC logic In-Reply-To: References: Message-ID: Hello Jenkins Builder, tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23616 to look at the new patch set (#2). Change subject: cardem: use edge-triggered VCC ADC logic ...................................................................... cardem: use edge-triggered VCC ADC logic Before this patch, we used to st ci->vcc_active depending on the instantaneous ADC reading of VCC. Is it > .5v, we claim VCC is active, and if it's below, VCC is inactive. With this patch we move to an edge triggered approach: Only change ci->vcc_active if the previous reading was different from the current reading. FIXME: why? Change-Id: I71b703162219484e43638f1f2f692e9dd554ef55 --- M firmware/libcommon/source/mode_cardemu.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/16/23616/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I71b703162219484e43638f1f2f692e9dd554ef55 Gerrit-Change-Number: 23616 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:19:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:19:58 +0000 Subject: Change in simtrace2[master]: cardem: Use USART timeout for waiting time In-Reply-To: References: Message-ID: Hello Jenkins Builder, tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23620 to look at the new patch set (#2). Change subject: cardem: Use USART timeout for waiting time ...................................................................... cardem: Use USART timeout for waiting time The reset/ATR handling has been heavily updated/fixed. Instead of using the timer/counter peripheral to handle the waiting time and corresponding timeout, the USART peripheral internal timeout mechanism is used. This is particularly important for the SIMtrace board since the clock signal is not connected to the timer counter. thus this change adds card emulation support for SIMtrace boards. Fi and Di have been properly rename to F and D since the "i" stands only for an "indicated" value, not the actual value. This does not change the USB protocol (the variable have just been renamed). Additional variables store more information about the card capabilities NOTE: It has only be tested for the SIMtrace board Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 --- M contrib/jenkins.sh M firmware/apps/cardem/Makefile M firmware/apps/cardem/main.c M firmware/apps/trace/Makefile M firmware/libboard/qmod/include/board.h M firmware/libboard/simtrace/include/board.h M firmware/libcommon/include/card_emu.h M firmware/libcommon/include/simtrace_prot.h M firmware/libcommon/include/tc_etu.h M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/mode_cardemu.c M firmware/libcommon/source/tc_etu.c M firmware/libosmocore/include/osmocom/core/utils.h M host/src/simtrace2-cardem-pcsc.c 14 files changed, 340 insertions(+), 64 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/20/23620/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Gerrit-Change-Number: 23620 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:20:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:20:23 +0000 Subject: Change in simtrace2[master]: add library providing ISO 7816-3 utilities In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23612 ) Change subject: add library providing ISO 7816-3 utilities ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I3d4c65d137fc4555fcb256443feadd1c695de73d Gerrit-Change-Number: 23612 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 21:20: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 Apr 4 21:20:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:20:48 +0000 Subject: Change in simtrace2[master]: rename PIN_PHONE_{CLK, IO} to PIN_USIM1_{CLK, IO} In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23614 ) Change subject: rename PIN_PHONE_{CLK,IO} to PIN_USIM1_{CLK,IO} ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I486b14260faec897e8c8698c4b7987bf36492497 Gerrit-Change-Number: 23614 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 21:20:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:21:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:21:11 +0000 Subject: Change in simtrace2[master]: minor add comments In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23615 ) Change subject: minor add comments ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I045286836176da729cc8c863866d6f6aa3836592 Gerrit-Change-Number: 23615 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 21:21:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:25:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:25:00 +0000 Subject: Change in simtrace2[master]: cardemu: different init for simtrace board which uses uart timers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23617 ) Change subject: cardemu: different init for simtrace board which uses uart timers ...................................................................... Patch Set 2: Code-Review-1 I have the feeling this should not be a separate patch. Ater all, at the point this patch is in the series, the "simtrace board" is not using uart timers yet. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I464f0ce1ec5e60be5f9377186b7d13a5e6dc637e Gerrit-Change-Number: 23617 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 21:25:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:25:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:25:17 +0000 Subject: Change in simtrace2[master]: add library providing ISO 7816-3 utilities In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23612 ) Change subject: add library providing ISO 7816-3 utilities ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I3d4c65d137fc4555fcb256443feadd1c695de73d Gerrit-Change-Number: 23612 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 21:25: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 Sun Apr 4 21:25:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:25:22 +0000 Subject: Change in simtrace2[master]: rename PIN_PHONE_{CLK, IO} to PIN_USIM1_{CLK, IO} In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23614 ) Change subject: rename PIN_PHONE_{CLK,IO} to PIN_USIM1_{CLK,IO} ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I486b14260faec897e8c8698c4b7987bf36492497 Gerrit-Change-Number: 23614 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 21: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 Sun Apr 4 21:25:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:25:27 +0000 Subject: Change in simtrace2[master]: minor add comments In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23615 ) Change subject: minor add comments ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I045286836176da729cc8c863866d6f6aa3836592 Gerrit-Change-Number: 23615 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Sun, 04 Apr 2021 21: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 Sun Apr 4 21:25:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:25:30 +0000 Subject: Change in simtrace2[master]: add library providing ISO 7816-3 utilities In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23612 ) Change subject: add library providing ISO 7816-3 utilities ...................................................................... add library providing ISO 7816-3 utilities this will become part of libosmocore since it it common to smart card related projects (such as osmo-ccid-firmware) Change-Id: I3d4c65d137fc4555fcb256443feadd1c695de73d --- A firmware/libcommon/include/iso7816_3.h A firmware/libcommon/source/iso7816_3.c 2 files changed, 229 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/firmware/libcommon/include/iso7816_3.h b/firmware/libcommon/include/iso7816_3.h new file mode 100644 index 0000000..e6c1b4f --- /dev/null +++ b/firmware/libcommon/include/iso7816_3.h @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * 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. +*/ + +/* this library provides utilities to handle the ISO-7816 part 3 communication aspects (e.g. related + * to F and D) */ + +#pragma once + +#include +#include + +/*! default clock rate conversion integer Fd. + * ISO/IEC 7816-3:2006(E) section 8.1 */ +#define ISO7816_3_DEFAULT_FD 372 + +/*! default baud rate adjustment factor Dd. + * ISO/IEC 7816-3:2006(E) section 8.1 */ +#define ISO7816_3_DEFAULT_DD 1 + +/*! default clock rate conversion integer Fi. + * ISO/IEC 7816-3:2006(E) section 8.3 + * \note non-default value is optionally specified in TA1 */ +#define ISO7816_3_DEFAULT_FI 372 + +/*! default baud rate adjustment factor Di. + * ISO/IEC 7816-3:2006(E) section 8.3 + * \note non-default value is optionally specified in TA1 */ +#define ISO7816_3_DEFAULT_DI 1 + +/*! default maximum clock frequency, in Hz. + * ISO/IEC 7816-3:2006(E) section 8.3 + * \note non-default value is optionally specified in TA1 */ +#define ISO7816_3_DEFAULT_FMAX 5000000UL + +/*! default Waiting Integer (WI) value for T=0. + * ISO/IEC 7816-3:2006(E) section 10.2 + * \note non-default value is optionally specified in TC2 */ +#define ISO7816_3_DEFAULT_WI 10 + +/*! default Waiting Time (WT) value, in ETU. + * ISO/IEC 7816-3:2006(E) section 8.1 + * \note depends on Fi, Di, and WI if protocol T=0 is selected */ +#define ISO7816_3_DEFAULT_WT 9600 + +extern const uint16_t iso7816_3_fi_table[]; + +extern const uint32_t iso7816_3_fmax_table[]; + +extern const uint8_t iso7816_3_di_table[]; + +bool iso7816_3_valid_f(uint16_t f); + +bool iso7816_3_valid_d(uint8_t d); + +int32_t iso7816_3_calculate_wt(uint8_t wi, uint16_t fi, uint8_t di, uint16_t f, uint8_t d); diff --git a/firmware/libcommon/source/iso7816_3.c b/firmware/libcommon/source/iso7816_3.c new file mode 100644 index 0000000..ccdff68 --- /dev/null +++ b/firmware/libcommon/source/iso7816_3.c @@ -0,0 +1,159 @@ +/* + * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * 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 "utils.h" +#include "iso7816_3.h" + +/*! Table of clock rate conversion integer F indexed by Fi. + * \note Fi is indicated in TA1, but the same table is used for F and Fn during PPS + * ISO/IEC 7816-3:2006(E) table 7 */ +const uint16_t iso7816_3_fi_table[16] = { + 372, 372, 558, 744, 1116, 1488, 1860, 0, + 0, 512, 768, 1024, 1536, 2048, 0, 0 +}; + +/*! Table of maximum clock frequency f_max in Hz indexed by Fi. + * ISO/IEC 7816-3:2006(E) table 7 + * \note f_max is indicated in TA1, but the same table is used for F and Fn during PPS */ +const uint32_t iso7816_3_fmax_table[16] = { + 4000000, 5000000, 6000000, 8000000, 12000000, 16000000, 20000000, 0, + 0, 5000000, 7500000, 10000000, 15000000, 20000000, 0, 0 +}; + +/*! Table encoding the baud rate adjust integer D indexed by Di. + * ISO/IEC 7816-3:2006(E) table 8 + * \note Di is indicated in TA1, but the same table is used for D and Dn during PPS */ +const uint8_t iso7816_3_di_table[16] = { + 0, 1, 2, 4, 8, 16, 32, 64, + 12, 20, 0, 0, 0, 0, 0, 0, +}; + +/* All values are based on the Elementary Time Unit (ETU), defined in ISO/IEC 7816-3 section 7.1 + * this is the time required to transmit a bit, and is calculated as follows: + * 1 ETU = (F / D) x (1 / f) + * where: + * - F is the clock rate conversion integer + * - D is the baud rate adjustment factor + * - f is the clock frequency + * + * The possible F, f(max), and D values are defined in ISO/IEC 7816-3 table 7 and 8 + * - the initial value for F (after reset) is Fd = 372 + * - the initial value for D (after reset) is Dd = 1 + * - the initial maximum frequency f(max) is 5 MHz + * + * The card must measure the ETU based on the clock signal provided by the reader + * one ETU (e.g. 1 bit) takes F/D clock cycles, which the card must count + * + * The card can indicate an alternative set of supported values Fi (with corresponding f(max)) and + * Di for higher baud rate in TA1 in the ATR (see ISO/IEC 7816-3 section 8.3) + * + * These values are selected according to ISO/IEC 7816-3 section 6.3.1: + * - card in specific mode: they are enforced if TA2 is present (the reader can deactivate the card + * if it does not support these values) + * - card in negotiable mode: + * -- they can be selected by the reader using the Protocol and Parameters Selection (PPS) procedure + * -- the first offered protocol and default values are used when no PPS is started + * + * PPS is done with Fd and Dd (see ISO/IEC 7816-3 section 9) the reader can propose any F and D + * values between from Fd to Fi, and from Dd to Di (Fi and Di are indicated in TA1) the in PPS + * agreed values F and D are called Fn and Dn and are applied after a successful exchange, + * corresponding to PPS1_Response bit 5 + * + * The F and D values must be provided to the SAM3S USART peripheral (after reset and PPS) + */ + +/*! Verify if the clock rate conversion integer F value is valid. + * \param[in] f F value to be validated + * \return if F value is valid + * \note only values in ISO/IEC 7816-3:2006(E) table 7 are valid */ +bool iso7816_3_valid_f(uint16_t f) +{ + if (0 == f) { + return false; + } + uint8_t i = 0; + for (i = 0; i < ARRAY_SIZE(iso7816_3_fi_table) && iso7816_3_fi_table[i] != f; i++); + return (i < ARRAY_SIZE(iso7816_3_fi_table) && iso7816_3_fi_table[i] == f); +} + +/*! Verify if the baud rate adjustment factor D value is valid. + * \param[in] d D value to be validated + * \return if D value is valid + * \note only values in ISO/IEC 7816-3:2006(E) table 8 are valid */ +bool iso7816_3_valid_d(uint8_t d) +{ + if (0 == d) { + return false; + } + uint8_t i = 0; + for (i = 0; i < ARRAY_SIZE(iso7816_3_di_table) && iso7816_3_di_table[i] != d; i++); + return (i < ARRAY_SIZE(iso7816_3_di_table) && iso7816_3_di_table[i] == d); +} + +/* The ETU is not only used to define the baud rate, but also the Waiting Time (WT) (see ISO/IEC + * 7816-3 section 8.1) + * + * when exceeding WT without card response, the reader flags the card as unresponsive, and resets it + * this can be used by the card to indicate errors or unsupported operations if the card requires + * more time to respond, it shall send a procedure byte to restart WT WT is calculated as follows + * (for T=0, see ISO/IEC 7816-3 section 10.2): WT = WI x 960 x (Fi / f(max)) where + * - WI is encoded in TC2 in the ATR (10 if absent) + * - WI does not depend on D/Di (used for the ETU) + * - after reset WT is 9600 ETU + * - WI (e.g. the new WT) is applied when T=0 is used (after 6.3.1), even if Fi is not Fn (this WT + * extension is important to know for the reader so to have the right timeout) + */ + +/*! Calculate Waiting Time (WT) in units of ETU. + * \param[in] wi Waiting Integer + * \param[in] fi clock rate conversion integer Fi value + * \param[in] di baud rate adjustment factor Di value + * \param[in] f clock rate conversion integer F value + * \param[in] d baud rate adjustment factor D value + * \return Waiting Time WT, in ETU, or < 0 on error (see code for return codes) + * \note this should happen after reset and T=0 protocol select (through PPS or implicit) + * ISO/IEC 7816-3:2006(E) section 8.1 and 10.2 */ +int32_t iso7816_3_calculate_wt(uint8_t wi, uint16_t fi, uint8_t di, uint16_t f, uint8_t d) +{ + /* sanity checks */ + if (0 == wi) + return -1; + + if (!iso7816_3_valid_f(fi)) + return -2; + + if (!iso7816_3_valid_d(di)) + return -3; + + if (!iso7816_3_valid_f(f)) + return -4; + + if (!iso7816_3_valid_d(d)) + return -5; + + if (f > fi) + return -6; + + if (d > di) + return -7; + + /* see 7816-3 Section 10.2 */ + return wi * 960UL * (fi/f) * (di/d); // calculate timeout value in ETU +} -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I3d4c65d137fc4555fcb256443feadd1c695de73d Gerrit-Change-Number: 23612 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:25:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:25:31 +0000 Subject: Change in simtrace2[master]: add ISO 7816-3 library to remsim project In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23613 ) Change subject: add ISO 7816-3 library to remsim project ...................................................................... add ISO 7816-3 library to remsim project Change-Id: I99f3fecbc00d2379c3a6dc457b047c6fee41c292 --- M firmware/apps/cardem/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/firmware/apps/cardem/Makefile b/firmware/apps/cardem/Makefile index 75c43e8..d5f68a5 100644 --- a/firmware/apps/cardem/Makefile +++ b/firmware/apps/cardem/Makefile @@ -1,3 +1,3 @@ C_FILES += $(C_LIBUSB_RT) -C_FILES += card_emu.c cciddriver.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c +C_FILES += card_emu.c cciddriver.c iso7816_3.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I99f3fecbc00d2379c3a6dc457b047c6fee41c292 Gerrit-Change-Number: 23613 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:25:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:25:32 +0000 Subject: Change in simtrace2[master]: rename PIN_PHONE_{CLK, IO} to PIN_USIM1_{CLK, IO} In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23614 ) Change subject: rename PIN_PHONE_{CLK,IO} to PIN_USIM1_{CLK,IO} ...................................................................... rename PIN_PHONE_{CLK,IO} to PIN_USIM1_{CLK,IO} While this differs from tha naming in the schematics ({CLK,IO}_PHONE), this matches the naming scheme used for USIM2 and the naming on other boards. Change-Id: I486b14260faec897e8c8698c4b7987bf36492497 --- M firmware/libboard/simtrace/include/board.h 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/firmware/libboard/simtrace/include/board.h b/firmware/libboard/simtrace/include/board.h index 35c9426..ab1c019 100644 --- a/firmware/libboard/simtrace/include/board.h +++ b/firmware/libboard/simtrace/include/board.h @@ -78,11 +78,11 @@ /* Phone USIM slot 1 RST pin (active low; RST_PHONE in schematic) */ #define PIN_USIM1_nRST {PIO_PA24, PIOA, ID_PIOA, PIO_INPUT, PIO_IT_EDGE | PIO_DEGLITCH } /* Phone I/O data signal input/output (I/O_PHONE in schematic) */ -#define PIN_PHONE_IO {PIO_PA22A_TXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} +#define PIN_USIM1_IO {PIO_PA22A_TXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} /* Phone CLK clock input (CLK_PHONE in schematic) */ -#define PIN_PHONE_CLK {PIO_PA23A_SCK1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} +#define PIN_USIM1_CLK {PIO_PA23A_SCK1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} /* Pin used for phone USIM slot 1 communication */ -#define PINS_USIM1 PIN_PHONE_IO, PIN_PHONE_CLK, PIN_PHONE_CLK_INPUT, PIN_USIM1_VCC, PIN_PHONE_IO_INPUT, PIN_USIM1_nRST +#define PINS_USIM1 PIN_USIM1_IO, PIN_USIM1_CLK, PIN_PHONE_CLK_INPUT, PIN_USIM1_VCC, PIN_PHONE_IO_INPUT, PIN_USIM1_nRST /* Phone I/O data signal input/output (unused USART RX input; connected to I/O_PHONE in schematic) */ #define PIN_PHONE_IO_INPUT {PIO_PA21A_RXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} /* Pin used as clock input (to measure the ETU duration; connected to CLK_PHONE in schematic) */ -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I486b14260faec897e8c8698c4b7987bf36492497 Gerrit-Change-Number: 23614 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 4 21:25:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 4 Apr 2021 21:25:32 +0000 Subject: Change in simtrace2[master]: minor add comments In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23615 ) Change subject: minor add comments ...................................................................... minor add comments this is just to better understand the flow Change-Id: I045286836176da729cc8c863866d6f6aa3836592 --- M firmware/libcommon/source/mode_cardemu.c 1 file changed, 28 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 6a8d98f..4886983 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -1,7 +1,7 @@ /* card emulation mode * * (C) 2015-2017 by Harald Welte - * (C) 2018 by sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * (C) 2018-2019 by sysmocom -s.f.m.c. GmbH, Author: Kevin Redon * * 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 @@ -194,7 +194,8 @@ } -/* FIXME: integrate this with actual irq handler */ +/*! common handler if interrupt was received. + * \param[in] inst_num Instance number, range 0..1 (some boards only '0' permitted) */ static void usart_irq_rx(uint8_t inst_num) { Usart *usart = get_usart_by_chan(inst_num); @@ -202,32 +203,43 @@ uint32_t csr; uint8_t byte = 0; + /* get one atomic snapshot of state/flags before they get changed */ csr = usart->US_CSR & usart->US_IMR; + /* check if one byte has been completely received and is now in the holding register */ if (csr & US_CSR_RXRDY) { + /* read the bye from the holding register */ byte = (usart->US_RHR) & 0xFF; + /* append it to the buffer */ if (rbuf_write(&ci->rb, byte) < 0) TRACE_ERROR("rbuf overrun\r\n"); } + /* check if the transmitter is ready for the next byte */ if (csr & US_CSR_TXRDY) { - if (card_emu_tx_byte(ci->ch) == 0) + /* transmit next byte and check if more bytes are to be transmitted */ + if (card_emu_tx_byte(ci->ch) == 0) { + /* stop the TX ready interrupt of no more bytes to transmit */ USART_DisableIt(usart, US_IER_TXRDY); + } } - if (csr & (US_CSR_OVRE|US_CSR_FRAME|US_CSR_PARE| - US_CSR_TIMEOUT|US_CSR_NACK|(1<<10))) { + /* check if any error flags are set */ + if (csr & (US_CSR_OVRE|US_CSR_FRAME|US_CSR_PARE|US_CSR_TIMEOUT|US_CSR_NACK|(1<<10))) { + /* clear any error flags */ usart->US_CR = US_CR_RSTSTA | US_CR_RSTIT | US_CR_RSTNACK; - TRACE_ERROR("%u e 0x%x st: 0x%lx\n", ci->num, byte, csr); + TRACE_ERROR("%u USART error on 0x%x status: 0x%lx\n", ci->num, byte, csr); } } +/*! ISR called for USART0 */ void mode_cardemu_usart0_irq(void) { /* USART0 == Instance 1 == USIM 2 */ usart_irq_rx(1); } +/*! ISR called for USART1 */ void mode_cardemu_usart1_irq(void) { /* USART1 == Instance 0 == USIM 1 */ @@ -419,15 +431,21 @@ INIT_LLIST_HEAD(&cardem_inst[0].usb_out_queue); rbuf_reset(&cardem_inst[0].rb); PIO_Configure(pins_usim1, PIO_LISTSIZE(pins_usim1)); + + /* configure USART as ISO-7816 slave (e.g. card) */ ISO7816_Init(&cardem_inst[0].usart_info, CLK_SLAVE); NVIC_EnableIRQ(USART1_IRQn); PIO_ConfigureIt(&pin_usim1_rst, usim1_rst_irqhandler); PIO_EnableIt(&pin_usim1_rst); - usim1_rst_irqhandler(&pin_usim1_rst); /* obtain current RST state */ + + /* obtain current RST state */ + usim1_rst_irqhandler(&pin_usim1_rst); #ifndef DETECT_VCC_BY_ADC PIO_ConfigureIt(&pin_usim1_vcc, usim1_vcc_irqhandler); PIO_EnableIt(&pin_usim1_vcc); - usim1_vcc_irqhandler(&pin_usim1_vcc); /* obtain current VCC state */ + + /* obtain current VCC state */ + usim1_vcc_irqhandler(&pin_usim1_vcc); #else do {} while (!adc_triggered); /* wait for first ADC reading */ #endif /* DETECT_VCC_BY_ADC */ @@ -442,6 +460,7 @@ rbuf_reset(&cardem_inst[1].rb); PIO_Configure(pins_usim2, PIO_LISTSIZE(pins_usim2)); ISO7816_Init(&cardem_inst[1].usart_info, CLK_SLAVE); + /* TODO enable timeout */ NVIC_EnableIRQ(USART0_IRQn); PIO_ConfigureIt(&pin_usim2_rst, usim2_rst_irqhandler); PIO_EnableIt(&pin_usim2_rst); @@ -458,6 +477,7 @@ SIMTRACE_CARDEM_USB_EP_USIM2_INT, cardem_inst[1].vcc_active, cardem_inst[1].rst_active, cardem_inst[1].vcc_active); sim_switch_use_physical(1, 1); + /* TODO check RST and VCC */ #endif /* CARDEMU_SECOND_UART */ } -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I045286836176da729cc8c863866d6f6aa3836592 Gerrit-Change-Number: 23615 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Apr 4 23:58:19 2021 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 4 Apr 2021 23:58:19 +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_#3363?= Message-ID: <1202741164.756.1617580699992@jenkins.osmocom.org> See From admin at opensuse.org Mon Apr 5 01:38:12 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 05 Apr 2021 01:38:12 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <606a6a237e19a_38382ac31c6845fc585224@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_9.0/aarch64 Package network:osmocom:nightly/simtrace2 failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 128s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 129s] Memory region Used Size Region Size %age Used [ 129s] rom: 16400 B 16 KB 100.10% [ 129s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 129s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 129s] collect2: error: ld returned 1 exit status [ 129s] % [ 129s] Makefile:238: recipe for target 'flash' failed [ 129s] make[2]: *** [flash] Error 1 [ 129s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 129s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 129s] make[1]: *** [fw-qmod-dfu] Error 2 [ 129s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 129s] dh_auto_build: make -j1 returned exit code 2 [ 129s] debian/rules:16: recipe for target 'build' failed [ 129s] make: *** [build] Error 2 [ 129s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 129s] ### VM INTERACTION START ### [ 132s] [ 120.145156] sysrq: Power Off [ 132s] [ 120.208094] reboot: Power down [ 132s] ### VM INTERACTION END ### [ 132s] [ 132s] obs-arm-9 failed "build simtrace2_0.7.0.85.b218.dsc" at Mon Apr 5 01:38:10 UTC 2021. [ 132s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Apr 5 01:40:28 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 05 Apr 2021 01:40:28 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <606a6a961e758_38382ac31c6845fc58567d@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: [ 166s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 167s] Memory region Used Size Region Size %age Used [ 167s] rom: 16400 B 16 KB 100.10% [ 167s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 167s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 167s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 167s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 167s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 167s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 167s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 167s] collect2: error: ld returned 1 exit status [ 167s] % [ 167s] Makefile:238: recipe for target 'flash' failed [ 167s] make[2]: *** [flash] Error 1 [ 167s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 167s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 167s] make[1]: *** [fw-qmod-dfu] Error 2 [ 167s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 167s] dh_auto_build: make -j1 returned exit code 2 [ 167s] debian/rules:16: recipe for target 'build' failed [ 167s] make: *** [build] Error 2 [ 167s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 167s] ### VM INTERACTION START ### [ 170s] [ 156.393206] sysrq: SysRq : Power Off [ 170s] [ 156.394919] reboot: Power down [ 170s] ### VM INTERACTION END ### [ 170s] [ 170s] armbuild04 failed "build simtrace2_0.7.0.85.b218.dsc" at Mon Apr 5 01:40:26 UTC 2021. [ 170s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Apr 5 01:40:28 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 05 Apr 2021 01:40:28 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/i586 In-Reply-To: References: Message-ID: <606a6a96819c2_38382ac31c6845fc585741@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_9.0/i586 Package network:osmocom:nightly/simtrace2 failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 271s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 272s] Memory region Used Size Region Size %age Used [ 272s] rom: 16400 B 16 KB 100.10% [ 272s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 272s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 272s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 272s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 272s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 272s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 272s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 272s] collect2: error: ld returned 1 exit status [ 272s] % [ 272s] Makefile:238: recipe for target 'flash' failed [ 272s] make[2]: *** [flash] Error 1 [ 272s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 272s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 272s] make[1]: *** [fw-qmod-dfu] Error 2 [ 272s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 272s] dh_auto_build: make -j1 returned exit code 2 [ 272s] debian/rules:16: recipe for target 'build' failed [ 272s] make: *** [build] Error 2 [ 272s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 272s] ### VM INTERACTION START ### [ 275s] [ 236.716262] sysrq: Power Off [ 275s] [ 236.816649] reboot: Power down [ 276s] ### VM INTERACTION END ### [ 276s] [ 276s] lamb21 failed "build simtrace2_0.7.0.85.b218.dsc" at Mon Apr 5 01:40:16 UTC 2021. [ 276s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Apr 5 01:52:05 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 05 Apr 2021 01:52:05 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <606a6d4879f34_38382ac31c6845fc587886@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_9.0/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 154s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 154s] Memory region Used Size Region Size %age Used [ 154s] rom: 16400 B 16 KB 100.10% [ 154s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 154s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 154s] /usr/lib/gcc/arm-none-eabi/5.4.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/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 154s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 154s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 154s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 154s] collect2: error: ld returned 1 exit status [ 154s] % [ 154s] Makefile:238: recipe for target 'flash' failed [ 154s] make[2]: *** [flash] Error 1 [ 154s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 154s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 154s] make[1]: *** [fw-qmod-dfu] Error 2 [ 154s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 154s] dh_auto_build: make -j1 returned exit code 2 [ 154s] debian/rules:16: recipe for target 'build' failed [ 154s] make: *** [build] Error 2 [ 154s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 155s] ### VM INTERACTION START ### [ 158s] [ 142.565195] sysrq: Power Off [ 158s] [ 142.585998] reboot: Power down [ 158s] ### VM INTERACTION END ### [ 158s] [ 158s] lamb28 failed "build simtrace2_0.7.0.85.b218.dsc" at Mon Apr 5 01:52:00 UTC 2021. [ 158s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Apr 5 01:53:30 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 05 Apr 2021 01:53:30 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <606a6da5b566b_38382ac31c6845fc58835f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 104s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 104s] Memory region Used Size Region Size %age Used [ 104s] rom: 16400 B 16 KB 100.10% [ 104s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 104s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 104s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 104s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 104s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 104s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 104s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 104s] collect2: error: ld returned 1 exit status [ 104s] % [ 104s] Makefile:238: recipe for target 'flash' failed [ 104s] make[2]: *** [flash] Error 1 [ 104s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 104s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 104s] make[1]: *** [fw-qmod-dfu] Error 2 [ 104s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 104s] dh_auto_build: make -j1 returned exit code 2 [ 104s] debian/rules:16: recipe for target 'build' failed [ 104s] make: *** [build] Error 2 [ 104s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 104s] ### VM INTERACTION START ### [ 107s] [ 98.514857] sysrq: Power Off [ 107s] [ 98.519466] reboot: Power down [ 107s] ### VM INTERACTION END ### [ 107s] [ 107s] sheep87 failed "build simtrace2_0.7.0.85.b218.dsc" at Mon Apr 5 01:53:20 UTC 2021. [ 107s] -- 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 Apr 5 02:04:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 5 Apr 2021 02:04:31 +0000 Subject: Change in libosmocore[master]: vty/logging: use consistent quiting in warning messages References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23628 ) Change subject: vty/logging: use consistent quiting in warning messages ...................................................................... vty/logging: use consistent quiting in warning messages Change-Id: Ifded63a38caac26e174fc6cb69dead7bc83db344 --- M src/vty/logging_vty.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/28/23628/1 diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 48b039b..cc250c0 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -372,12 +372,12 @@ int level = log_parse_level(argv[1]); if (level < 0) { - vty_out(vty, "Invalid level `%s'%s", argv[1], VTY_NEWLINE); + vty_out(vty, "Invalid level '%s'%s", argv[1], VTY_NEWLINE); return CMD_WARNING; } if (category < 0) { - vty_out(vty, "Invalid category `%s'%s", argv[0], VTY_NEWLINE); + vty_out(vty, "Invalid category '%s'%s", argv[0], VTY_NEWLINE); return CMD_WARNING; } @@ -889,7 +889,7 @@ if (!tgt) { tgt = log_target_create_file(fname); if (!tgt) { - vty_out(vty, "%% Unable to create file `%s'%s", + vty_out(vty, "%% Unable to create file '%s'%s", fname, VTY_NEWLINE); RET_WITH_UNLOCK(CMD_WARNING); } @@ -913,7 +913,7 @@ log_tgt_mutex_lock(); tgt = log_target_find(LOG_TGT_TYPE_FILE, fname); if (!tgt) { - vty_out(vty, "%% No such log file `%s'%s", + vty_out(vty, "%% No such log file '%s'%s", fname, VTY_NEWLINE); RET_WITH_UNLOCK(CMD_WARNING); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifded63a38caac26e174fc6cb69dead7bc83db344 Gerrit-Change-Number: 23628 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 Apr 5 02:04:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 5 Apr 2021 02:04:31 +0000 Subject: Change in libosmocore[master]: vty/logging: ensure consistent '%' prefix for warnings References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23629 ) Change subject: vty/logging: ensure consistent '%' prefix for warnings ...................................................................... vty/logging: ensure consistent '%' prefix for warnings Change-Id: I2b2bab61e46668c3b4b0ccad88d02b6d00a83544 --- M src/vty/logging_vty.c 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/23629/1 diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index cc250c0..5f31b39 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -131,7 +131,7 @@ conn = (struct telnet_connection *) vty->priv; if (conn->dbg) { - vty_out(vty, "Logging already enabled.%s", VTY_NEWLINE); + vty_out(vty, "%% Logging already enabled.%s", VTY_NEWLINE); return CMD_WARNING; } @@ -158,7 +158,7 @@ conn = (struct telnet_connection *) vty->priv; if (!conn->dbg) - vty_out(vty, "Logging was not enabled.%s", VTY_NEWLINE); + vty_out(vty, "%% Logging was not enabled.%s", VTY_NEWLINE); return conn->dbg; } @@ -372,12 +372,12 @@ int level = log_parse_level(argv[1]); if (level < 0) { - vty_out(vty, "Invalid level '%s'%s", argv[1], VTY_NEWLINE); + vty_out(vty, "%% Invalid level '%s'%s", argv[1], VTY_NEWLINE); return CMD_WARNING; } if (category < 0) { - vty_out(vty, "Invalid category '%s'%s", argv[0], VTY_NEWLINE); + vty_out(vty, "%% Invalid category '%s'%s", argv[0], VTY_NEWLINE); return CMD_WARNING; } @@ -595,7 +595,7 @@ char **dptr = vty->index_sub; if (!dptr) { - vty_out(vty, "vty->index_sub == NULL%s", VTY_NEWLINE); + vty_out(vty, "%% vty->index_sub == NULL%s", VTY_NEWLINE); return CMD_WARNING; } @@ -616,7 +616,7 @@ char **dptr = vty->index_sub; if (!dptr) { - vty_out(vty, "vty->index_sub == NULL%s", VTY_NEWLINE); + vty_out(vty, "%% vty->index_sub == NULL%s", VTY_NEWLINE); return CMD_WARNING; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2b2bab61e46668c3b4b0ccad88d02b6d00a83544 Gerrit-Change-Number: 23629 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 Apr 5 02:04:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 5 Apr 2021 02:04:32 +0000 Subject: Change in libosmocore[master]: vty/logging: logp: properly handle library specific sub-systems References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23630 ) Change subject: vty/logging: logp: properly handle library specific sub-systems ...................................................................... vty/logging: logp: properly handle library specific sub-systems The library specific sub-systems are kind of special, because their position in the 'osmo_log_info' may vary depending on the number of application specific sub-systems. This is why their associated constant values (like DLGLOBAL) are negative, and this is what the LOGP() macro expects as the first argument. Before this change, invoking 'logp' command with any library specific logging sub-system would result in getting messages printed with the fall-back DLGLOBAL sub-systems. Change-Id: If86563e169fe1243adfa7b09c9d65d9f88c8a99e --- M src/vty/logging_vty.c M tests/logging/logging_vty_test.vty 2 files changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/23630/1 diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 5f31b39..3b131c2 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -1110,6 +1110,23 @@ int category = log_parse_category(argv[0]); int level = log_parse_level(argv[1]); char *str = argv_concat(argv, argc, 2); + + if (level < 0) { + vty_out(vty, "%% Invalid level '%s'%s", argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + + if (category < 0) { + vty_out(vty, "%% Invalid category '%s'%s", argv[0], VTY_NEWLINE); + return CMD_WARNING; + } + + /* Properly handle library specific sub-systems */ + if ((unsigned int) category >= osmo_log_info->num_cat_user) { + category -= osmo_log_info->num_cat_user - 1; + category *= -1; + } + LOGP(category, level, "%s\n", str); return CMD_SUCCESS; } diff --git a/tests/logging/logging_vty_test.vty b/tests/logging/logging_vty_test.vty index 91c2a48..68d132a 100644 --- a/tests/logging/logging_vty_test.vty +++ b/tests/logging/logging_vty_test.vty @@ -526,3 +526,6 @@ logging_vty_test# logp lglobal debug This log message is not echoed logging_vty_test# logp lglobal notice This log message is echoed DLGLOBAL NOTICE This log message is echoed + +logging_vty_test# logp dlctrl notice This is a CTRL specific message +DLCTRL NOTICE This is a CTRL specific message -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If86563e169fe1243adfa7b09c9d65d9f88c8a99e Gerrit-Change-Number: 23630 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 Apr 5 02:08:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 5 Apr 2021 02:08:22 +0000 Subject: Change in libosmocore[master]: vty/logging: ensure consistent '%' prefix for warnings 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/+/23629 to look at the new patch set (#2). Change subject: vty/logging: ensure consistent '%' prefix for warnings ...................................................................... vty/logging: ensure consistent '%' prefix for warnings Change-Id: I2b2bab61e46668c3b4b0ccad88d02b6d00a83544 --- M src/vty/logging_vty.c M tests/logging/logging_vty_test.vty 2 files changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/23629/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2b2bab61e46668c3b4b0ccad88d02b6d00a83544 Gerrit-Change-Number: 23629 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 Mon Apr 5 02:12:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 5 Apr 2021 02:12:07 +0000 Subject: Change in libosmocore[master]: vty/logging: logp: properly handle library specific sub-systems 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/+/23630 to look at the new patch set (#3). Change subject: vty/logging: logp: properly handle library specific sub-systems ...................................................................... vty/logging: logp: properly handle library specific sub-systems The library specific sub-systems are kind of special, because their position in the 'osmo_log_info' may vary depending on the number of application specific sub-systems. This is why their associated constant values (like DLGLOBAL) are negative, and this is what the LOGP() macro expects as the first argument. Before this change, invoking 'logp' command with any library specific logging sub-system would result in getting messages printed with the fall-back DLGLOBAL sub-systems. Change-Id: If86563e169fe1243adfa7b09c9d65d9f88c8a99e --- M src/vty/logging_vty.c M tests/logging/logging_vty_test.vty 2 files changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/23630/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If86563e169fe1243adfa7b09c9d65d9f88c8a99e Gerrit-Change-Number: 23630 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Apr 5 02:13:37 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 05 Apr 2021 02:13:37 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <606a72554aa38_38382ac31c6845fc5923f@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: [ 685s] [COMPILING libboard/qmod/source/board_qmod.c] [ 685s] [COMPILING libboard/qmod/source/card_pres.c] [ 685s] [COMPILING libboard/qmod/source/i2c.c] [ 686s] [COMPILING libboard/qmod/source/wwan_led.c] [ 686s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 686s] [COMPILING apps/dfu/main.c] [ 687s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 687s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 687s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 688s] Memory region Used Size Region Size %age Used [ 688s] rom: 16628 B 16 KB 101.49% [ 688s] ram: 11680 B 48 KB 23.76/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' [ 688s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 244 bytes [ 688s] collect2: error: ld returned 1 exit status [ 688s] % [ 688s] make[2]: *** [Makefile:238: flash] Error 1 [ 688s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 688s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 688s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 688s] dh_auto_build: error: make -j1 returned exit code 2 [ 688s] make: *** [debian/rules:16: build] Error 25 [ 688s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 688s] ### VM INTERACTION START ### [ 691s] [ 623.991395] sysrq: Power Off [ 691s] [ 624.078645] reboot: Power down [ 692s] ### VM INTERACTION END ### [ 692s] [ 692s] lamb26 failed "build simtrace2_0.7.0.85.b218.dsc" at Mon Apr 5 02:13:27 UTC 2021. [ 692s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Apr 5 02:23:15 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 05 Apr 2021 02:23:15 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <606a74ae1706a_38382ac31c6845fc5934c4@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 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 [ 176s] rom: 16628 B 16 KB 101.49% [ 176s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 176s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 176s] /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' [ 176s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 176s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 176s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 176s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 244 bytes [ 176s] collect2: error: ld returned 1 exit status [ 176s] % [ 176s] make[2]: *** [Makefile:238: flash] Error 1 [ 176s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 176s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 176s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 176s] dh_auto_build: error: make -j1 returned exit code 2 [ 176s] make: *** [debian/rules:16: build] Error 25 [ 176s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 176s] ### VM INTERACTION START ### [ 179s] [ 163.573361] sysrq: Power Off [ 179s] [ 163.586364] reboot: Power down [ 179s] ### VM INTERACTION END ### [ 179s] [ 179s] sheep81 failed "build simtrace2_0.7.0.85.b218.dsc" at Mon Apr 5 02:23:01 UTC 2021. [ 179s] -- 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 Apr 5 06:15:33 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 06:15:33 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field References: Message-ID: Robert Falkenberg has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23631 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Use zero padding for EF['ACC'] field Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 --- M pySim/cards.py 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/31/23631/1 diff --git a/pySim/cards.py b/pySim/cards.py index 5eb2884..0d5d6b9 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -76,7 +76,8 @@ return sw def update_acc(self, acc): - data, sw = self._scc.update_binary(EF['ACC'], lpad(acc, 4)) + #data, sw = self._scc.update_binary(EF['ACC'], lpad(acc, 4)) + data, sw = self._scc.update_binary(EF['ACC'], lpad(acc, 4, c='0')) return sw def read_hplmn_act(self): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 1 Gerrit-Owner: Robert Falkenberg Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 5 06:24:51 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 06:24:51 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: Robert Falkenberg has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23631 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Patch Set 1: The ``EF_ACC`` field defines the access control class (ACC) for a subscriber. Current implementation adds padding 1 towards the most significant bits if the input is shorter than 2 bytes. However, it should be padded with 0, otherwise additional ACCs are allocated to the subscriber. (Probably only a single bit shall be set to 1) Excerpt from [ETSI TS 131 102, 4.2.15](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` EF_ACC: Two bytes: B1, B2 B1.b8...B1.b4: high priority users (class 15...11) B1.b3: always 0 B1.b2...B1.b2 and B2.b7...B2.b0: normal priority users (class 9...0) - to be evenly distributed across subscribers ``` **Legend:** Byte X, bit Y: BX.bY -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 1 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 05 Apr 2021 06:24: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 Apr 5 06:25:50 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 06:25:50 +0000 Subject: Change in pysim[master]: Set uSIM to 'type approval operations' in EF['AD'] References: Message-ID: Robert Falkenberg has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Set uSIM to 'type approval operations' in EF['AD'] ...................................................................... Set uSIM to 'type approval operations' in EF['AD'] Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 --- M pySim/cards.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/32/23632/1 diff --git a/pySim/cards.py b/pySim/cards.py index 5eb2884..654d3fa 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -167,7 +167,7 @@ if data.lower() == "ffffffff": data = "00000000" - content = data[0:6] + "%02X" % mnclen + content = "80" + data[2:6] + "%02X" % mnclen data, sw = self._scc.update_binary(EF['AD'], content) return sw -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 1 Gerrit-Owner: Robert Falkenberg Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 5 06:27:09 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 06:27:09 +0000 Subject: Change in pysim[master]: Set uSIM to 'type approval operations' in EF['AD'] In-Reply-To: References: Message-ID: Robert Falkenberg has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Set uSIM to 'type approval operations' in EF['AD'] ...................................................................... Patch Set 1: The ``EF_AD`` field contains administrative data (AD). It consists of four bytes ``B1``, ``B2``, ``B3``, ``B4``, and optionally further bytes for future use. Current implementation only sets the MNC field appropriately (located in `B4`) and sets all other bits/bytes to 0. However, `B1` defines the *UE operation mode* as listed below. For type approval operations (such as testing with a test uSIM), this value should be set to `0x80` rather than `0x00`(= normal operation). This may unlock some UE capabilities that are restricted in normal operation mode. Excerpt from [ETSI TS 131 102, 4.2.18](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` B1 - UE operation mode: Coding: Initial value - '00' normal operation. - '80' type approval operations. - '01' normal operation + specific facilities. - '81' type approval operations + specific facilities. - '02' maintenance (off line). - '04' cell test operation. B2 - Additional information: Coding: Reserved for future use B3 - Additional information: Coding: - B3.b1: OFM setting (Ciphering) - B3.others: Reserved for future use B4 - Length of MNC in the IMSI: Coding: - B4.b4..B4.b1: length: '0010' (= 2) or '0011' (=3) - B4.others: Reserved for future use ``` **Legend:** Byte X, bit Y: BX.bY Further reading: https://nickvsnetworking.com/usim-basics/ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 1 Gerrit-Owner: Robert Falkenberg Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 05 Apr 2021 06:27:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 5 11:47:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 5 Apr 2021 11:47:56 +0000 Subject: Change in pysim[master]: cards.py: unify card programming In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/15501 ) Change subject: cards.py: unify card programming ...................................................................... Patch Set 5: ping? should we still get this mergd at some point? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/15501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib757b1433c075c635fe43542103acae2167a1a15 Gerrit-Change-Number: 15501 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 05 Apr 2021 11:47: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 Apr 5 11:49:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 5 Apr 2021 11:49:31 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23631 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Patch Set 1: (1 comment) thanks! let's remove the old line rather than commenting it out and get it merged. https://gerrit.osmocom.org/c/pysim/+/23631/1/pySim/cards.py File pySim/cards.py: https://gerrit.osmocom.org/c/pysim/+/23631/1/pySim/cards.py at 79 PS1, Line 79: # let's remove that old line of code. There's no need to keep it around, the history is stored in git. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 1 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 05 Apr 2021 11:49: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 Mon Apr 5 11:50:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 5 Apr 2021 11:50:32 +0000 Subject: Change in pysim[master]: Set uSIM to 'type approval operations' in EF['AD'] In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Set uSIM to 'type approval operations' in EF['AD'] ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23632/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/pysim/+/23632/1//COMMIT_MSG at 7 PS1, Line 7: S Do you think it is advisable for all SIM cards of all users to be programmed for 'type approval' at all times? I think that is a flag which should only be set upon explicit request of the user, under certain circumstances. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 1 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 05 Apr 2021 11:50: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 Mon Apr 5 12:25:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 5 Apr 2021 12:25:41 +0000 Subject: Change in simtrace2[master]: cardem: Use USART timeout for waiting time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23620 ) Change subject: cardem: Use USART timeout for waiting time ...................................................................... Patch Set 2: (5 comments) https://gerrit.osmocom.org/c/simtrace2/+/23620/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/simtrace2/+/23620/2//COMMIT_MSG at 1 PS2, Line 1: Parent: d6005fcd (make sim switch board specific) actaully, the clock signal is connected (TCLK1). It's the I/O signal which is not connected to any TIO{A,B}1 so we cannot determine when exactly a bit starts or ends on the I/O line. https://gerrit.osmocom.org/c/simtrace2/+/23620/2/firmware/apps/cardem/main.c File firmware/apps/cardem/main.c: https://gerrit.osmocom.org/c/simtrace2/+/23620/2/firmware/apps/cardem/main.c at a168 PS2, Line 168: #if 0 unrelated change. https://gerrit.osmocom.org/c/simtrace2/+/23620/2/firmware/libcommon/include/simtrace_prot.h File firmware/libcommon/include/simtrace_prot.h: https://gerrit.osmocom.org/c/simtrace2/+/23620/2/firmware/libcommon/include/simtrace_prot.h at 236 PS2, Line 236: uint3 waiting_time to wt rename should be one purely cosmetic patch (if at all) https://gerrit.osmocom.org/c/simtrace2/+/23620/2/firmware/libcommon/source/card_emu.c File firmware/libcommon/source/card_emu.c: https://gerrit.osmocom.org/c/simtrace2/+/23620/2/firmware/libcommon/source/card_emu.c at 424 PS2, Line 424: if (ISO_S_WAIT_POWER == new_state) { the UART I/O related changes are independent of the USART timer changes. To be honest, I don't see how those do anything at all. The UART I/O lines are all routed to the peripheral function via the PIO_PER (peripheral enable register). Unless you disable the peripheral via PIO_PDR, the changes to the GPIO output data via PIO_SODR / PIO_CODR done here are no-ops as the alternate function always overrides any configured output levels. How was this tested/validated? Maybe there are some hardware bugs I'm unaware of? https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libcommon/source/mode_cardemu.c File firmware/libcommon/source/mode_cardemu.c: https://gerrit.osmocom.org/c/simtrace2/+/23620/1/firmware/libcommon/source/mode_cardemu.c at 217 PS1, Line 217: ("% > not sure we want to make this a non-fatal error. Clearly this should never happen... Done -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Gerrit-Change-Number: 23620 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Mon, 05 Apr 2021 12:25: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 Mon Apr 5 15:39:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 5 Apr 2021 15:39:30 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23631 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Patch Set 1: > Patch Set 1: > > The ``EF_ACC`` field defines the access control class (ACC) for a subscriber. > > Current implementation adds padding 1 towards the most significant bits if the input is shorter than 2 bytes. > > However, it should be padded with 0, otherwise additional ACCs are allocated to the subscriber. (Probably only a single bit shall be set to 1) > > Excerpt from [ETSI TS 131 102, 4.2.15](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): > > ``` > EF_ACC: Two bytes: B1, B2 > > B1.b8...B1.b4: high priority users (class 15...11) > B1.b3: always 0 > B1.b2...B1.b2 and B2.b7...B2.b0: normal priority users (class 9...0) - to be evenly distributed across subscribers > ``` > > **Legend:** Byte X, bit Y: BX.bY This description should be in the commit message. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 1 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 05 Apr 2021 15: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 Mon Apr 5 15:50:06 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 15:50:06 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23632 to look at the new patch set (#2). Change subject: Use zero padding for EF['ACC'] field ...................................................................... Use zero padding for EF['ACC'] field Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 --- M pySim/cards.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/32/23632/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 2 Gerrit-Owner: Robert Falkenberg 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 Apr 5 15:53:18 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 15:53:18 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23632 to look at the new patch set (#3). Change subject: Use zero padding for EF['ACC'] field ...................................................................... Use zero padding for EF['ACC'] field The ``EF_ACC`` field defines the access control class (ACC) for a subscriber. Without this patch, the implementation adds padding 1 towards the most significant bits if the input is shorter than 2 bytes. However, it should be padded with 0, otherwise additional ACCs are allocated to the subscriber. (Probably only a single bit shall be set to 1) Excerpt from [ETSI TS 131 102, 4.2.15](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` EF_ACC: Two bytes: B1, B2 B1.b8...B1.b4: high priority users (class 15...11) B1.b3: always 0 B1.b2...B1.b2 and B2.b7...B2.b0: normal priority users (class 9...0) - to be evenly distributed across subscribers ``` **Legend:** Byte X, bit Y: BX.bY Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 --- M pySim/cards.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/32/23632/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 3 Gerrit-Owner: Robert Falkenberg 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 Apr 5 15:58:32 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 15:58:32 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23632 to look at the new patch set (#4). Change subject: Use zero padding for EF['ACC'] field ...................................................................... Use zero padding for EF['ACC'] field The ``EF_ACC`` field defines the access control class (ACC) for a subscriber. Without this patch, the implementation adds padding 1 towards the most significant bits if the input is shorter than 2 bytes. However, it should be padded with 0, otherwise additional ACCs are allocated to the subscriber. (Probably only a single bit shall be set to 1) Excerpt from [ETSI TS 131 102, 4.2.15](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` EF_ACC: Two bytes: B1, B2 B1.b8...B1.b4: high priority users (class 15...11) B1.b3: always 0 B1.b2...B1.b2 and B2.b7...B2.b0: normal priority users (class 9...0) - to be evenly distributed across subscribers ``` **Legend:** Byte X, bit Y: BX.bY Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 --- M pySim/cards.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/32/23632/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 4 Gerrit-Owner: Robert Falkenberg 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 Apr 5 16:00:07 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 16:00:07 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23631 to look at the new patch set (#2). Change subject: Use zero padding for EF['ACC'] field ...................................................................... Use zero padding for EF['ACC'] field The ``EF_ACC`` field defines the access control class (ACC) for a subscriber. Without this patch, the implementation adds padding 1 towards the most significant bits if the input is shorter than 2 bytes. However, it should be padded with 0, otherwise additional ACCs are allocated to the subscriber. (Probably only a single bit shall be set to 1) Excerpt from [ETSI TS 131 102, 4.2.15](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` EF_ACC: Two bytes: B1, B2 B1.b8...B1.b4: high priority users (class 15...11) B1.b3: always 0 B1.b2...B1.b2 and B2.b7...B2.b0: normal priority users (class 9...0) - to be evenly distributed across subscribers ``` **Legend:** Byte X, bit Y: BX.bY Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 --- M pySim/cards.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/31/23631/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 2 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 5 16:05:34 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 16:05:34 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: Robert Falkenberg has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Abandoned Duplicate -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 4 Gerrit-Owner: Robert Falkenberg 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 Mon Apr 5 16:57:07 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 16:57:07 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: Robert Falkenberg has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23631 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Patch Set 2: What happened? Jenkins doesen't like it anymore. Where can I find the reason? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 2 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 05 Apr 2021 16:57:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 5 17:14:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 5 Apr 2021 17:14:57 +0000 Subject: Change in pysim[master]: Py2 -> Py3: do not inherit classes from object References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23633 ) Change subject: Py2 -> Py3: do not inherit classes from object ...................................................................... Py2 -> Py3: do not inherit classes from object https://stackoverflow.com/questions/4015417/why-do-python-classes-inherit-object/45062077 Change-Id: I15003ba591510d68f3235f71526ad5d8a456088e --- M pySim/card_data.py M pySim/cards.py M pySim/commands.py M pySim/filesystem.py M pySim/transport/__init__.py M pySim/transport/calypso.py 6 files changed, 10 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/33/23633/1 diff --git a/pySim/card_data.py b/pySim/card_data.py index ebc63a6..6c162e8 100644 --- a/pySim/card_data.py +++ b/pySim/card_data.py @@ -24,7 +24,7 @@ card_data_provider = [] -class CardData(object): +class CardData: VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI', 'PIN1', 'PIN2', 'PUK1', 'PUK2'] diff --git a/pySim/cards.py b/pySim/cards.py index 5eb2884..a9ad7ff 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -29,7 +29,7 @@ from smartcard.util import toBytes from pytlv.TLV import * -class Card(object): +class Card: def __init__(self, scc): self._scc = scc diff --git a/pySim/commands.py b/pySim/commands.py index 7919099..5f60280 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -24,7 +24,7 @@ from pySim.utils import rpad, b2h, sw_match from pySim.exceptions import SwMatchError -class SimCardCommands(object): +class SimCardCommands: def __init__(self, transport): self._tp = transport self._cla_byte = "a0" diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 3eea2f4..8324ab1 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -36,7 +36,7 @@ from pySim.utils import sw_match, h2b, b2h, is_hex from pySim.exceptions import * -class CardFile(object): +class CardFile: """Base class for all objects in the smart card filesystem. Serve as a common ancestor to all other file types; rarely used directly. """ @@ -799,7 +799,7 @@ -class RuntimeState(object): +class RuntimeState: """Represent the runtime state of a session with a card.""" def __init__(self, card, profile:'CardProfile'): """ @@ -1050,7 +1050,7 @@ -class FileData(object): +class FileData: """Represent the runtime, on-card data.""" def __init__(self, fdesc): self.desc = fdesc @@ -1076,7 +1076,7 @@ return (class_str, descr) return None -class CardApplication(object): +class CardApplication: """A card application is represented by an ADF (with contained hierarchy) and optionally some SW definitions.""" def __init__(self, name, adf:Optional[CardADF]=None, aid:str=None, sw:dict=None): @@ -1109,7 +1109,7 @@ """ return interpret_sw(self.sw, sw) -class CardProfile(object): +class CardProfile: """A Card Profile describes a card, it's filessystem hierarchy, an [initial] list of applications as well as profile-specific SW and shell commands. Every card has one card profile, but there may be multiple applications within that profile.""" diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index f946af8..d8579a3 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -23,7 +23,7 @@ # along with this program. If not, see . # -class LinkBase(object): +class LinkBase: """Base class for link/transport to card.""" def wait_for_card(self, timeout:int=None, newcardonly:bool=False): diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py index 467d5ee..49d649d 100644 --- a/pySim/transport/calypso.py +++ b/pySim/transport/calypso.py @@ -25,7 +25,7 @@ from pySim.exceptions import * from pySim.utils import h2b, b2h -class L1CTLMessage(object): +class L1CTLMessage: # Every (encoded) L1CTL message has the following structure: # - msg_length (2 bytes, net order) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I15003ba591510d68f3235f71526ad5d8a456088e Gerrit-Change-Number: 23633 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 Apr 5 17:20:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 5 Apr 2021 17:20:34 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23631 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Patch Set 2: > Patch Set 2: > > What happened? Jenkins doesen't like it anymore. Where can I find the reason? First time it was due to some connection problem during the build verification: Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/pkg-resources/ I tried to re-trigger the build, but now it fails because something has changed on the test SIM card(s). I guess we're experiencing this problem https://osmocom.org/issues/4383 again. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 2 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 05 Apr 2021 17: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 Mon Apr 5 19:09:27 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 19:09:27 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: Robert Falkenberg has restored this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Restored -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 4 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: restore -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 5 19:11:55 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 19:11:55 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: Robert Falkenberg has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Patch Set 4: Sorry, pushed wrong branch. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 4 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 05 Apr 2021 19:11: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 Apr 5 19:15:25 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 19:15:25 +0000 Subject: Change in pysim[master]: Set uSIM to 'type approval operations' in EF['AD'] In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23632 to look at the new patch set (#5). Change subject: Set uSIM to 'type approval operations' in EF['AD'] ...................................................................... Set uSIM to 'type approval operations' in EF['AD'] The ``EF_AD`` field contains administrative data (AD). It consists of four bytes ``B1``, ``B2``, ``B3``, ``B4``, and optionally further bytes for future use. Current implementation only sets the MNC field appropriately (located in `B4`) and sets all other bits/bytes to 0. However, `B1` defines the *UE operation mode* as listed below. For type approval operations (such as testing with a test uSIM), this value should be set to `0x80` rather than `0x00`(= normal operation). This may unlock some UE capabilities that are restricted in normal operation mode. Excerpt from [ETSI TS 131 102, 4.2.18](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` B1 - UE operation mode: Coding: Initial value - '00' normal operation. - '80' type approval operations. - '01' normal operation + specific facilities. - '81' type approval operations + specific facilities. - '02' maintenance (off line). - '04' cell test operation. B2 - Additional information: Coding: Reserved for future use B3 - Additional information: Coding: - B3.b1: OFM setting (Ciphering) - B3.others: Reserved for future use B4 - Length of MNC in the IMSI: Coding: - B4.b4..B4.b1: length: '0010' (= 2) or '0011' (=3) - B4.others: Reserved for future use ``` **Legend:** Byte X, bit Y: BX.bY Further reading: https://nickvsnetworking.com/usim-basics/ Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 --- M pySim/cards.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/32/23632/5 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 5 Gerrit-Owner: Robert Falkenberg 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 Apr 5 19:36:55 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Mon, 5 Apr 2021 19:36:55 +0000 Subject: Change in pysim[master]: Set uSIM to 'type approval operations' in EF['AD'] In-Reply-To: References: Message-ID: Robert Falkenberg has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Set uSIM to 'type approval operations' in EF['AD'] ...................................................................... Patch Set 5: (1 comment) Thanks_for_the_feedback https://gerrit.osmocom.org/c/pysim/+/23632/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/pysim/+/23632/1//COMMIT_MSG at 7 PS1, Line 7: S > Do you think it is advisable for all SIM cards of all users to be programmed for 'type approval' at [?] Good question. The default value depends on the targeted group that uses this software. I was thinking of research and development here. The explicit request is the best option - full agreement. However, I wanted to be minimally invasive in my initial contributions and I didn't want to make offensive changes to the method signatures with possibly unexpected side effects. (Apparently this single line change was already too much either. https://osmocom.org/issues/4383 Sorry for that.) I'm happy to prepare a version with parameters, soon. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 5 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 05 Apr 2021 19:36:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:18:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:04 +0000 Subject: Change in simtrace2[master]: make sim switch board specific In-Reply-To: References: Message-ID: Hello Jenkins Builder, tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23618 to look at the new patch set (#3). Change subject: make sim switch board specific ...................................................................... make sim switch board specific the simtrace board uses a bus switch not used on qmod and owhw to switch the SIM between physical and virtual Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e --- M firmware/libboard/common/include/sim_switch.h R firmware/libboard/owhw/source/sim_switch.c C firmware/libboard/qmod/source/sim_switch.c A firmware/libboard/simtrace/source/sim_switch.c 4 files changed, 62 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/18/23618/3 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e Gerrit-Change-Number: 23618 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:18:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:04 +0000 Subject: Change in simtrace2[master]: card_emu: Use USART timeout for waiting time In-Reply-To: References: Message-ID: Hello Jenkins Builder, tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23620 to look at the new patch set (#3). Change subject: card_emu: Use USART timeout for waiting time ...................................................................... card_emu: Use USART timeout for waiting time Instead of using the timer/counter peripheral to handle the waiting time and corresponding timeout, the USART peripheral internal timeout mechanism is used. This is particularly important for the SIMtrace board since there (contrary to other boards) the I/O signal is not wired to a TIO pin of the timer/counter block, and hence Rx/Tx data cannot reset that timer/counter. As a result of this migration, cardem is now supported not only on owhw + qmod, but also on the simtrace board. The guts of this change have been lifted out of Change-Id Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 by Kevin Redon, which was unfortunately touching various different topics at the same time and hence was split up. Some improvements are the introduction of the ENABLE_TX_TIMER_ONLY mode, which avoids the USART interrupt handler getting hammered with TXRDY between release of RST and start of the ATR. Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 --- M firmware/apps/cardem/Makefile M firmware/apps/trace/Makefile M firmware/apps/triple_play/Makefile M firmware/libcommon/include/card_emu.h M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/mode_cardemu.c 6 files changed, 132 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/20/23620/3 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Gerrit-Change-Number: 23620 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:18:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:04 +0000 Subject: Change in simtrace2[master]: card_emu: use edge-triggered VCC ADC logic In-Reply-To: References: Message-ID: Hello Jenkins Builder, tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23616 to look at the new patch set (#3). Change subject: card_emu: use edge-triggered VCC ADC logic ...................................................................... card_emu: use edge-triggered VCC ADC logic Before this patch, we used to st ci->vcc_active depending on the instantaneous ADC reading of VCC. Is it > .5v, we claim VCC is active, and if it's below, VCC is inactive. With this patch we move to an edge triggered approach: Only change ci->vcc_active if the previous reading was different from the current reading. FIXME: why? Change-Id: I71b703162219484e43638f1f2f692e9dd554ef55 --- M firmware/libcommon/source/mode_cardemu.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/16/23616/3 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I71b703162219484e43638f1f2f692e9dd554ef55 Gerrit-Change-Number: 23616 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:18:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:06 +0000 Subject: Change in simtrace2[master]: simtrace2-cardem-pcsc: Make it work again References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23634 ) Change subject: simtrace2-cardem-pcsc: Make it work again ...................................................................... simtrace2-cardem-pcsc: Make it work again * support Interrupt STATUS notifications * use osmocom libusb abstraction * use asynchronous URBs for interrupt + bulk Change-Id: Ib04798572295f25477719124530b6584780c5b75 --- M host/src/simtrace2-cardem-pcsc.c 1 file changed, 159 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/34/23634/1 diff --git a/host/src/simtrace2-cardem-pcsc.c b/host/src/simtrace2-cardem-pcsc.c index f11330c..543780f 100644 --- a/host/src/simtrace2-cardem-pcsc.c +++ b/host/src/simtrace2-cardem-pcsc.c @@ -47,11 +47,13 @@ #include #include #include +#include #include #include #define ATR_MAX_LEN 33 +#define LOGCI(ci, lvl, fmt, args ...) printf(fmt, ## args) /* reasonable ATR offering all protocols and voltages * smartphones might not care, but other readers do @@ -180,6 +182,9 @@ case SIMTRACE_MSGT_DO_CEMU_RX_DATA: rc = process_do_rx_da(ci, buf, len); break; + case SIMTRACE_MSGT_BD_CEMU_CONFIG: + /* firmware confirms configuration change; ignore */ + break; default: printf("unknown simtrace msg type 0x%02x\n", sh->msg_type); rc = -1; @@ -189,6 +194,144 @@ return rc; } +/*! \brief Process a STATUS message on IRQ endpoint from the SIMtrace2 */ +static int process_irq_status(struct osmo_st2_cardem_inst *ci, const uint8_t *buf, int len) +{ + const struct cardemu_usb_msg_status *status = (struct cardemu_usb_msg_status *) buf; + + LOGCI(ci, LOGL_INFO, "SIMtrace IRQ STATUS: flags=0x%x, fi=%u, di=%u, wi=%u wtime=%u\n", + status->flags, status->fi, status->di, status->wi, + status->waiting_time); + + return 0; +} + +static int process_usb_msg_irq(struct osmo_st2_cardem_inst *ci, const uint8_t *buf, unsigned int len) +{ + struct simtrace_msg_hdr *sh = (struct simtrace_msg_hdr *)buf; + int rc; + + LOGCI(ci, LOGL_INFO, "SIMtrace IRQ %s\n", osmo_hexdump(buf, len)); + + buf += sizeof(*sh); + + switch (sh->msg_type) { + case SIMTRACE_MSGT_BD_CEMU_STATUS: + rc = process_irq_status(ci, buf, len); + break; + default: + LOGCI(ci, LOGL_ERROR, "unknown simtrace msg type 0x%02x\n", sh->msg_type); + rc = -1; + break; + } + + return rc; +} + +static void usb_in_xfer_cb(struct libusb_transfer *xfer) +{ + struct osmo_st2_cardem_inst *ci = xfer->user_data; + int rc; + + switch (xfer->status) { + case LIBUSB_TRANSFER_COMPLETED: + /* hand the message up the stack */ + process_usb_msg(ci, xfer->buffer, xfer->actual_length); + break; + case LIBUSB_TRANSFER_NO_DEVICE: + LOGCI(ci, LOGL_FATAL, "USB device disappeared\n"); + exit(1); + break; + default: + LOGCI(ci, LOGL_FATAL, "USB IN transfer failed, status=%u\n", xfer->status); + exit(1); + break; + } + + /* re-submit the IN transfer */ + rc = libusb_submit_transfer(xfer); + OSMO_ASSERT(rc == 0); +} + + +static void allocate_and_submit_in(struct osmo_st2_cardem_inst *ci) +{ + struct osmo_st2_transport *transp = ci->slot->transp; + struct libusb_transfer *xfer; + int rc; + + xfer = libusb_alloc_transfer(0); + OSMO_ASSERT(xfer); + xfer->dev_handle = transp->usb_devh; + xfer->flags = 0; + xfer->type = LIBUSB_TRANSFER_TYPE_BULK; + xfer->endpoint = transp->usb_ep.in; + xfer->timeout = 0; + xfer->user_data = ci; + xfer->length = 16*256; + + xfer->buffer = libusb_dev_mem_alloc(xfer->dev_handle, xfer->length); + OSMO_ASSERT(xfer->buffer); + xfer->callback = usb_in_xfer_cb; + + /* submit the IN transfer */ + rc = libusb_submit_transfer(xfer); + OSMO_ASSERT(rc == 0); +} + + +static void usb_irq_xfer_cb(struct libusb_transfer *xfer) +{ + struct osmo_st2_cardem_inst *ci = xfer->user_data; + int rc; + + switch (xfer->status) { + case LIBUSB_TRANSFER_COMPLETED: + process_usb_msg_irq(ci, xfer->buffer, xfer->actual_length); + break; + case LIBUSB_TRANSFER_NO_DEVICE: + LOGCI(ci, LOGL_FATAL, "USB device disappeared\n"); + exit(1); + break; + default: + LOGCI(ci, LOGL_FATAL, "USB IN transfer failed, status=%u\n", xfer->status); + exit(1); + break; + } + + /* re-submit the IN transfer */ + rc = libusb_submit_transfer(xfer); + OSMO_ASSERT(rc == 0); +} + + +static void allocate_and_submit_irq(struct osmo_st2_cardem_inst *ci) +{ + struct osmo_st2_transport *transp = ci->slot->transp; + struct libusb_transfer *xfer; + int rc; + + xfer = libusb_alloc_transfer(0); + OSMO_ASSERT(xfer); + xfer->dev_handle = transp->usb_devh; + xfer->flags = 0; + xfer->type = LIBUSB_TRANSFER_TYPE_INTERRUPT; + xfer->endpoint = transp->usb_ep.irq_in; + xfer->timeout = 0; + xfer->user_data = ci; + xfer->length = 64; + + xfer->buffer = libusb_dev_mem_alloc(xfer->dev_handle, xfer->length); + OSMO_ASSERT(xfer->buffer); + xfer->callback = usb_irq_xfer_cb; + + /* submit the IN transfer */ + rc = libusb_submit_transfer(xfer); + OSMO_ASSERT(rc == 0); +} + + + static void print_welcome(void) { printf("simtrace2-cardem-pcsc - Using PC/SC reader as SIM\n" @@ -234,31 +377,9 @@ static void run_mainloop(struct osmo_st2_cardem_inst *ci) { - struct osmo_st2_transport *transp = ci->slot->transp; - unsigned int msg_count, byte_count = 0; - uint8_t buf[16*265]; - int xfer_len; - int rc; - printf("Entering main loop\n"); - while (1) { - /* read data from SIMtrace2 device (local or via USB) */ - rc = libusb_bulk_transfer(transp->usb_devh, transp->usb_ep.in, - buf, sizeof(buf), &xfer_len, 100); - if (rc < 0 && rc != LIBUSB_ERROR_TIMEOUT && - rc != LIBUSB_ERROR_INTERRUPTED && - rc != LIBUSB_ERROR_IO) { - fprintf(stderr, "BULK IN transfer error; rc=%d\n", rc); - return; - } - /* dispatch any incoming data */ - if (xfer_len > 0) { - printf("URB: %s\n", osmo_hexdump(buf, xfer_len)); - process_usb_msg(ci, buf, xfer_len); - msg_count++; - byte_count += xfer_len; - } + osmo_select_main(0); } } @@ -307,6 +428,12 @@ print_welcome(); + rc = osmo_libusb_init(NULL); + if (rc < 0) { + fprintf(stderr, "libusb initialization failed\n"); + return rc; + } + while (1) { int option_index = 0; @@ -413,6 +540,8 @@ ifm->addr = addr; if (path) osmo_strlcpy(ifm->path, path, sizeof(ifm->path)); + transp->udp_fd = -1; + transp->usb_async = true; transp->usb_devh = osmo_libusb_open_claim_interface(NULL, NULL, ifm); if (!transp->usb_devh) { fprintf(stderr, "can't open USB device\n"); @@ -432,6 +561,13 @@ goto close_exit; } + allocate_and_submit_irq(ci); + for (int i = 0; i < 4; i++) + allocate_and_submit_in(ci); + + /* request firmware to generate STATUS on IRQ endpoint */ + osmo_st2_cardem_request_config(ci, CEMU_FEAT_F_STATUS_IRQ); + /* simulate card-insert to modem (owhw, not qmod) */ osmo_st2_cardem_request_card_insert(ci, true); -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ib04798572295f25477719124530b6584780c5b75 Gerrit-Change-Number: 23634 Gerrit-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 Apr 6 00:18:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:08 +0000 Subject: Change in simtrace2[master]: Revert "add ISO 7816-3 library to remsim project" References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23635 ) Change subject: Revert "add ISO 7816-3 library to remsim project" ...................................................................... Revert "add ISO 7816-3 library to remsim project" This reverts commit 4a58c08d671adc928fea9dc12018c26818f24d4e. The code replicates to a large extent what is already present in iso7816_fidi.c and I have serious doubts about the correctness of the computation in its iso7816_3_calculate_wt() function. Change-Id: I3f26da4e9aa8d7b0f4b4b7992269cf365a643ec7 --- M firmware/apps/cardem/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/35/23635/1 diff --git a/firmware/apps/cardem/Makefile b/firmware/apps/cardem/Makefile index d5f68a5..75c43e8 100644 --- a/firmware/apps/cardem/Makefile +++ b/firmware/apps/cardem/Makefile @@ -1,3 +1,3 @@ C_FILES += $(C_LIBUSB_RT) -C_FILES += card_emu.c cciddriver.c iso7816_3.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c +C_FILES += card_emu.c cciddriver.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I3f26da4e9aa8d7b0f4b4b7992269cf365a643ec7 Gerrit-Change-Number: 23635 Gerrit-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 Apr 6 00:18:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:09 +0000 Subject: Change in simtrace2[master]: Revert "add library providing ISO 7816-3 utilities" References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23636 ) Change subject: Revert "add library providing ISO 7816-3 utilities" ...................................................................... Revert "add library providing ISO 7816-3 utilities" This reverts commit 4a29f64cbe12ca9fbddd66ae10b614388fef5e9b. The code replicates to a large extent what is already present in iso7816_fidi.c and I have serious doubts about the correctness of the computation in its iso7816_3_calculate_wt() function. Change-Id: I80dab4401d13306d573a6a35ce8729d2acc141e4 --- D firmware/libcommon/include/iso7816_3.h D firmware/libcommon/source/iso7816_3.c 2 files changed, 0 insertions(+), 229 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/36/23636/1 diff --git a/firmware/libcommon/include/iso7816_3.h b/firmware/libcommon/include/iso7816_3.h deleted file mode 100644 index e6c1b4f..0000000 --- a/firmware/libcommon/include/iso7816_3.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon - * - * 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. -*/ - -/* this library provides utilities to handle the ISO-7816 part 3 communication aspects (e.g. related - * to F and D) */ - -#pragma once - -#include -#include - -/*! default clock rate conversion integer Fd. - * ISO/IEC 7816-3:2006(E) section 8.1 */ -#define ISO7816_3_DEFAULT_FD 372 - -/*! default baud rate adjustment factor Dd. - * ISO/IEC 7816-3:2006(E) section 8.1 */ -#define ISO7816_3_DEFAULT_DD 1 - -/*! default clock rate conversion integer Fi. - * ISO/IEC 7816-3:2006(E) section 8.3 - * \note non-default value is optionally specified in TA1 */ -#define ISO7816_3_DEFAULT_FI 372 - -/*! default baud rate adjustment factor Di. - * ISO/IEC 7816-3:2006(E) section 8.3 - * \note non-default value is optionally specified in TA1 */ -#define ISO7816_3_DEFAULT_DI 1 - -/*! default maximum clock frequency, in Hz. - * ISO/IEC 7816-3:2006(E) section 8.3 - * \note non-default value is optionally specified in TA1 */ -#define ISO7816_3_DEFAULT_FMAX 5000000UL - -/*! default Waiting Integer (WI) value for T=0. - * ISO/IEC 7816-3:2006(E) section 10.2 - * \note non-default value is optionally specified in TC2 */ -#define ISO7816_3_DEFAULT_WI 10 - -/*! default Waiting Time (WT) value, in ETU. - * ISO/IEC 7816-3:2006(E) section 8.1 - * \note depends on Fi, Di, and WI if protocol T=0 is selected */ -#define ISO7816_3_DEFAULT_WT 9600 - -extern const uint16_t iso7816_3_fi_table[]; - -extern const uint32_t iso7816_3_fmax_table[]; - -extern const uint8_t iso7816_3_di_table[]; - -bool iso7816_3_valid_f(uint16_t f); - -bool iso7816_3_valid_d(uint8_t d); - -int32_t iso7816_3_calculate_wt(uint8_t wi, uint16_t fi, uint8_t di, uint16_t f, uint8_t d); diff --git a/firmware/libcommon/source/iso7816_3.c b/firmware/libcommon/source/iso7816_3.c deleted file mode 100644 index ccdff68..0000000 --- a/firmware/libcommon/source/iso7816_3.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon - * - * 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 "utils.h" -#include "iso7816_3.h" - -/*! Table of clock rate conversion integer F indexed by Fi. - * \note Fi is indicated in TA1, but the same table is used for F and Fn during PPS - * ISO/IEC 7816-3:2006(E) table 7 */ -const uint16_t iso7816_3_fi_table[16] = { - 372, 372, 558, 744, 1116, 1488, 1860, 0, - 0, 512, 768, 1024, 1536, 2048, 0, 0 -}; - -/*! Table of maximum clock frequency f_max in Hz indexed by Fi. - * ISO/IEC 7816-3:2006(E) table 7 - * \note f_max is indicated in TA1, but the same table is used for F and Fn during PPS */ -const uint32_t iso7816_3_fmax_table[16] = { - 4000000, 5000000, 6000000, 8000000, 12000000, 16000000, 20000000, 0, - 0, 5000000, 7500000, 10000000, 15000000, 20000000, 0, 0 -}; - -/*! Table encoding the baud rate adjust integer D indexed by Di. - * ISO/IEC 7816-3:2006(E) table 8 - * \note Di is indicated in TA1, but the same table is used for D and Dn during PPS */ -const uint8_t iso7816_3_di_table[16] = { - 0, 1, 2, 4, 8, 16, 32, 64, - 12, 20, 0, 0, 0, 0, 0, 0, -}; - -/* All values are based on the Elementary Time Unit (ETU), defined in ISO/IEC 7816-3 section 7.1 - * this is the time required to transmit a bit, and is calculated as follows: - * 1 ETU = (F / D) x (1 / f) - * where: - * - F is the clock rate conversion integer - * - D is the baud rate adjustment factor - * - f is the clock frequency - * - * The possible F, f(max), and D values are defined in ISO/IEC 7816-3 table 7 and 8 - * - the initial value for F (after reset) is Fd = 372 - * - the initial value for D (after reset) is Dd = 1 - * - the initial maximum frequency f(max) is 5 MHz - * - * The card must measure the ETU based on the clock signal provided by the reader - * one ETU (e.g. 1 bit) takes F/D clock cycles, which the card must count - * - * The card can indicate an alternative set of supported values Fi (with corresponding f(max)) and - * Di for higher baud rate in TA1 in the ATR (see ISO/IEC 7816-3 section 8.3) - * - * These values are selected according to ISO/IEC 7816-3 section 6.3.1: - * - card in specific mode: they are enforced if TA2 is present (the reader can deactivate the card - * if it does not support these values) - * - card in negotiable mode: - * -- they can be selected by the reader using the Protocol and Parameters Selection (PPS) procedure - * -- the first offered protocol and default values are used when no PPS is started - * - * PPS is done with Fd and Dd (see ISO/IEC 7816-3 section 9) the reader can propose any F and D - * values between from Fd to Fi, and from Dd to Di (Fi and Di are indicated in TA1) the in PPS - * agreed values F and D are called Fn and Dn and are applied after a successful exchange, - * corresponding to PPS1_Response bit 5 - * - * The F and D values must be provided to the SAM3S USART peripheral (after reset and PPS) - */ - -/*! Verify if the clock rate conversion integer F value is valid. - * \param[in] f F value to be validated - * \return if F value is valid - * \note only values in ISO/IEC 7816-3:2006(E) table 7 are valid */ -bool iso7816_3_valid_f(uint16_t f) -{ - if (0 == f) { - return false; - } - uint8_t i = 0; - for (i = 0; i < ARRAY_SIZE(iso7816_3_fi_table) && iso7816_3_fi_table[i] != f; i++); - return (i < ARRAY_SIZE(iso7816_3_fi_table) && iso7816_3_fi_table[i] == f); -} - -/*! Verify if the baud rate adjustment factor D value is valid. - * \param[in] d D value to be validated - * \return if D value is valid - * \note only values in ISO/IEC 7816-3:2006(E) table 8 are valid */ -bool iso7816_3_valid_d(uint8_t d) -{ - if (0 == d) { - return false; - } - uint8_t i = 0; - for (i = 0; i < ARRAY_SIZE(iso7816_3_di_table) && iso7816_3_di_table[i] != d; i++); - return (i < ARRAY_SIZE(iso7816_3_di_table) && iso7816_3_di_table[i] == d); -} - -/* The ETU is not only used to define the baud rate, but also the Waiting Time (WT) (see ISO/IEC - * 7816-3 section 8.1) - * - * when exceeding WT without card response, the reader flags the card as unresponsive, and resets it - * this can be used by the card to indicate errors or unsupported operations if the card requires - * more time to respond, it shall send a procedure byte to restart WT WT is calculated as follows - * (for T=0, see ISO/IEC 7816-3 section 10.2): WT = WI x 960 x (Fi / f(max)) where - * - WI is encoded in TC2 in the ATR (10 if absent) - * - WI does not depend on D/Di (used for the ETU) - * - after reset WT is 9600 ETU - * - WI (e.g. the new WT) is applied when T=0 is used (after 6.3.1), even if Fi is not Fn (this WT - * extension is important to know for the reader so to have the right timeout) - */ - -/*! Calculate Waiting Time (WT) in units of ETU. - * \param[in] wi Waiting Integer - * \param[in] fi clock rate conversion integer Fi value - * \param[in] di baud rate adjustment factor Di value - * \param[in] f clock rate conversion integer F value - * \param[in] d baud rate adjustment factor D value - * \return Waiting Time WT, in ETU, or < 0 on error (see code for return codes) - * \note this should happen after reset and T=0 protocol select (through PPS or implicit) - * ISO/IEC 7816-3:2006(E) section 8.1 and 10.2 */ -int32_t iso7816_3_calculate_wt(uint8_t wi, uint16_t fi, uint8_t di, uint16_t f, uint8_t d) -{ - /* sanity checks */ - if (0 == wi) - return -1; - - if (!iso7816_3_valid_f(fi)) - return -2; - - if (!iso7816_3_valid_d(di)) - return -3; - - if (!iso7816_3_valid_f(f)) - return -4; - - if (!iso7816_3_valid_d(d)) - return -5; - - if (f > fi) - return -6; - - if (d > di) - return -7; - - /* see 7816-3 Section 10.2 */ - return wi * 960UL * (fi/f) * (di/d); // calculate timeout value in ETU -} -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I80dab4401d13306d573a6a35ce8729d2acc141e4 Gerrit-Change-Number: 23636 Gerrit-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 Apr 6 00:18:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:09 +0000 Subject: Change in simtrace2[master]: card_emu: waiting_time is stored in etu, not clocks. References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23637 ) Change subject: card_emu: waiting_time is stored in etu, not clocks. ...................................................................... card_emu: waiting_time is stored in etu, not clocks. The comment didn't reflect the source. I checked all users and the code consistently stores the waiting time in units of 'etu'. Change-Id: I2bc4a7c19cee5fb487ad639ee48ecaea706f6172 --- M firmware/libcommon/source/card_emu.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/37/23637/1 diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 269c7c6..5ab6cab 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -165,7 +165,7 @@ uint8_t in_ep; /* USB IN EP */ uint8_t irq_ep; /* USB IN EP */ - uint32_t waiting_time; /* in clocks */ + uint32_t waiting_time; /* in etu */ /* ATR state machine */ struct { -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I2bc4a7c19cee5fb487ad639ee48ecaea706f6172 Gerrit-Change-Number: 23637 Gerrit-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 Apr 6 00:18:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:10 +0000 Subject: Change in simtrace2[master]: card_emu: Rename fi to Fi and di to Di References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23638 ) Change subject: card_emu: Rename fi to Fi and di to Di ...................................................................... card_emu: Rename fi to Fi and di to Di As we will soon introduce the distinction between Fi and F, we should use uppercase letters, as lower-case 'f' is defined in ISO7816-3 as the frequency, which is different from the upper-case 'F'. Change-Id: Iaede621551520576e9b9af878fa46fbc88e59c2a --- M firmware/libcommon/source/card_emu.c 1 file changed, 14 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/38/23638/1 diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 5ab6cab..5feb157 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -155,8 +155,8 @@ bool clocked; /*< if clock is active ( true = active, false = inactive) */ /* timing parameters, from PTS */ - uint8_t fi; - uint8_t di; + uint8_t Fi; + uint8_t Di; uint8_t wi; uint8_t tc_chan; /* TC channel number */ @@ -361,10 +361,10 @@ { int rc; - rc = compute_fidi_ratio(ch->fi, ch->di); + rc = compute_fidi_ratio(ch->Fi, ch->Di); if (rc > 0 && rc < 0x400) { TRACE_INFO("%u: computed Fi(%u) Di(%u) ratio: %d\r\n", - ch->num, ch->fi, ch->di, rc); + ch->num, ch->Fi, ch->Di, rc); /* make sure UART uses new F/D ratio */ card_emu_uart_update_fidi(ch->uart_chan, rc); /* notify ETU timer about this */ @@ -395,8 +395,8 @@ break; case ISO_S_WAIT_ATR: /* Reset to initial Fi / Di ratio */ - ch->fi = 1; - ch->di = 1; + ch->Fi = 1; + ch->Di = 1; emu_update_fidi(ch); /* the ATR should only be sent 400 to 40k clock cycles after the RESET. * we use the tc_etu mechanism to wait this time. @@ -490,7 +490,7 @@ } } /* update waiting time (see ISO 7816-3 10.2) */ - ch->waiting_time = ch->wi * 960 * ch->fi; + ch->waiting_time = ch->wi * 960 * ch->Fi; tc_etu_set_wtime(ch->tc_chan, ch->waiting_time); /* go to next state */ card_set_state(ch, ISO_S_WAIT_TPDU); @@ -626,10 +626,9 @@ case PTS_S_WAIT_RESP_PTS1: byte = ch->pts.resp[_PTS1]; /* This must be TA1 */ - ch->fi = byte >> 4; - ch->di = byte & 0xf; - TRACE_DEBUG("%u: found Fi=%u Di=%u\r\n", ch->num, - ch->fi, ch->di); + ch->Fi = byte >> 4; + ch->Di = byte & 0xf; + TRACE_DEBUG("%u: found Fi=%u Di=%u\r\n", ch->num, ch->Fi, ch->Di); break; case PTS_S_WAIT_RESP_PTS2: byte = ch->pts.resp[_PTS2]; @@ -1025,8 +1024,8 @@ if (ch->in_reset) sts->flags |= CEMU_STATUS_F_RESET_ACTIVE; /* FIXME: voltage + card insert */ - sts->fi = ch->fi; - sts->di = ch->di; + sts->fi = ch->Fi; + sts->di = ch->Di; sts->wi = ch->wi; sts->waiting_time = ch->waiting_time; @@ -1232,8 +1231,8 @@ ch->in_reset = in_reset; ch->clocked = clocked; - ch->fi = 0; - ch->di = 1; + ch->Fi = 0; + ch->Di = 1; ch->wi = ISO7816_3_DEFAULT_WI; ch->tc_chan = tc_chan; -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Iaede621551520576e9b9af878fa46fbc88e59c2a Gerrit-Change-Number: 23638 Gerrit-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 Apr 6 00:18:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:10 +0000 Subject: Change in simtrace2[master]: card_emu: Clarify and differentiate F/Fi/F_index/Fi_index References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23639 ) Change subject: card_emu: Clarify and differentiate F/Fi/F_index/Fi_index ...................................................................... card_emu: Clarify and differentiate F/Fi/F_index/Fi_index The ISO7816 spec terms are well-defined, let's not abuse them. We used to consider "Fi" as the "index into the table of F values", while the spec actually considers Fi as the initial value for F. Let's make sure we use the terms quite clearly: * Fi and Di are the initial values for F and D * F*_index and D*_index are the indexes into the ISO7816-3 Tables Furthermore, let's track Fi separately from F, as e.g. the waiting time definition only considers Fi as indicated in the ATR, despite an actually different F value might have been negotiated via PTS meanwhile. Change-Id: Ieb2425e8380a81b79df7b2bd072902994e9c3ee7 --- M firmware/libcommon/include/simtrace_prot.h M firmware/libcommon/source/card_emu.c 2 files changed, 52 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/39/23639/1 diff --git a/firmware/libcommon/include/simtrace_prot.h b/firmware/libcommon/include/simtrace_prot.h index eca844a..e550616 100644 --- a/firmware/libcommon/include/simtrace_prot.h +++ b/firmware/libcommon/include/simtrace_prot.h @@ -230,11 +230,17 @@ uint32_t flags; /* phone-applied target voltage in mV */ uint16_t voltage_mv; - /* Fi/Di related information */ - uint8_t fi; - uint8_t di; - uint8_t wi; - uint32_t waiting_time; + /* F/D related information. Not actual Fn/Dn values but indexes into tables! */ + union { + uint8_t F_index; /* + * (C) 2010-2021 by Harald Welte * (C) 2018 by sysmocom -s.f.m.c. GmbH, Author: Kevin Redon * * This program is free software; you can redistribute it and/or modify @@ -154,19 +154,35 @@ bool in_reset; /*< if card is in reset (true = RST low/asserted, false = RST high/ released) */ bool clocked; /*< if clock is active ( true = active, false = inactive) */ - /* timing parameters, from PTS */ - uint8_t Fi; - uint8_t Di; + /* All below variables with _index suffix are indexes from 0..15 into Tables 7 + 8 + * of ISO7816-3. */ + + /*! Index to clock rate conversion integer Fi (ISO7816-3 Table 7). + * \note this represents the maximum value supported by the card, and can be indicated in TA1 */ + uint8_t Fi_index; + /*! Current value of index to clock rate conversion integer F (ISO 7816-3 Section 7.1). */ + uint8_t F_index; + + /*! Index to baud rate adjustment factor Di (ISO7816-3 Table 8). + * \note this represents the maximum value supported by the card, and can be indicated in TA1 */ + uint8_t Di_index; + /*! Current value of index to baud rate adjustment factor D (ISO 7816-3 Section 7.1). */ + uint8_t D_index; + + /*! Waiting Integer (ISO7816-3 Section 10.2). + * \note this value can be set in TA2 */ uint8_t wi; + /*! Waiting Time, in ETU (ISO7816-3 Section 8.1). + * \note this depends on Fi, Di, and WI if T=0 is used */ + uint32_t waiting_time; /* in etu */ + uint8_t tc_chan; /* TC channel number */ uint8_t uart_chan; /* UART channel */ uint8_t in_ep; /* USB IN EP */ uint8_t irq_ep; /* USB IN EP */ - uint32_t waiting_time; /* in etu */ - /* ATR state machine */ struct { uint8_t idx; @@ -361,16 +377,16 @@ { int rc; - rc = compute_fidi_ratio(ch->Fi, ch->Di); + rc = compute_fidi_ratio(ch->F_index, ch->D_index); if (rc > 0 && rc < 0x400) { - TRACE_INFO("%u: computed Fi(%u) Di(%u) ratio: %d\r\n", - ch->num, ch->Fi, ch->Di, rc); + TRACE_INFO("%u: computed F(%u)/D(%u) ratio: %d\r\n", ch->num, + ch->F_index, ch->D_index, rc); /* make sure UART uses new F/D ratio */ card_emu_uart_update_fidi(ch->uart_chan, rc); /* notify ETU timer about this */ tc_etu_set_etu(ch->tc_chan, rc); } else - TRACE_INFO("%u: computed FiDi ration %d unsupported\r\n", + TRACE_INFO("%u: computed F/D ratio %d unsupported\r\n", ch->num, rc); } @@ -395,8 +411,10 @@ break; case ISO_S_WAIT_ATR: /* Reset to initial Fi / Di ratio */ - ch->Fi = 1; - ch->Di = 1; + ch->Fi_index = ch->F_index = 1; + ch->Di_index = ch->D_index = 1; + ch->wi = ISO7816_3_DEFAULT_WI; + ch->waiting_time = ISO7816_3_INIT_WTIME; emu_update_fidi(ch); /* the ATR should only be sent 400 to 40k clock cycles after the RESET. * we use the tc_etu mechanism to wait this time. @@ -490,7 +508,7 @@ } } /* update waiting time (see ISO 7816-3 10.2) */ - ch->waiting_time = ch->wi * 960 * ch->Fi; + ch->waiting_time = ch->wi * 960 * fi_table[ch->F_index]; tc_etu_set_wtime(ch->tc_chan, ch->waiting_time); /* go to next state */ card_set_state(ch, ISO_S_WAIT_TPDU); @@ -626,9 +644,11 @@ case PTS_S_WAIT_RESP_PTS1: byte = ch->pts.resp[_PTS1]; /* This must be TA1 */ - ch->Fi = byte >> 4; - ch->Di = byte & 0xf; - TRACE_DEBUG("%u: found Fi=%u Di=%u\r\n", ch->num, ch->Fi, ch->Di); + ch->F_index = byte >> 4; + ch->D_index = byte & 0xf; + TRACE_DEBUG("%u: found F=%u D=%u\r\n", ch->num, + fi_table[ch->F_index], di_table[ch->D_index]); + /* FIXME: if F or D are 0, become unresponsive to signal error condition */ break; case PTS_S_WAIT_RESP_PTS2: byte = ch->pts.resp[_PTS2]; @@ -653,7 +673,7 @@ switch (ch->pts.state) { case PTS_S_WAIT_RESP_PCK: card_emu_uart_wait_tx_idle(ch->uart_chan); - /* update baud rate generator with Fi/Di */ + /* update baud rate generator with F/D */ emu_update_fidi(ch); /* Wait for the next TPDU */ card_set_state(ch, ISO_S_WAIT_TPDU); @@ -1024,8 +1044,8 @@ if (ch->in_reset) sts->flags |= CEMU_STATUS_F_RESET_ACTIVE; /* FIXME: voltage + card insert */ - sts->fi = ch->Fi; - sts->di = ch->Di; + sts->F_index = ch->F_index; + sts->D_index = ch->D_index; sts->wi = ch->wi; sts->waiting_time = ch->waiting_time; @@ -1231,8 +1251,8 @@ ch->in_reset = in_reset; ch->clocked = clocked; - ch->Fi = 0; - ch->Di = 1; + ch->Fi_index = ch->F_index = 1; + ch->Di_index = ch->D_index = 1; ch->wi = ISO7816_3_DEFAULT_WI; ch->tc_chan = tc_chan; -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieb2425e8380a81b79df7b2bd072902994e9c3ee7 Gerrit-Change-Number: 23639 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:18:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:11 +0000 Subject: Change in simtrace2[master]: iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23640 ) Change subject: iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology ...................................................................... iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology Fi/Di are not the index into the table, but the contents of the table as resolved by Fi_index / Di_index. Let's clarify the terminology. Change-Id: If364e08e7c9a3a9707e6d54b9267c6a7c088e415 --- M firmware/libcommon/include/iso7816_fidi.h M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/iso7816_fidi.c M firmware/libcommon/source/simtrace_iso7816.c M firmware/libcommon/source/sniffer.c 5 files changed, 19 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/40/23640/1 diff --git a/firmware/libcommon/include/iso7816_fidi.h b/firmware/libcommon/include/iso7816_fidi.h index c56478b..19483b0 100644 --- a/firmware/libcommon/include/iso7816_fidi.h +++ b/firmware/libcommon/include/iso7816_fidi.h @@ -21,10 +21,10 @@ #include /* Table 7 of ISO 7816-3:2006 */ -extern const uint16_t fi_table[]; +extern const uint16_t iso7816_3_fi_table[16]; /* Table 8 from ISO 7816-3:2006 */ -extern const uint8_t di_table[]; +extern const uint8_t iso7816_3_di_table[16]; -/* compute the F/D ratio based on Fi and Di values */ -int compute_fidi_ratio(uint8_t fi, uint8_t di); +/* compute the F/D ratio based on F_index and D_index values */ +int iso7816_3_compute_fd_ratio(uint8_t f_index, uint8_t d_index); diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 1193121..c5e4cfa 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -377,7 +377,7 @@ { int rc; - rc = compute_fidi_ratio(ch->F_index, ch->D_index); + rc = iso7816_3_compute_fd_ratio(ch->F_index, ch->D_index); if (rc > 0 && rc < 0x400) { TRACE_INFO("%u: computed F(%u)/D(%u) ratio: %d\r\n", ch->num, ch->F_index, ch->D_index, rc); @@ -508,7 +508,7 @@ } } /* update waiting time (see ISO 7816-3 10.2) */ - ch->waiting_time = ch->wi * 960 * fi_table[ch->F_index]; + ch->waiting_time = ch->wi * 960 * iso7816_3_fi_table[ch->F_index]; tc_etu_set_wtime(ch->tc_chan, ch->waiting_time); /* go to next state */ card_set_state(ch, ISO_S_WAIT_TPDU); @@ -647,7 +647,7 @@ ch->F_index = byte >> 4; ch->D_index = byte & 0xf; TRACE_DEBUG("%u: found F=%u D=%u\r\n", ch->num, - fi_table[ch->F_index], di_table[ch->D_index]); + iso7816_3_fi_table[ch->F_index], iso7816_3_di_table[ch->D_index]); /* FIXME: if F or D are 0, become unresponsive to signal error condition */ break; case PTS_S_WAIT_RESP_PTS2: diff --git a/firmware/libcommon/source/iso7816_fidi.c b/firmware/libcommon/source/iso7816_fidi.c index 1c70467..033a325 100644 --- a/firmware/libcommon/source/iso7816_fidi.c +++ b/firmware/libcommon/source/iso7816_fidi.c @@ -23,38 +23,38 @@ #include "iso7816_fidi.h" /* Table 7 of ISO 7816-3:2006 */ -const uint16_t fi_table[] = { +const uint16_t iso7816_3_fi_table[] = { 372, 372, 558, 744, 1116, 1488, 1860, 0, 0, 512, 768, 1024, 1536, 2048, 0, 0 }; /* Table 8 from ISO 7816-3:2006 */ -const uint8_t di_table[] = { +const uint8_t iso7816_3_di_table[] = { 0, 1, 2, 4, 8, 16, 32, 64, 12, 20, 2, 4, 8, 16, 32, 64, }; /* compute the F/D ratio based on Fi and Di values */ -int compute_fidi_ratio(uint8_t fi, uint8_t di) +int iso7816_3_compute_fd_ratio(uint8_t f_index, uint8_t d_index) { uint16_t f, d; int ret; - if (fi >= ARRAY_SIZE(fi_table) || - di >= ARRAY_SIZE(di_table)) + if (f_index >= ARRAY_SIZE(iso7816_3_fi_table) || + d_index >= ARRAY_SIZE(iso7816_3_di_table)) return -EINVAL; - f = fi_table[fi]; + f = iso7816_3_fi_table[f_index]; if (f == 0) return -EINVAL; - d = di_table[di]; + d = iso7816_3_di_table[d_index]; if (d == 0) return -EINVAL; /* See table 7 of ISO 7816-3: From 1000 on we divide by 1/d, * which equals a multiplication by d */ - if (di < 8) + if (d_index < 8) ret = f / d; else ret = f * d; diff --git a/firmware/libcommon/source/simtrace_iso7816.c b/firmware/libcommon/source/simtrace_iso7816.c index 8742696..27677a6 100644 --- a/firmware/libcommon/source/simtrace_iso7816.c +++ b/firmware/libcommon/source/simtrace_iso7816.c @@ -125,7 +125,7 @@ uint8_t fi = fidi >> 4; uint8_t di = fidi & 0xf; - int ratio = compute_fidi_ratio(fi, di); + int ratio = iso7816_3_compute_fd_ratio(fi, di); if (ratio > 0 && ratio < 0x8000) { /* make sure USART uses new F/D ratio */ diff --git a/firmware/libcommon/source/sniffer.c b/firmware/libcommon/source/sniffer.c index 08770e2..57e2daa 100644 --- a/firmware/libcommon/source/sniffer.c +++ b/firmware/libcommon/source/sniffer.c @@ -658,9 +658,10 @@ fn = 1; dn = 1; } - TRACE_INFO("PPS negotiation successful: Fn=%u Dn=%u\n\r", fi_table[fn], di_table[dn]); + TRACE_INFO("PPS negotiation successful: Fn=%u Dn=%u\n\r", + iso7816_3_fi_table[fn], iso7816_3_di_table[dn]); update_fidi(&sniff_usart, pps_cur[2]); - update_wt(0, di_table[dn]); + update_wt(0, iso7816_3_di_table[dn]); usb_send_fidi(pps_cur[2]); /* send Fi/Di change notification to host software over USB */ } else { /* checksum is invalid */ TRACE_INFO("PPS negotiation failed\n\r"); -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: If364e08e7c9a3a9707e6d54b9267c6a7c088e415 Gerrit-Change-Number: 23640 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:18:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:13 +0000 Subject: Change in simtrace2[master]: card_emu: improve reset detection conditions References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23641 ) Change subject: card_emu: improve reset detection conditions ...................................................................... card_emu: improve reset detection conditions * enter ISO_S_WAIT_RST when RST is asserted * enter ISO_S_WAIT_ATR only when we RST is released while in state ISO_S_WAIT_RST Change-Id: I620333aa8d45561a8028b948955a27f667b58406 --- M firmware/libcommon/source/card_emu.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/41/23641/1 diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index c5e4cfa..216ffe3 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -1102,7 +1102,7 @@ case CARD_IO_RST: if (active == 0 && ch->in_reset) { TRACE_INFO("%u: RST released\r\n", ch->num); - if (ch->vcc_active && ch->clocked) { + if (ch->vcc_active && ch->clocked && ch->state == ISO_S_WAIT_RST) { /* enable the TC/ETU counter once reset has been released */ tc_etu_enable(ch->tc_chan); /* prepare to send the ATR */ @@ -1113,6 +1113,7 @@ TRACE_INFO("%u: RST asserted\r\n", ch->num); card_handle_reset(ch); chg_mask |= CEMU_STATUS_F_RESET_ACTIVE; + card_set_state(ch, ISO_S_WAIT_RST); } ch->in_reset = active; break; -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I620333aa8d45561a8028b948955a27f667b58406 Gerrit-Change-Number: 23641 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:18:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:14 +0000 Subject: Change in simtrace2[master]: card_emu: explicitly initialize PTS and TPDU states References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23642 ) Change subject: card_emu: explicitly initialize PTS and TPDU states ...................................................................... card_emu: explicitly initialize PTS and TPDU states Those are already initialized at various transitions of the master 7816 FSM, but let's properly initialize them at start-up, too. Change-Id: I81b2a8ef3284559164700d94717e4ccf008f53df --- M firmware/libcommon/source/card_emu.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/42/23642/1 diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 216ffe3..0ba6eb0 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -1264,6 +1264,9 @@ ch->atr.len = sizeof(default_atr); memcpy(ch->atr.atr, default_atr, ch->atr.len); + ch->pts.state = PTS_S_WAIT_REQ_PTSS; + ch->tpdu.state = TPDU_S_WAIT_CLA; + card_handle_reset(ch); tc_etu_init(ch->tc_chan, ch); -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I81b2a8ef3284559164700d94717e4ccf008f53df Gerrit-Change-Number: 23642 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:18:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:15 +0000 Subject: Change in simtrace2[master]: card_emu: Fix USART timer, particularly in re-start situations References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23643 ) Change subject: card_emu: Fix USART timer, particularly in re-start situations ...................................................................... card_emu: Fix USART timer, particularly in re-start situations The existing code started the timer once (and expired once) but didn't properly handle re-starting of the timer. Neither did it handle the 'half time expiration' case. If we want to call a function after half the WT expiring, we must of course program the hardware for half the timeout, and not the full timeout... Change-Id: Ia999d97f835c27597fcd1cf7ac78bac0ab9c98c1 --- M firmware/libcommon/source/mode_cardemu.c 1 file changed, 40 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/43/23643/1 diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 8531eb5..14f62a6 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -212,6 +212,23 @@ return 1; } +static uint16_t compute_next_timeout(struct cardem_inst *ci) +{ + uint32_t want_to_expire; + + if (ci->wt.total == 0) + return 0; + + if (!ci->wt.half_time_notified) { + /* we need to make sure to expire after half the total waiting time */ + OSMO_ASSERT(ci->wt.remaining > (ci->wt.total / 2)); + want_to_expire = ci->wt.remaining - (ci->wt.total / 2); + } else + want_to_expire = ci->wt.remaining; + TRACE_INFO("want_to_expire=%u (total=%u, remaining=%u)\r\n", want_to_expire, ci->wt.total, ci->wt.remaining); + /* if value exceeds the USART TO range, use the maximum possible value for one round */ + return OSMO_MIN(want_to_expire, 0xffff); +} /*! common handler if interrupt was received. * \param[in] inst_num Instance number, range 0..1 (some boards only '0' permitted) */ @@ -254,6 +271,9 @@ * how many etu have expired since we last sent a byte. See section * 33.7.3.11 "Receiver Time-out" of the SAM3S8 Data Sheet */ if (csr & US_CSR_TIMEOUT) { + /* clear timeout flag (and stop timeout until next character is received) */ + usart->US_CR |= US_CR_STTTO; + /* RX has been inactive for some time */ if (ci->wt.remaining <= (usart->US_RTOR & 0xffff)) { /* waiting time is over; will stop the timer */ @@ -266,17 +286,26 @@ if (ci->wt.remaining == 0) { /* let the FSM know that WT has expired */ card_emu_wtime_expired(ci->ch); - } else if (ci->wt.remaining <= ci->wt.total / 2 && !ci->wt.half_time_notified) { - /* let the FS know that half of the WT has expired */ - card_emu_wtime_half_expired(ci->ch); - ci->wt.half_time_notified = true; + /* don't automatically re-start in this case */ + } else { + bool half_time_just_reached = false; + + if (ci->wt.remaining <= ci->wt.total / 2 && !ci->wt.half_time_notified) { + ci->wt.half_time_notified = true; + /* don't immediately call card_emu_wtime_half_expired(), as that + * in turn may calls card_emu_uart_update_wt() which will change + * the timeout but would be overridden 4 lines below */ + half_time_just_reached = true; + } + + /* update the counter no matter if we reached half time or not */ + usart->US_RTOR = compute_next_timeout(ci); + /* restart the counter (if wt is 0, the timeout is not started) */ + usart->US_CR |= US_CR_RETTO; + + if (half_time_just_reached) + card_emu_wtime_half_expired(ci->ch); } - /* if value exceeds the USART TO range, use the maximum for now */ - usart->US_RTOR = OSMO_MIN(ci->wt.remaining, 0xffff); - /* clear timeout flag (and stop timeout until next character is received) */ - usart->US_CR |= US_CR_STTTO; - /* restart the counter (it wt is 0, the timeout is not started) */ - usart->US_CR |= US_CR_RETTO; } } @@ -336,8 +365,7 @@ /* FIXME: guard against race with interrupt handler */ ci->wt.remaining = ci->wt.total; ci->wt.half_time_notified = false; - /* if value exceeds the USART TO range, use the maximum for now */ - usart->US_RTOR = OSMO_MIN(ci->wt.remaining, 0xffff); + usart->US_RTOR = compute_next_timeout(ci); /* restart the counter (if wt is 0, the timeout is not started) */ usart->US_CR |= US_CR_RETTO; } -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ia999d97f835c27597fcd1cf7ac78bac0ab9c98c1 Gerrit-Change-Number: 23643 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:18:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:18:15 +0000 Subject: Change in simtrace2[master]: card_emu: Fix computation of waiting time References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23644 ) Change subject: card_emu: Fix computation of waiting time ...................................................................... card_emu: Fix computation of waiting time As we store the waiting time (WT) in 'etu', we must adjust the formula from ISO 7816-3. The 'Fi' component in the formula only exists to compute clock cycles from the etu, which we don't need here. Without this patch, the waiting time would be way too large (by a factor of 372 in the default case). Change-Id: Ia21bc7303f9b38834b5b1753983ed2a99bfc7d95 --- M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/mode_cardemu.c 2 files changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/44/23644/1 diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index cefc957..bcd5fd6 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -505,8 +505,11 @@ } } } - /* update waiting time (see ISO 7816-3 10.2) */ - ch->waiting_time = ch->wi * 960 * iso7816_3_fi_table[ch->F_index]; + /* update waiting time (see ISO 7816-3 10.2). We can drop the Fi + * multiplier as we store the waiting time in units of 'etu', and + * don't really care what the number of clock cycles or the absolute + * wall clock time is */ + ch->waiting_time = ch->wi * 960; /* go to next state */ card_set_state(ch, ISO_S_WAIT_TPDU); return 0; diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 14f62a6..127556c 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -225,7 +225,6 @@ want_to_expire = ci->wt.remaining - (ci->wt.total / 2); } else want_to_expire = ci->wt.remaining; - TRACE_INFO("want_to_expire=%u (total=%u, remaining=%u)\r\n", want_to_expire, ci->wt.total, ci->wt.remaining); /* if value exceeds the USART TO range, use the maximum possible value for one round */ return OSMO_MIN(want_to_expire, 0xffff); } -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ia21bc7303f9b38834b5b1753983ed2a99bfc7d95 Gerrit-Change-Number: 23644 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:38:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:38:50 +0000 Subject: Change in simtrace2[master]: simtrace2-cardem-pcsc: Make it work again In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23634 ) Change subject: simtrace2-cardem-pcsc: Make it work again ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ib04798572295f25477719124530b6584780c5b75 Gerrit-Change-Number: 23634 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 00:38: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 Apr 6 00:38:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:38:54 +0000 Subject: Change in simtrace2[master]: Revert "add ISO 7816-3 library to remsim project" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23635 ) Change subject: Revert "add ISO 7816-3 library to remsim project" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I3f26da4e9aa8d7b0f4b4b7992269cf365a643ec7 Gerrit-Change-Number: 23635 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 00:38:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:38:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:38:56 +0000 Subject: Change in simtrace2[master]: Revert "add library providing ISO 7816-3 utilities" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23636 ) Change subject: Revert "add library providing ISO 7816-3 utilities" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I80dab4401d13306d573a6a35ce8729d2acc141e4 Gerrit-Change-Number: 23636 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 00:38:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:39:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:39:01 +0000 Subject: Change in simtrace2[master]: simtrace2-cardem-pcsc: Make it work again In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23634 ) Change subject: simtrace2-cardem-pcsc: Make it work again ...................................................................... simtrace2-cardem-pcsc: Make it work again * support Interrupt STATUS notifications * use osmocom libusb abstraction * use asynchronous URBs for interrupt + bulk Change-Id: Ib04798572295f25477719124530b6584780c5b75 --- M host/src/simtrace2-cardem-pcsc.c 1 file changed, 159 insertions(+), 23 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/host/src/simtrace2-cardem-pcsc.c b/host/src/simtrace2-cardem-pcsc.c index f11330c..543780f 100644 --- a/host/src/simtrace2-cardem-pcsc.c +++ b/host/src/simtrace2-cardem-pcsc.c @@ -47,11 +47,13 @@ #include #include #include +#include #include #include #define ATR_MAX_LEN 33 +#define LOGCI(ci, lvl, fmt, args ...) printf(fmt, ## args) /* reasonable ATR offering all protocols and voltages * smartphones might not care, but other readers do @@ -180,6 +182,9 @@ case SIMTRACE_MSGT_DO_CEMU_RX_DATA: rc = process_do_rx_da(ci, buf, len); break; + case SIMTRACE_MSGT_BD_CEMU_CONFIG: + /* firmware confirms configuration change; ignore */ + break; default: printf("unknown simtrace msg type 0x%02x\n", sh->msg_type); rc = -1; @@ -189,6 +194,144 @@ return rc; } +/*! \brief Process a STATUS message on IRQ endpoint from the SIMtrace2 */ +static int process_irq_status(struct osmo_st2_cardem_inst *ci, const uint8_t *buf, int len) +{ + const struct cardemu_usb_msg_status *status = (struct cardemu_usb_msg_status *) buf; + + LOGCI(ci, LOGL_INFO, "SIMtrace IRQ STATUS: flags=0x%x, fi=%u, di=%u, wi=%u wtime=%u\n", + status->flags, status->fi, status->di, status->wi, + status->waiting_time); + + return 0; +} + +static int process_usb_msg_irq(struct osmo_st2_cardem_inst *ci, const uint8_t *buf, unsigned int len) +{ + struct simtrace_msg_hdr *sh = (struct simtrace_msg_hdr *)buf; + int rc; + + LOGCI(ci, LOGL_INFO, "SIMtrace IRQ %s\n", osmo_hexdump(buf, len)); + + buf += sizeof(*sh); + + switch (sh->msg_type) { + case SIMTRACE_MSGT_BD_CEMU_STATUS: + rc = process_irq_status(ci, buf, len); + break; + default: + LOGCI(ci, LOGL_ERROR, "unknown simtrace msg type 0x%02x\n", sh->msg_type); + rc = -1; + break; + } + + return rc; +} + +static void usb_in_xfer_cb(struct libusb_transfer *xfer) +{ + struct osmo_st2_cardem_inst *ci = xfer->user_data; + int rc; + + switch (xfer->status) { + case LIBUSB_TRANSFER_COMPLETED: + /* hand the message up the stack */ + process_usb_msg(ci, xfer->buffer, xfer->actual_length); + break; + case LIBUSB_TRANSFER_NO_DEVICE: + LOGCI(ci, LOGL_FATAL, "USB device disappeared\n"); + exit(1); + break; + default: + LOGCI(ci, LOGL_FATAL, "USB IN transfer failed, status=%u\n", xfer->status); + exit(1); + break; + } + + /* re-submit the IN transfer */ + rc = libusb_submit_transfer(xfer); + OSMO_ASSERT(rc == 0); +} + + +static void allocate_and_submit_in(struct osmo_st2_cardem_inst *ci) +{ + struct osmo_st2_transport *transp = ci->slot->transp; + struct libusb_transfer *xfer; + int rc; + + xfer = libusb_alloc_transfer(0); + OSMO_ASSERT(xfer); + xfer->dev_handle = transp->usb_devh; + xfer->flags = 0; + xfer->type = LIBUSB_TRANSFER_TYPE_BULK; + xfer->endpoint = transp->usb_ep.in; + xfer->timeout = 0; + xfer->user_data = ci; + xfer->length = 16*256; + + xfer->buffer = libusb_dev_mem_alloc(xfer->dev_handle, xfer->length); + OSMO_ASSERT(xfer->buffer); + xfer->callback = usb_in_xfer_cb; + + /* submit the IN transfer */ + rc = libusb_submit_transfer(xfer); + OSMO_ASSERT(rc == 0); +} + + +static void usb_irq_xfer_cb(struct libusb_transfer *xfer) +{ + struct osmo_st2_cardem_inst *ci = xfer->user_data; + int rc; + + switch (xfer->status) { + case LIBUSB_TRANSFER_COMPLETED: + process_usb_msg_irq(ci, xfer->buffer, xfer->actual_length); + break; + case LIBUSB_TRANSFER_NO_DEVICE: + LOGCI(ci, LOGL_FATAL, "USB device disappeared\n"); + exit(1); + break; + default: + LOGCI(ci, LOGL_FATAL, "USB IN transfer failed, status=%u\n", xfer->status); + exit(1); + break; + } + + /* re-submit the IN transfer */ + rc = libusb_submit_transfer(xfer); + OSMO_ASSERT(rc == 0); +} + + +static void allocate_and_submit_irq(struct osmo_st2_cardem_inst *ci) +{ + struct osmo_st2_transport *transp = ci->slot->transp; + struct libusb_transfer *xfer; + int rc; + + xfer = libusb_alloc_transfer(0); + OSMO_ASSERT(xfer); + xfer->dev_handle = transp->usb_devh; + xfer->flags = 0; + xfer->type = LIBUSB_TRANSFER_TYPE_INTERRUPT; + xfer->endpoint = transp->usb_ep.irq_in; + xfer->timeout = 0; + xfer->user_data = ci; + xfer->length = 64; + + xfer->buffer = libusb_dev_mem_alloc(xfer->dev_handle, xfer->length); + OSMO_ASSERT(xfer->buffer); + xfer->callback = usb_irq_xfer_cb; + + /* submit the IN transfer */ + rc = libusb_submit_transfer(xfer); + OSMO_ASSERT(rc == 0); +} + + + static void print_welcome(void) { printf("simtrace2-cardem-pcsc - Using PC/SC reader as SIM\n" @@ -234,31 +377,9 @@ static void run_mainloop(struct osmo_st2_cardem_inst *ci) { - struct osmo_st2_transport *transp = ci->slot->transp; - unsigned int msg_count, byte_count = 0; - uint8_t buf[16*265]; - int xfer_len; - int rc; - printf("Entering main loop\n"); - while (1) { - /* read data from SIMtrace2 device (local or via USB) */ - rc = libusb_bulk_transfer(transp->usb_devh, transp->usb_ep.in, - buf, sizeof(buf), &xfer_len, 100); - if (rc < 0 && rc != LIBUSB_ERROR_TIMEOUT && - rc != LIBUSB_ERROR_INTERRUPTED && - rc != LIBUSB_ERROR_IO) { - fprintf(stderr, "BULK IN transfer error; rc=%d\n", rc); - return; - } - /* dispatch any incoming data */ - if (xfer_len > 0) { - printf("URB: %s\n", osmo_hexdump(buf, xfer_len)); - process_usb_msg(ci, buf, xfer_len); - msg_count++; - byte_count += xfer_len; - } + osmo_select_main(0); } } @@ -307,6 +428,12 @@ print_welcome(); + rc = osmo_libusb_init(NULL); + if (rc < 0) { + fprintf(stderr, "libusb initialization failed\n"); + return rc; + } + while (1) { int option_index = 0; @@ -413,6 +540,8 @@ ifm->addr = addr; if (path) osmo_strlcpy(ifm->path, path, sizeof(ifm->path)); + transp->udp_fd = -1; + transp->usb_async = true; transp->usb_devh = osmo_libusb_open_claim_interface(NULL, NULL, ifm); if (!transp->usb_devh) { fprintf(stderr, "can't open USB device\n"); @@ -432,6 +561,13 @@ goto close_exit; } + allocate_and_submit_irq(ci); + for (int i = 0; i < 4; i++) + allocate_and_submit_in(ci); + + /* request firmware to generate STATUS on IRQ endpoint */ + osmo_st2_cardem_request_config(ci, CEMU_FEAT_F_STATUS_IRQ); + /* simulate card-insert to modem (owhw, not qmod) */ osmo_st2_cardem_request_card_insert(ci, true); -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ib04798572295f25477719124530b6584780c5b75 Gerrit-Change-Number: 23634 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 Apr 6 00:39:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:39:02 +0000 Subject: Change in simtrace2[master]: Revert "add ISO 7816-3 library to remsim project" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23635 ) Change subject: Revert "add ISO 7816-3 library to remsim project" ...................................................................... Revert "add ISO 7816-3 library to remsim project" This reverts commit 4a58c08d671adc928fea9dc12018c26818f24d4e. The code replicates to a large extent what is already present in iso7816_fidi.c and I have serious doubts about the correctness of the computation in its iso7816_3_calculate_wt() function. Change-Id: I3f26da4e9aa8d7b0f4b4b7992269cf365a643ec7 --- M firmware/apps/cardem/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/firmware/apps/cardem/Makefile b/firmware/apps/cardem/Makefile index d5f68a5..75c43e8 100644 --- a/firmware/apps/cardem/Makefile +++ b/firmware/apps/cardem/Makefile @@ -1,3 +1,3 @@ C_FILES += $(C_LIBUSB_RT) -C_FILES += card_emu.c cciddriver.c iso7816_3.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c +C_FILES += card_emu.c cciddriver.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I3f26da4e9aa8d7b0f4b4b7992269cf365a643ec7 Gerrit-Change-Number: 23635 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 Apr 6 00:39:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:39:02 +0000 Subject: Change in simtrace2[master]: Revert "add library providing ISO 7816-3 utilities" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23636 ) Change subject: Revert "add library providing ISO 7816-3 utilities" ...................................................................... Revert "add library providing ISO 7816-3 utilities" This reverts commit 4a29f64cbe12ca9fbddd66ae10b614388fef5e9b. The code replicates to a large extent what is already present in iso7816_fidi.c and I have serious doubts about the correctness of the computation in its iso7816_3_calculate_wt() function. Change-Id: I80dab4401d13306d573a6a35ce8729d2acc141e4 --- D firmware/libcommon/include/iso7816_3.h D firmware/libcommon/source/iso7816_3.c 2 files changed, 0 insertions(+), 229 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/firmware/libcommon/include/iso7816_3.h b/firmware/libcommon/include/iso7816_3.h deleted file mode 100644 index e6c1b4f..0000000 --- a/firmware/libcommon/include/iso7816_3.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon - * - * 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. -*/ - -/* this library provides utilities to handle the ISO-7816 part 3 communication aspects (e.g. related - * to F and D) */ - -#pragma once - -#include -#include - -/*! default clock rate conversion integer Fd. - * ISO/IEC 7816-3:2006(E) section 8.1 */ -#define ISO7816_3_DEFAULT_FD 372 - -/*! default baud rate adjustment factor Dd. - * ISO/IEC 7816-3:2006(E) section 8.1 */ -#define ISO7816_3_DEFAULT_DD 1 - -/*! default clock rate conversion integer Fi. - * ISO/IEC 7816-3:2006(E) section 8.3 - * \note non-default value is optionally specified in TA1 */ -#define ISO7816_3_DEFAULT_FI 372 - -/*! default baud rate adjustment factor Di. - * ISO/IEC 7816-3:2006(E) section 8.3 - * \note non-default value is optionally specified in TA1 */ -#define ISO7816_3_DEFAULT_DI 1 - -/*! default maximum clock frequency, in Hz. - * ISO/IEC 7816-3:2006(E) section 8.3 - * \note non-default value is optionally specified in TA1 */ -#define ISO7816_3_DEFAULT_FMAX 5000000UL - -/*! default Waiting Integer (WI) value for T=0. - * ISO/IEC 7816-3:2006(E) section 10.2 - * \note non-default value is optionally specified in TC2 */ -#define ISO7816_3_DEFAULT_WI 10 - -/*! default Waiting Time (WT) value, in ETU. - * ISO/IEC 7816-3:2006(E) section 8.1 - * \note depends on Fi, Di, and WI if protocol T=0 is selected */ -#define ISO7816_3_DEFAULT_WT 9600 - -extern const uint16_t iso7816_3_fi_table[]; - -extern const uint32_t iso7816_3_fmax_table[]; - -extern const uint8_t iso7816_3_di_table[]; - -bool iso7816_3_valid_f(uint16_t f); - -bool iso7816_3_valid_d(uint8_t d); - -int32_t iso7816_3_calculate_wt(uint8_t wi, uint16_t fi, uint8_t di, uint16_t f, uint8_t d); diff --git a/firmware/libcommon/source/iso7816_3.c b/firmware/libcommon/source/iso7816_3.c deleted file mode 100644 index ccdff68..0000000 --- a/firmware/libcommon/source/iso7816_3.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon - * - * 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 "utils.h" -#include "iso7816_3.h" - -/*! Table of clock rate conversion integer F indexed by Fi. - * \note Fi is indicated in TA1, but the same table is used for F and Fn during PPS - * ISO/IEC 7816-3:2006(E) table 7 */ -const uint16_t iso7816_3_fi_table[16] = { - 372, 372, 558, 744, 1116, 1488, 1860, 0, - 0, 512, 768, 1024, 1536, 2048, 0, 0 -}; - -/*! Table of maximum clock frequency f_max in Hz indexed by Fi. - * ISO/IEC 7816-3:2006(E) table 7 - * \note f_max is indicated in TA1, but the same table is used for F and Fn during PPS */ -const uint32_t iso7816_3_fmax_table[16] = { - 4000000, 5000000, 6000000, 8000000, 12000000, 16000000, 20000000, 0, - 0, 5000000, 7500000, 10000000, 15000000, 20000000, 0, 0 -}; - -/*! Table encoding the baud rate adjust integer D indexed by Di. - * ISO/IEC 7816-3:2006(E) table 8 - * \note Di is indicated in TA1, but the same table is used for D and Dn during PPS */ -const uint8_t iso7816_3_di_table[16] = { - 0, 1, 2, 4, 8, 16, 32, 64, - 12, 20, 0, 0, 0, 0, 0, 0, -}; - -/* All values are based on the Elementary Time Unit (ETU), defined in ISO/IEC 7816-3 section 7.1 - * this is the time required to transmit a bit, and is calculated as follows: - * 1 ETU = (F / D) x (1 / f) - * where: - * - F is the clock rate conversion integer - * - D is the baud rate adjustment factor - * - f is the clock frequency - * - * The possible F, f(max), and D values are defined in ISO/IEC 7816-3 table 7 and 8 - * - the initial value for F (after reset) is Fd = 372 - * - the initial value for D (after reset) is Dd = 1 - * - the initial maximum frequency f(max) is 5 MHz - * - * The card must measure the ETU based on the clock signal provided by the reader - * one ETU (e.g. 1 bit) takes F/D clock cycles, which the card must count - * - * The card can indicate an alternative set of supported values Fi (with corresponding f(max)) and - * Di for higher baud rate in TA1 in the ATR (see ISO/IEC 7816-3 section 8.3) - * - * These values are selected according to ISO/IEC 7816-3 section 6.3.1: - * - card in specific mode: they are enforced if TA2 is present (the reader can deactivate the card - * if it does not support these values) - * - card in negotiable mode: - * -- they can be selected by the reader using the Protocol and Parameters Selection (PPS) procedure - * -- the first offered protocol and default values are used when no PPS is started - * - * PPS is done with Fd and Dd (see ISO/IEC 7816-3 section 9) the reader can propose any F and D - * values between from Fd to Fi, and from Dd to Di (Fi and Di are indicated in TA1) the in PPS - * agreed values F and D are called Fn and Dn and are applied after a successful exchange, - * corresponding to PPS1_Response bit 5 - * - * The F and D values must be provided to the SAM3S USART peripheral (after reset and PPS) - */ - -/*! Verify if the clock rate conversion integer F value is valid. - * \param[in] f F value to be validated - * \return if F value is valid - * \note only values in ISO/IEC 7816-3:2006(E) table 7 are valid */ -bool iso7816_3_valid_f(uint16_t f) -{ - if (0 == f) { - return false; - } - uint8_t i = 0; - for (i = 0; i < ARRAY_SIZE(iso7816_3_fi_table) && iso7816_3_fi_table[i] != f; i++); - return (i < ARRAY_SIZE(iso7816_3_fi_table) && iso7816_3_fi_table[i] == f); -} - -/*! Verify if the baud rate adjustment factor D value is valid. - * \param[in] d D value to be validated - * \return if D value is valid - * \note only values in ISO/IEC 7816-3:2006(E) table 8 are valid */ -bool iso7816_3_valid_d(uint8_t d) -{ - if (0 == d) { - return false; - } - uint8_t i = 0; - for (i = 0; i < ARRAY_SIZE(iso7816_3_di_table) && iso7816_3_di_table[i] != d; i++); - return (i < ARRAY_SIZE(iso7816_3_di_table) && iso7816_3_di_table[i] == d); -} - -/* The ETU is not only used to define the baud rate, but also the Waiting Time (WT) (see ISO/IEC - * 7816-3 section 8.1) - * - * when exceeding WT without card response, the reader flags the card as unresponsive, and resets it - * this can be used by the card to indicate errors or unsupported operations if the card requires - * more time to respond, it shall send a procedure byte to restart WT WT is calculated as follows - * (for T=0, see ISO/IEC 7816-3 section 10.2): WT = WI x 960 x (Fi / f(max)) where - * - WI is encoded in TC2 in the ATR (10 if absent) - * - WI does not depend on D/Di (used for the ETU) - * - after reset WT is 9600 ETU - * - WI (e.g. the new WT) is applied when T=0 is used (after 6.3.1), even if Fi is not Fn (this WT - * extension is important to know for the reader so to have the right timeout) - */ - -/*! Calculate Waiting Time (WT) in units of ETU. - * \param[in] wi Waiting Integer - * \param[in] fi clock rate conversion integer Fi value - * \param[in] di baud rate adjustment factor Di value - * \param[in] f clock rate conversion integer F value - * \param[in] d baud rate adjustment factor D value - * \return Waiting Time WT, in ETU, or < 0 on error (see code for return codes) - * \note this should happen after reset and T=0 protocol select (through PPS or implicit) - * ISO/IEC 7816-3:2006(E) section 8.1 and 10.2 */ -int32_t iso7816_3_calculate_wt(uint8_t wi, uint16_t fi, uint8_t di, uint16_t f, uint8_t d) -{ - /* sanity checks */ - if (0 == wi) - return -1; - - if (!iso7816_3_valid_f(fi)) - return -2; - - if (!iso7816_3_valid_d(di)) - return -3; - - if (!iso7816_3_valid_f(f)) - return -4; - - if (!iso7816_3_valid_d(d)) - return -5; - - if (f > fi) - return -6; - - if (d > di) - return -7; - - /* see 7816-3 Section 10.2 */ - return wi * 960UL * (fi/f) * (di/d); // calculate timeout value in ETU -} -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I80dab4401d13306d573a6a35ce8729d2acc141e4 Gerrit-Change-Number: 23636 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 Apr 6 00:40:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:40:18 +0000 Subject: Change in simtrace2[master]: cardem: ignore set ATR In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23623 ) Change subject: cardem: ignore set ATR ...................................................................... Abandoned PPS with baud rate chage has been confirmed working with new USART timer -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibf7c6b83d2cf68172c7aa25116d838e24a95d5fe Gerrit-Change-Number: 23623 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 00:41:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 00:41:56 +0000 Subject: Change in simtrace2[master]: cardemu: different init for simtrace board which uses uart timers In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23617 ) Change subject: cardemu: different init for simtrace board which uses uart timers ...................................................................... Abandoned not needed -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I464f0ce1ec5e60be5f9377186b7d13a5e6dc637e Gerrit-Change-Number: 23617 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Apr 6 01:33:37 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 06 Apr 2021 01:33:37 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/i586 In-Reply-To: References: Message-ID: <606bba764e467_38382ac31c6845fc7119c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_9.0/i586 Package network:osmocom:nightly/simtrace2 failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 100s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 101s] Memory region Used Size Region Size %age Used [ 101s] rom: 16400 B 16 KB 100.10% [ 101s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 101s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 101s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 101s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 101s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 101s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 101s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 101s] collect2: error: ld returned 1 exit status [ 101s] % [ 101s] Makefile:238: recipe for target 'flash' failed [ 101s] make[2]: *** [flash] Error 1 [ 101s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 101s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 101s] make[1]: *** [fw-qmod-dfu] Error 2 [ 101s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 101s] dh_auto_build: make -j1 returned exit code 2 [ 101s] debian/rules:16: recipe for target 'build' failed [ 101s] make: *** [build] Error 2 [ 101s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 101s] ### VM INTERACTION START ### [ 104s] [ 94.886149] sysrq: Power Off [ 104s] [ 94.893591] reboot: Power down [ 104s] ### VM INTERACTION END ### [ 104s] [ 104s] lamb52 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Tue Apr 6 01:33:31 UTC 2021. [ 104s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Apr 6 01:33:54 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 06 Apr 2021 01:33:54 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <606bba8fa3b44_38382ac31c6845fc7120ba@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_9.0/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 108s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 108s] Memory region Used Size Region Size %age Used [ 108s] rom: 16400 B 16 KB 100.10% [ 108s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 108s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 109s] /usr/lib/gcc/arm-none-eabi/5.4.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/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 109s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 109s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 109s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 109s] collect2: error: ld returned 1 exit status [ 109s] % [ 109s] Makefile:238: recipe for target 'flash' failed [ 109s] make[2]: *** [flash] Error 1 [ 109s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 109s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 109s] make[1]: *** [fw-qmod-dfu] Error 2 [ 109s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 109s] dh_auto_build: make -j1 returned exit code 2 [ 109s] debian/rules:16: recipe for target 'build' failed [ 109s] make: *** [build] Error 2 [ 109s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 109s] ### VM INTERACTION START ### [ 112s] [ 96.425958] sysrq: Power Off [ 112s] [ 96.433081] reboot: Power down [ 112s] ### VM INTERACTION END ### [ 112s] [ 112s] cloud137 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Tue Apr 6 01:33:48 UTC 2021. [ 112s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Apr 6 01:36:27 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 06 Apr 2021 01:36:27 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <606bbb266dfe5_38382ac31c6845fc71217b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 110s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 110s] Memory region Used Size Region Size %age Used [ 110s] rom: 16400 B 16 KB 100.10% [ 110s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 110s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 110s] /usr/lib/gcc/arm-none-eabi/6.3.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/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 110s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 110s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 110s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 110s] collect2: error: ld returned 1 exit status [ 110s] % [ 110s] Makefile:238: recipe for target 'flash' failed [ 110s] make[2]: *** [flash] Error 1 [ 110s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 110s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 110s] make[1]: *** [fw-qmod-dfu] Error 2 [ 110s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 110s] dh_auto_build: make -j1 returned exit code 2 [ 110s] debian/rules:16: recipe for target 'build' failed [ 110s] make: *** [build] Error 2 [ 110s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 111s] ### VM INTERACTION START ### [ 114s] [ 105.138785] sysrq: Power Off [ 114s] [ 105.141747] reboot: Power down [ 114s] ### VM INTERACTION END ### [ 114s] [ 114s] old-atreju2 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Tue Apr 6 01:36:18 UTC 2021. [ 114s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Apr 6 01:36:27 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 06 Apr 2021 01:36:27 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <606bbb26d353f_38382ac31c6845fc71226a@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: [ 110s] [COMPILING libboard/qmod/source/board_qmod.c] [ 110s] [COMPILING libboard/qmod/source/card_pres.c] [ 110s] [COMPILING libboard/qmod/source/i2c.c] [ 110s] [COMPILING libboard/qmod/source/wwan_led.c] [ 111s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 111s] [COMPILING apps/dfu/main.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 111s] Memory region Used Size Region Size %age Used [ 111s] rom: 16628 B 16 KB 101.49% [ 111s] ram: 11680 B 48 KB 23.76/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 111s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 244 bytes [ 111s] collect2: error: ld returned 1 exit status [ 111s] % [ 111s] make[2]: *** [Makefile:238: flash] Error 1 [ 111s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 111s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 111s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 111s] dh_auto_build: error: make -j1 returned exit code 2 [ 111s] make: *** [debian/rules:16: build] Error 25 [ 111s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 111s] ### VM INTERACTION START ### [ 114s] [ 104.246052] sysrq: Power Off [ 114s] [ 104.250542] reboot: Power down [ 114s] ### VM INTERACTION END ### [ 114s] [ 114s] sheep86 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Tue Apr 6 01:36:19 UTC 2021. [ 114s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Apr 6 01:37:52 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 06 Apr 2021 01:37:52 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <606bbb80edc12_38382ac31c6845fc712455@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 apps/dfu/main.c] [ 156s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 156s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 156s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 156s] Memory region Used Size Region Size %age Used [ 156s] rom: 16628 B 16 KB 101.49% [ 156s] ram: 11688 B 48 KB 23.78/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 244 bytes [ 156s] collect2: error: ld returned 1 exit status [ 156s] % [ 156s] make[2]: *** [Makefile:238: 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.075536] sysrq: Power Off [ 159s] [ 144.079772] reboot: Power down [ 159s] ### VM INTERACTION END ### [ 159s] [ 159s] cloud117 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Tue Apr 6 01:37:42 UTC 2021. [ 159s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Apr 6 01:37:52 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 06 Apr 2021 01:37:52 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <606bbb81cde58_38382ac31c6845fc71259d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_9.0/aarch64 Package network:osmocom:nightly/simtrace2 failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 145s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 146s] Memory region Used Size Region Size %age Used [ 146s] rom: 16400 B 16 KB 100.10% [ 146s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 146s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 146s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 146s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 146s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 146s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 146s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 146s] collect2: error: ld returned 1 exit status [ 146s] % [ 146s] Makefile:238: recipe for target 'flash' failed [ 146s] make[2]: *** [flash] Error 1 [ 146s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 146s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 146s] make[1]: *** [fw-qmod-dfu] Error 2 [ 146s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 146s] dh_auto_build: make -j1 returned exit code 2 [ 146s] debian/rules:16: recipe for target 'build' failed [ 146s] make: *** [build] Error 2 [ 146s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 146s] ### VM INTERACTION START ### [ 149s] [ 138.003931] sysrq: Power Off [ 149s] [ 138.041713] reboot: Power down [ 149s] ### VM INTERACTION END ### [ 149s] [ 149s] obs-arm-8 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Tue Apr 6 01:37:49 UTC 2021. [ 149s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Apr 6 01:50:54 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 06 Apr 2021 01:50:54 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <606bbe8f569a2_38382ac31c6845fc71752b@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: [ 493s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 494s] Memory region Used Size Region Size %age Used [ 494s] rom: 16400 B 16 KB 100.10% [ 494s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 494s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 494s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 494s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 494s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 494s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 494s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 494s] collect2: error: ld returned 1 exit status [ 494s] % [ 494s] Makefile:238: recipe for target 'flash' failed [ 494s] make[2]: *** [flash] Error 1 [ 494s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 494s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 494s] make[1]: *** [fw-qmod-dfu] Error 2 [ 494s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 494s] dh_auto_build: make -j1 returned exit code 2 [ 494s] debian/rules:16: recipe for target 'build' failed [ 494s] make: *** [build] Error 2 [ 494s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 494s] ### VM INTERACTION START ### [ 498s] [ 425.943267] sysrq: SysRq : Power Off [ 498s] [ 426.132954] reboot: Power down [ 498s] ### VM INTERACTION END ### [ 498s] [ 498s] armbuild21 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Tue Apr 6 01:50:53 UTC 2021. [ 498s] -- 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 Apr 6 03:01:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 03:01:49 +0000 Subject: Change in osmo-bsc[master]: [hopping] vty: ensure no duplicate hopping ARFCN entries References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23645 ) Change subject: [hopping] vty: ensure no duplicate hopping ARFCN entries ...................................................................... [hopping] vty: ensure no duplicate hopping ARFCN entries Change-Id: Ie27c859e3f16ada08a5cdc8ab4ac6e20a885a378 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/45/23645/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 91eaee0..6a6411f 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -5597,6 +5597,11 @@ return CMD_WARNING; } + if (bitvec_get_bit_pos(&ts->hopping.arfcns, arfcn) == ONE) { + vty_out(vty, "%% ARFCN %" PRIu16 " is already set%s", arfcn, VTY_NEWLINE); + return CMD_WARNING; + } + bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, 1); return CMD_SUCCESS; @@ -5618,6 +5623,11 @@ return CMD_WARNING; } + if (bitvec_get_bit_pos(&ts->hopping.arfcns, arfcn) != ONE) { + vty_out(vty, "%% ARFCN %" PRIu16 " is not set%s", arfcn, VTY_NEWLINE); + return CMD_WARNING; + } + bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, 0); return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie27c859e3f16ada08a5cdc8ab4ac6e20a885a378 Gerrit-Change-Number: 23645 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 Apr 6 03:01:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 03:01:49 +0000 Subject: Change in osmo-bsc[master]: [hopping] generate_cell_chan_list(): make some pointers const References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23646 ) Change subject: [hopping] generate_cell_chan_list(): make some pointers const ...................................................................... [hopping] generate_cell_chan_list(): make some pointers const Change-Id: Ied4ee60224d71567ec613942ba1c03088e9b02f3 --- M src/osmo-bsc/system_information.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/46/23646/1 diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index 5357d20..e2ac04d 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -577,8 +577,8 @@ /* generate a cell channel list as per Section 10.5.2.1b of 04.08 */ int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts) { - struct gsm_bts_trx *trx; struct bitvec *bv = &bts->si_common.cell_alloc; + const struct gsm_bts_trx *trx; /* Zero-initialize the bit-vector */ memset(bv->data, 0, bv->data_len); @@ -589,7 +589,7 @@ /* Always add the TRX's ARFCN */ bitvec_set_bit_pos(bv, trx->arfcn, 1); for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { - struct gsm_bts_trx_ts *ts = &trx->ts[i]; + const struct gsm_bts_trx_ts *ts = &trx->ts[i]; /* Add any ARFCNs present in hopping channels */ for (j = 0; j < 1024; j++) { if (bitvec_get_bit_pos(&ts->hopping.arfcns, j)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ied4ee60224d71567ec613942ba1c03088e9b02f3 Gerrit-Change-Number: 23646 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 Apr 6 03:01:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 03:01:49 +0000 Subject: Change in osmo-bsc[master]: [hopping] gsm48_send_rr_ass_cmd(): use Cell Channel Description from SI1 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23647 ) Change subject: [hopping] gsm48_send_rr_ass_cmd(): use Cell Channel Description from SI1 ...................................................................... [hopping] gsm48_send_rr_ass_cmd(): use Cell Channel Description from SI1 Calling generate_cell_chan_list() on each Assignment Command is quite expensive, because this function basically re-constructs the Cell Allocation (using bitvec API) and the Frequency List from scratch. This IE can be borrowed from pre-calculated SI1 message, so let's do this. Change-Id: I9c8c5ae9059ff096765412b3f3c7181a94163afc --- M src/osmo-bsc/gsm_04_08_rr.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/47/23647/1 diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index a448126..4a47c66 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -592,9 +592,11 @@ /* Cell Channel Description (freq. hopping), TV (see 3GPP TS 44.018, 10.5.2.1b) */ if (lchan->ts->hopping.enabled) { - uint8_t *chan_desc = msgb_put(msg, 1 + 16); /* tag + fixed length */ - generate_cell_chan_list(chan_desc + 1, dest_lchan->ts->trx->bts); - chan_desc[0] = GSM48_IE_CELL_CH_DESC; + const struct gsm48_system_information_type_1 *si1 = \ + GSM_BTS_SI(lchan->ts->trx->bts, 1); + msgb_tv_fixed_put(msg, GSM48_IE_CELL_CH_DESC, + sizeof(si1->cell_channel_description), + si1->cell_channel_description); } msgb_tv_put(msg, GSM48_IE_CHANMODE_1, lchan->tch_mode); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9c8c5ae9059ff096765412b3f3c7181a94163afc Gerrit-Change-Number: 23647 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 Apr 6 03:01:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 03:01:50 +0000 Subject: Change in osmo-bsc[master]: [hopping] generate_ma_for_ts() returns no meaningful value References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23648 ) Change subject: [hopping] generate_ma_for_ts() returns no meaningful value ...................................................................... [hopping] generate_ma_for_ts() returns no meaningful value Change-Id: Ic3ba3323459bba1336adb1f902cb2371edea1f71 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 2 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/23648/1 diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index ec07410..6c7c275 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -256,7 +256,7 @@ } /* Produce a MA as specified in 10.5.2.21 */ -static int generate_ma_for_ts(struct gsm_bts_trx_ts *ts) +static void generate_ma_for_ts(struct gsm_bts_trx_ts *ts) { /* we have three bitvecs: the per-timeslot ARFCNs, the cell chan ARFCNs * and the MA */ @@ -271,7 +271,7 @@ memset(ma->data, 0, ma->data_len); if (!ts->hopping.enabled) - return 0; + return; /* count the number of ARFCNs in the cell channel allocation */ num_cell_arfcns = 0; @@ -303,8 +303,6 @@ else bitvec_set_bit_pos(ma, ma->cur_bit, 0); } - - return 0; } static void bootstrap_rsl(struct gsm_bts_trx *trx) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic3ba3323459bba1336adb1f902cb2371edea1f71 Gerrit-Change-Number: 23648 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 Apr 6 03:01:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 03:01:51 +0000 Subject: Change in osmo-bsc[master]: [hopping] Rework generation of Cell/Mobile Allocation References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23649 ) Change subject: [hopping] Rework generation of Cell/Mobile Allocation ...................................................................... [hopping] Rework generation of Cell/Mobile Allocation Calculating the Cell Allocation (basically a bit-vector of all the frequencies allocated to a cell) on the OML link establishment has several downsides and potential problems: * Theoretically, more than 64 ARFCNs can be allocated for a cell via the VTY interface. The problem here is that the Mobile Allocation IE cannot contain more than 64 channels. * The BSC's operator will neither be warned by the interactive VTY shell during configuration, nor during the startup. * The BSC will accept such a configuration, but then will be unable to encode the Mobile Allocation IEs at run-time. This change aims to improve the situation by separating part of the logic from generate_cell_chan_list(), and invoking this part directly from the VTY commands. This way it will become impossible to configure more than 64 ARFCNs, neither via the config file, nor interactively from the VTY. Change-Id: I98211fb0684a973239f5760e1de52a24a1f4c33c --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/system_information.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/system_information.c 5 files changed, 92 insertions(+), 35 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/49/23649/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index c8cf8b3..c03c75e 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -451,6 +451,7 @@ struct bitvec si5_neigh_list; struct osmo_earfcn_si2q si2quater_neigh_list; size_t uarfcn_length; /* index for uarfcn and scramble lists */ + size_t cell_chan_num; /* number of channels in Cell Allocation */ struct { /* bitmask large enough for all possible ARFCN's */ uint8_t neigh_list[1024/8]; diff --git a/include/osmocom/bsc/system_information.h b/include/osmocom/bsc/system_information.h index 35892d9..e86a349 100644 --- a/include/osmocom/bsc/system_information.h +++ b/include/osmocom/bsc/system_information.h @@ -7,6 +7,7 @@ struct gsm_bts; +int generate_cell_chan_alloc(struct gsm_bts *bts); int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts); int gsm_generate_si(struct gsm_bts *bts, enum osmo_sysinfo_type type); size_t si2q_earfcn_count(const struct osmo_earfcn_si2q *e); diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 6a6411f..5eb2393 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -5334,6 +5334,12 @@ trx->arfcn = arfcn; + /* Update Cell Allocation (list of all the frequencies allocated to a cell) */ + if (generate_cell_chan_alloc(trx->bts) != 0) { + vty_out(vty, "%% Failed to re-generate Cell Allocation%s", VTY_NEWLINE); + return CMD_WARNING; + } + /* FIXME: patch ARFCN into SYSTEM INFORMATION */ /* FIXME: use OML layer to update the ARFCN */ /* FIXME: use RSL layer to update SYSTEM INFORMATION */ @@ -5604,6 +5610,13 @@ bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, 1); + /* Update Cell Allocation (list of all the frequencies allocated to a cell) */ + if (generate_cell_chan_alloc(ts->trx->bts) != 0) { + vty_out(vty, "%% Failed to re-generate Cell Allocation%s", VTY_NEWLINE); + bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, ZERO); /* roll-back */ + return CMD_WARNING; + } + return CMD_SUCCESS; } @@ -5630,6 +5643,13 @@ bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, 0); + /* Update Cell Allocation (list of all the frequencies allocated to a cell) */ + if (generate_cell_chan_alloc(ts->trx->bts) != 0) { + vty_out(vty, "%% Failed to re-generate Cell Allocation%s", VTY_NEWLINE); + /* It's unlikely to happen on removal, so we don't roll-back */ + return CMD_WARNING; + } + return CMD_SUCCESS; } @@ -5644,6 +5664,13 @@ bitvec_zero(&ts->hopping.arfcns); + /* Update Cell Allocation (list of all the frequencies allocated to a cell) */ + if (generate_cell_chan_alloc(ts->trx->bts) != 0) { + vty_out(vty, "%% Failed to re-generate Cell Allocation%s", VTY_NEWLINE); + /* It's unlikely to happen on removal, so we don't roll-back */ + return CMD_WARNING; + } + return CMD_SUCCESS; } diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 6c7c275..2b4224f 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -260,10 +260,10 @@ { /* we have three bitvecs: the per-timeslot ARFCNs, the cell chan ARFCNs * and the MA */ + const size_t num_cell_arfcns = ts->trx->bts->si_common.cell_chan_num; const struct bitvec *cell_chan = &ts->trx->bts->si_common.cell_alloc; const struct bitvec *ts_arfcn = &ts->hopping.arfcns; struct bitvec *ma = &ts->hopping.ma; - unsigned int num_cell_arfcns; int i; /* re-set the MA to all-zero */ @@ -273,13 +273,6 @@ if (!ts->hopping.enabled) return; - /* count the number of ARFCNs in the cell channel allocation */ - num_cell_arfcns = 0; - for (i = 0; i < 1024; i++) { - if (bitvec_get_bit_pos(cell_chan, i)) - num_cell_arfcns++; - } - /* pad it to octet-aligned number of bits */ ts->hopping.ma_len = OSMO_BYTES_FOR_BITS(num_cell_arfcns); ma->cur_bit = (ts->hopping.ma_len * 8) - 1; @@ -305,6 +298,20 @@ } } +static void generate_ma_for_bts(struct gsm_bts *bts) +{ + struct gsm_bts_trx *trx; + unsigned int tn; + + OSMO_ASSERT(bts->si_common.cell_chan_num > 0); + OSMO_ASSERT(bts->si_common.cell_chan_num <= 64); + + llist_for_each_entry(trx, &bts->trx_list, list) { + for (tn = 0; tn < ARRAY_SIZE(trx->ts); tn++) + generate_ma_for_ts(&trx->ts[tn]); + } +} + static void bootstrap_rsl(struct gsm_bts_trx *trx) { unsigned int i; @@ -388,19 +395,9 @@ switch (signal) { case S_L_INP_TEI_UP: if (isd->link_type == E1INP_SIGN_OML) { - /* TODO: this is required for the Nokia BTS, hopping is configured - during OML, other MA is not set. */ - struct gsm_bts_trx *cur_trx; - uint8_t ca[20]; - /* has to be called before generate_ma_for_ts to - set bts->si_common.cell_alloc */ - generate_cell_chan_list(ca, trx->bts); - - llist_for_each_entry(cur_trx, &trx->bts->trx_list, list) { - int i; - for (i = 0; i < ARRAY_SIZE(cur_trx->ts); i++) - generate_ma_for_ts(&cur_trx->ts[i]); - } + /* Generate Mobile Allocation bit-masks for all timeslots. + * This needs to be done here, because it's used for TS configuration. */ + generate_ma_for_bts(trx->bts); } if (isd->link_type == E1INP_SIGN_RSL) bootstrap_rsl(trx); diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index e2ac04d..0dbf53c 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -574,31 +574,62 @@ return -EINVAL; } -/* generate a cell channel list as per Section 10.5.2.1b of 04.08 */ -int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts) +/* (Re)generate Cell Allocation (basically a bit-vector of all cell channels) */ +int generate_cell_chan_alloc(struct gsm_bts *bts) { - struct bitvec *bv = &bts->si_common.cell_alloc; const struct gsm_bts_trx *trx; + unsigned int chan, chan_num; + unsigned int tn; - /* Zero-initialize the bit-vector */ - memset(bv->data, 0, bv->data_len); + /* Temporary Cell Allocation bit-vector */ + uint8_t ca[1024 / 8] = { 0 }; + struct bitvec bv = { + .data_len = sizeof(ca), + .data = &ca[0], + }; - /* first we generate a bitvec of all TRX ARFCN's in our BTS */ + /* Calculate a bit-mask of all assigned ARFCNs */ llist_for_each_entry(trx, &bts->trx_list, list) { - unsigned int i, j; /* Always add the TRX's ARFCN */ - bitvec_set_bit_pos(bv, trx->arfcn, 1); - for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { - const struct gsm_bts_trx_ts *ts = &trx->ts[i]; + bitvec_set_bit_pos(&bv, trx->arfcn, 1); + for (tn = 0; tn < ARRAY_SIZE(trx->ts); tn++) { + const struct gsm_bts_trx_ts *ts = &trx->ts[tn]; /* Add any ARFCNs present in hopping channels */ - for (j = 0; j < 1024; j++) { - if (bitvec_get_bit_pos(&ts->hopping.arfcns, j)) - bitvec_set_bit_pos(bv, j, 1); + for (chan = 0; chan < sizeof(ca) * 8; chan++) { + if (bitvec_get_bit_pos(&ts->hopping.arfcns, chan) == ONE) + bitvec_set_bit_pos(&bv, chan, ONE); } } } - /* then we generate a GSM 04.08 frequency list from the bitvec */ + /* Calculate the overall number of assigned ARFCNs */ + for (chan_num = 0, chan = 0; chan < sizeof(ca) * 8; chan++) { + if (bitvec_get_bit_pos(&bv, chan) == ONE) + chan_num++; + } + + /* The Mobile Allocation IE may contain up to 64 bits, so here we + * cannot allow more than 64 channels in Cell Allocation. */ + if (chan_num > 64) { + LOGP(DRR, LOGL_ERROR, "Failed to (re)generate Cell Allocation: " + "number of channels (%u) exceeds the maximum number of " + "ARFCNs in Mobile Allocation (64)\n", chan_num); + return -E2BIG; + } + + /* Commit the new Channel Allocation */ + memcpy(&bts->si_common.data.cell_alloc[0], ca, sizeof(ca)); + bts->si_common.cell_chan_num = chan_num; + + return 0; +} + +/* generate a cell channel list as per Section 10.5.2.1b of 04.08 */ +int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts) +{ + const struct bitvec *bv = &bts->si_common.cell_alloc; + + /* generate a Frequency List from the Cell Allocation */ return bitvec2freq_list(chan_list, bv, bts, false, false); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I98211fb0684a973239f5760e1de52a24a1f4c33c Gerrit-Change-Number: 23649 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 Apr 6 03:01:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 03:01:52 +0000 Subject: Change in osmo-bsc[master]: [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23650 ) Change subject: [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again ...................................................................... [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again It's already being called in inp_sig_cb(), once the A-bis/OML link is established. There is no need to do this on the A-bis/RSL link establishment again. Change-Id: I435018f439181cdd046ca99fe7e01ac85e226cce --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/50/23650/1 diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 2b4224f..5426b1e 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -357,7 +357,6 @@ for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { struct gsm_bts_trx_ts *ts = &trx->ts[i]; - generate_ma_for_ts(ts); OSMO_ASSERT(ts->fi); osmo_fsm_inst_dispatch(ts->fi, TS_EV_RSL_READY, NULL); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I435018f439181cdd046ca99fe7e01ac85e226cce Gerrit-Change-Number: 23650 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 Apr 6 03:04:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 03:04:51 +0000 Subject: Change in osmo-bsc[master]: generate_ma_for_ts: check num_cell_arfcns to guarantee no out-of-boun... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/20290 ) Change subject: generate_ma_for_ts: check num_cell_arfcns to guarantee no out-of-bounds access ...................................................................... Patch Set 1: Code-Review-2 So, I ended up spending more time on it and taking a more radical approach: https://gerrit.osmocom.org/c/osmo-bsc/+/23645 [hopping] vty: ensure no duplicate hopping ARFCN entries [NEW] https://gerrit.osmocom.org/c/osmo-bsc/+/23646 [hopping] generate_cell_chan_list(): make some pointers const [NEW] https://gerrit.osmocom.org/c/osmo-bsc/+/23647 [hopping] gsm48_send_rr_ass_cmd(): use Cell Channel Description from SI1 [NEW] https://gerrit.osmocom.org/c/osmo-bsc/+/23648 [hopping] generate_ma_for_ts() returns no meaningful value [NEW] https://gerrit.osmocom.org/c/osmo-bsc/+/23649 [hopping] Rework generation of Cell/Mobile Allocation [NEW] https://gerrit.osmocom.org/c/osmo-bsc/+/23650 [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again [NEW] TL;DR, the idea is to mitigate the possibility of having more than 64 ARFCNs in the Channel Allocation during the configuration, rather than surprising the user at run-time. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/20290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2ee8e8b4ba5e16b955685ba42bd58dc2ea08720f Gerrit-Change-Number: 20290 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Assignee: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 03:04:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 06:09:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 06:09:26 +0000 Subject: Change in ...osmo-python-tests[master]: Use proper python3 shebang in all modules In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/python/osmo-python-tests/+/23626 ) Change subject: Use proper python3 shebang in all modules ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/python/osmo-python-tests/+/23626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-Change-Id: I1295be505f4ec30e809297a474b689e6c0cdf505 Gerrit-Change-Number: 23626 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 06 Apr 2021 06:09:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 06:39:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 06:39:40 +0000 Subject: Change in osmo-dev[master]: net/templates/osmo-sgsn.cfg: update format In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/23418 ) Change subject: net/templates/osmo-sgsn.cfg: update format ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/23418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ie0a6d4a55f725ebcc6a55b6bd71c52ad72accbd2 Gerrit-Change-Number: 23418 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Assignee: neels Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Tue, 06 Apr 2021 06:39: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 Apr 6 06:39:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 06:39:44 +0000 Subject: Change in osmo-dev[master]: net/templates/osmo-sgsn.cfg: update format In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/23418 ) Change subject: net/templates/osmo-sgsn.cfg: update format ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/23418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ie0a6d4a55f725ebcc6a55b6bd71c52ad72accbd2 Gerrit-Change-Number: 23418 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Assignee: neels Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Tue, 06 Apr 2021 06: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 Tue Apr 6 06:39:50 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 06:39:50 +0000 Subject: Change in osmo-dev[master]: net/templates/osmo-gbproxy.cfg: update format In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/23419 ) Change subject: net/templates/osmo-gbproxy.cfg: update format ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/23419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ia7008d6d2d26030aa4c35439f1525a53957443a1 Gerrit-Change-Number: 23419 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Assignee: neels Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Tue, 06 Apr 2021 06:39: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 Apr 6 06:39:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 06:39:52 +0000 Subject: Change in osmo-dev[master]: net/templates/osmo-sgsn.cfg: update format In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/23418 ) Change subject: net/templates/osmo-sgsn.cfg: update format ...................................................................... net/templates/osmo-sgsn.cfg: update format Migrate to the new gprs_ns2_vty configuration introduced in osmo-sgsn Ie9306ab4d4738c2c57a69987086e22771b30657e. Change-Id: Ie0a6d4a55f725ebcc6a55b6bd71c52ad72accbd2 --- M net/templates/osmo-sgsn.cfg 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, but someone else must approve osmith: Looks good to me, approved; Verified diff --git a/net/templates/osmo-sgsn.cfg b/net/templates/osmo-sgsn.cfg index 542eb95..977f522 100644 --- a/net/templates/osmo-sgsn.cfg +++ b/net/templates/osmo-sgsn.cfg @@ -6,9 +6,9 @@ auth-policy remote gsup remote-ip ${HLR_IP} ns - encapsulation udp local-ip ${SGSN_IP} - encapsulation udp local-port ${SGSN_GB_PORT} - encapsulation framerelay-gre enabled 0 + bind udp local + listen ${SGSN_IP} ${SGSN_GB_PORT} + accept-ipaccess ${foreach(LOG_OUTPUT)} log ${LOG_OUTPUTn_TYPE} -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/23418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ie0a6d4a55f725ebcc6a55b6bd71c52ad72accbd2 Gerrit-Change-Number: 23418 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Assignee: neels Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith 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 Apr 6 06:39:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 06:39:53 +0000 Subject: Change in osmo-dev[master]: net/templates/osmo-gbproxy.cfg: update format In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/23419 ) Change subject: net/templates/osmo-gbproxy.cfg: update format ...................................................................... net/templates/osmo-gbproxy.cfg: update format Update to changes in osmo-gbproxy * Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e * I2a18dcf035f1fc7304a0c7c7c83b5e8e15429d2b Change-Id: Ia7008d6d2d26030aa4c35439f1525a53957443a1 --- M net/templates/osmo-gbproxy.cfg 1 file changed, 6 insertions(+), 10 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, but someone else must approve osmith: Looks good to me, approved; Verified diff --git a/net/templates/osmo-gbproxy.cfg b/net/templates/osmo-gbproxy.cfg index 60e1ece..60f66fe 100644 --- a/net/templates/osmo-gbproxy.cfg +++ b/net/templates/osmo-gbproxy.cfg @@ -1,12 +1,12 @@ ${include(common_template_warning)} gbproxy - sgsn nsei 101 +sgsn nsei 101 ns - nse 101 nsvci 101 - nse 101 remote-role sgsn - nse 101 encapsulation udp - nse 101 remote-ip ${SGSN_IP} - nse 101 remote-port ${SGSN_GB_PORT} + bind udp local + listen ${GBPROXY_IP} ${GBPROXY_GB_PORT} + accept-ipaccess + nse 101 + nsvc ipa local ${SGSN_IP} ${SGSN_GB_PORT} nsvci 101 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -14,10 +14,6 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation framerelay-gre enabled 0 - encapsulation framerelay-gre local-ip ${GBPROXY_IP} - encapsulation udp local-ip ${GBPROXY_IP} - encapsulation udp local-port ${GBPROXY_GB_PORT} ${foreach(LOG_OUTPUT)} log ${LOG_OUTPUTn_TYPE} -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/23419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ia7008d6d2d26030aa4c35439f1525a53957443a1 Gerrit-Change-Number: 23419 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Assignee: neels Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith 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 Apr 6 09:01:34 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 6 Apr 2021 09:01:34 +0000 Subject: Change in osmo-gsm-manuals[master]: common/chapters: extend gb/ns2 chapters In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 ) Change subject: common/chapters: extend gb/ns2 chapters ...................................................................... Patch Set 3: (10 comments) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/3/common/chapters/gb-ns2-configuration.adoc File common/chapters/gb-ns2-configuration.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/3/common/chapters/gb-ns2-configuration.adoc at 18 PS3, Line 18: hdlcnet1 > Change all hdlcnetx device names to hdlcx which is the default device name (even if you operate your [?] Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/3/common/chapters/gb-ns2-configuration.adoc at 29 PS3, Line 29: sidea1 > s/sidex/sitex/ ? [?] Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/3/common/chapters/gb-ns2-configuration.adoc at 70 PS3, Line 70: In difference the dynamic configuration allows the SGSN to have only a reduced configuration. > In contrast? Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/3/common/chapters/gb-ns2-configuration.adoc at 141 PS3, Line 141: <2> bind to 10.100.0.1 > :23000 Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/3/common/chapters/gb-ns2-configuration.adoc at 142 PS3, Line 142: <3> NSE 1001 with 2 NSVC > "add NSE 1001... [?] Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/3/common/chapters/gb-ns2-configuration.adoc at 145 PS3, Line 145: BSS > as BSS Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/3/common/chapters/gb-ns2-configuration.adoc at 147 PS3, Line 147: do > remove do Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/3/common/chapters/gb-ns2-configuration.adoc at 168 PS3, Line 168: <2> bind to 10.100.0.1 > :23000 Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/2/common/chapters/gb-ns2.adoc File common/chapters/gb-ns2.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/2/common/chapters/gb-ns2.adoc at 54 PS2, Line 54: The Osmocom NS/FR support currently requires the individual Frame Relay > ACK Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/2/common/chapters/gb-ns2.adoc at 222 PS2, Line 222: FIXME: nsvc 1234 block > it's an WIP ? Done -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 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: I902b850528cbc04bd469590babd84cccf64300e8 Gerrit-Change-Number: 23393 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 09:01:34 +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 Apr 6 09:02:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 6 Apr 2021 09:02:00 +0000 Subject: Change in osmo-gsm-manuals[master]: common/chapters: extend gb/ns2 chapters In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 to look at the new patch set (#4). Change subject: common/chapters: extend gb/ns2 chapters ...................................................................... common/chapters: extend gb/ns2 chapters Merge gb-variants.adoc into gb-ns2.adoc Add a general overview of the internal structure which is also used by the vty. Move the configuration into a seperate adoc to allow the PCU manual to skip the part which doesn't apply for it. Copy the timer configuration into gb.adoc to allow document newer timers. All users of the NS2 code will use the timer sub-chapter. Related: OS#5077 Change-Id: I902b850528cbc04bd469590babd84cccf64300e8 --- A common/chapters/gb-ns2-configuration-timer.adoc A common/chapters/gb-ns2-configuration.adoc A common/chapters/gb-ns2.adoc D common/chapters/gb-variants.adoc 4 files changed, 394 insertions(+), 179 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/93/23393/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 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: I902b850528cbc04bd469590babd84cccf64300e8 Gerrit-Change-Number: 23393 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 09:16:19 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 09:16:19 +0000 Subject: Change in libosmocore[master]: stat_item: make next_id argument name consistent In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23506 ) Change subject: stat_item: make next_id argument name consistent ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5dd566b08dff7174d1790f49abd2d6ac020e120e Gerrit-Change-Number: 23506 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 09:16: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 Apr 6 09:16:28 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 09:16:28 +0000 Subject: Change in libosmocore[master]: stat_item: add comment with struct overview In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23507 ) Change subject: stat_item: add comment with struct overview ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic63a5884da778938197c658c5f478c23a85a4587 Gerrit-Change-Number: 23507 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 09:16: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 Apr 6 09:17:15 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 09:17:15 +0000 Subject: Change in libosmocore[master]: stats_test: restore stat_item_get_next asserts In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23509 ) Change subject: stats_test: restore stat_item_get_next asserts ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9d4cda2487a62f52361c24058363dfa90e502c63 Gerrit-Change-Number: 23509 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 09:17:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 09:17:35 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 09:17:35 +0000 Subject: Change in libosmocore[master]: stats: log error when missing stats values (v2) In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23510 ) Change subject: stats: log error when missing stats values (v2) ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5140d967c2f1d36dadf93b03e52b9bbd42e2a3a6 Gerrit-Change-Number: 23510 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 09:17: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 Apr 6 09:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 09:32:59 +0000 Subject: Change in simtrace2[master]: make sim switch board specific In-Reply-To: References: Message-ID: Hello Jenkins Builder, tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23618 to look at the new patch set (#4). Change subject: make sim switch board specific ...................................................................... make sim switch board specific the simtrace board uses a bus switch not used on qmod and owhw to switch the SIM between physical and virtual Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e Related: OS#1704 --- M firmware/libboard/common/include/sim_switch.h R firmware/libboard/owhw/source/sim_switch.c C firmware/libboard/qmod/source/sim_switch.c A firmware/libboard/simtrace/source/sim_switch.c 4 files changed, 62 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/18/23618/4 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e Gerrit-Change-Number: 23618 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 09:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 09:32:59 +0000 Subject: Change in simtrace2[master]: card_emu: Rename fi to Fi and di to Di In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23638 to look at the new patch set (#2). Change subject: card_emu: Rename fi to Fi and di to Di ...................................................................... card_emu: Rename fi to Fi and di to Di As we will soon introduce the distinction between Fi and F, we should use uppercase letters, as lower-case 'f' is defined in ISO7816-3 as the frequency, which is different from the upper-case 'F'. Change-Id: Iaede621551520576e9b9af878fa46fbc88e59c2a --- M firmware/libcommon/source/card_emu.c 1 file changed, 14 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/38/23638/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Iaede621551520576e9b9af878fa46fbc88e59c2a Gerrit-Change-Number: 23638 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 Apr 6 09:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 09:32:59 +0000 Subject: Change in simtrace2[master]: card_emu: Clarify and differentiate F/Fi/F_index/Fi_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/simtrace2/+/23639 to look at the new patch set (#2). Change subject: card_emu: Clarify and differentiate F/Fi/F_index/Fi_index ...................................................................... card_emu: Clarify and differentiate F/Fi/F_index/Fi_index The ISO7816 spec terms are well-defined, let's not abuse them. We used to consider "Fi" as the "index into the table of F values", while the spec actually considers Fi as the initial value for F. Let's make sure we use the terms quite clearly: * Fi and Di are the initial values for F and D * F*_index and D*_index are the indexes into the ISO7816-3 Tables Furthermore, let's track Fi separately from F, as e.g. the waiting time definition only considers Fi as indicated in the ATR, despite an actually different F value might have been negotiated via PTS meanwhile. Change-Id: Ieb2425e8380a81b79df7b2bd072902994e9c3ee7 Related: OS##1704 --- M firmware/libcommon/include/simtrace_prot.h M firmware/libcommon/source/card_emu.c 2 files changed, 52 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/39/23639/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieb2425e8380a81b79df7b2bd072902994e9c3ee7 Gerrit-Change-Number: 23639 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 Apr 6 09:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 09:32:59 +0000 Subject: Change in simtrace2[master]: iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23640 to look at the new patch set (#2). Change subject: iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology ...................................................................... iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology Fi/Di are not the index into the table, but the contents of the table as resolved by Fi_index / Di_index. Let's clarify the terminology. Change-Id: If364e08e7c9a3a9707e6d54b9267c6a7c088e415 --- M firmware/libcommon/include/iso7816_fidi.h M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/iso7816_fidi.c M firmware/libcommon/source/simtrace_iso7816.c M firmware/libcommon/source/sniffer.c 5 files changed, 19 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/40/23640/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: If364e08e7c9a3a9707e6d54b9267c6a7c088e415 Gerrit-Change-Number: 23640 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 Apr 6 09:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 09:32:59 +0000 Subject: Change in simtrace2[master]: card_emu: improve reset detection conditions In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23641 to look at the new patch set (#2). Change subject: card_emu: improve reset detection conditions ...................................................................... card_emu: improve reset detection conditions * enter ISO_S_WAIT_RST when RST is asserted * enter ISO_S_WAIT_ATR only when we RST is released while in state ISO_S_WAIT_RST Change-Id: I620333aa8d45561a8028b948955a27f667b58406 --- M firmware/libcommon/source/card_emu.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/41/23641/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I620333aa8d45561a8028b948955a27f667b58406 Gerrit-Change-Number: 23641 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 Apr 6 09:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 09:32:59 +0000 Subject: Change in simtrace2[master]: card_emu: explicitly initialize PTS and TPDU states In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23642 to look at the new patch set (#2). Change subject: card_emu: explicitly initialize PTS and TPDU states ...................................................................... card_emu: explicitly initialize PTS and TPDU states Those are already initialized at various transitions of the master 7816 FSM, but let's properly initialize them at start-up, too. Change-Id: I81b2a8ef3284559164700d94717e4ccf008f53df --- M firmware/libcommon/source/card_emu.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/42/23642/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I81b2a8ef3284559164700d94717e4ccf008f53df Gerrit-Change-Number: 23642 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 Apr 6 09:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 09:32:59 +0000 Subject: Change in simtrace2[master]: card_emu: Use USART timeout for waiting time In-Reply-To: References: Message-ID: Hello Jenkins Builder, tsaitgaist, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23620 to look at the new patch set (#4). Change subject: card_emu: Use USART timeout for waiting time ...................................................................... card_emu: Use USART timeout for waiting time Instead of using the timer/counter peripheral to handle the waiting time and corresponding timeout, the USART peripheral internal timeout mechanism is used. This is particularly important for the SIMtrace board since there (contrary to other boards) the I/O signal is not wired to a TIO pin of the timer/counter block, and hence Rx/Tx data cannot reset that timer/counter. As a result of this migration, cardem is now supported not only on owhw + qmod, but also on the simtrace board. The guts of this change have been lifted out of Change-Id Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 by Kevin Redon, which was unfortunately touching various different topics at the same time and hence was split up. Some improvements are the introduction of the ENABLE_TX_TIMER_ONLY mode, which avoids the USART interrupt handler getting hammered with TXRDY between release of RST and start of the ATR. Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Related: OS#1704 --- M firmware/apps/cardem/Makefile M firmware/apps/trace/Makefile M firmware/apps/triple_play/Makefile M firmware/libcommon/include/card_emu.h M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/mode_cardemu.c M firmware/test/card_emu_tests.c 7 files changed, 141 insertions(+), 53 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/20/23620/4 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Gerrit-Change-Number: 23620 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 09:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 09:32:59 +0000 Subject: Change in simtrace2[master]: card_emu: Fix USART timer, particularly in re-start situations In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23643 to look at the new patch set (#2). Change subject: card_emu: Fix USART timer, particularly in re-start situations ...................................................................... card_emu: Fix USART timer, particularly in re-start situations The existing code started the timer once (and expired once) but didn't properly handle re-starting of the timer. Neither did it handle the 'half time expiration' case. If we want to call a function after half the WT expiring, we must of course program the hardware for half the timeout, and not the full timeout... Change-Id: Ia999d97f835c27597fcd1cf7ac78bac0ab9c98c1 Related: OS#1704 --- M firmware/libcommon/source/mode_cardemu.c 1 file changed, 40 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/43/23643/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ia999d97f835c27597fcd1cf7ac78bac0ab9c98c1 Gerrit-Change-Number: 23643 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 Apr 6 09:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 09:32:59 +0000 Subject: Change in simtrace2[master]: card_emu: Fix computation of waiting time In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/23644 to look at the new patch set (#2). Change subject: card_emu: Fix computation of waiting time ...................................................................... card_emu: Fix computation of waiting time As we store the waiting time (WT) in 'etu', we must adjust the formula from ISO 7816-3. The 'Fi' component in the formula only exists to compute clock cycles from the etu, which we don't need here. Without this patch, the waiting time would be way too large (by a factor of 372 in the default case). Change-Id: Ia21bc7303f9b38834b5b1753983ed2a99bfc7d95 Related: OS#1704 --- M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/mode_cardemu.c 2 files changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/44/23644/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ia21bc7303f9b38834b5b1753983ed2a99bfc7d95 Gerrit-Change-Number: 23644 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 Apr 6 09:37:52 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Tue, 6 Apr 2021 09:37:52 +0000 Subject: Change in pysim[master]: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23632 to look at the new patch set (#6). Change subject: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... Add option to set UE operation mode in EF_AD (Administrative Data) Use ``--opmode=OPMODE`` in cmdline mode or column ``OPMODE`` in csv mode to specify OPMODE as listed below. Details: The ``EF_AD`` field contains administrative data (AD). It consists of four bytes ``B1``, ``B2``, ``B3``, ``B4``, and optionally further bytes for future use. Previous implementation only sets the MNC field appropriately (located in `B4`) and sets all other bits/bytes to 0. However, `B1` also defines the *UE operation mode* (see below). For type approval operations, such as testing with a test uSIM, this value could be set to `0x80` rather than `0x00`(= normal operation). This may unlock some UE capabilities that are restricted in normal operation mode. Excerpt from [ETSI TS 131 102, 4.2.18](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` B1 - UE operation mode: Coding: Initial value - '00' normal operation. - '80' type approval operations. - '01' normal operation + specific facilities. - '81' type approval operations + specific facilities. - '02' maintenance (off line). - '04' cell test operation. B2 - Additional information: Coding: Reserved for future use B3 - Additional information: Coding: - B3.b1: OFM setting (Ciphering) - B3.others: Reserved for future use B4 - Length of MNC in the IMSI: Coding: - B4.b4..B4.b1: length: '0010' (= 2) or '0011' (=3) - B4.others: Reserved for future use ``` **Legend:** Byte X, bit Y: BX.bY Further reading: https://nickvsnetworking.com/usim-basics/ Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 --- M pySim-prog.py M pySim/cards.py 2 files changed, 60 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/32/23632/6 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 6 Gerrit-Owner: Robert Falkenberg 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 Apr 6 09:40:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 09:40:20 +0000 Subject: Change in libosmocore[master]: stat_item: make value ids item specific In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23508 ) Change subject: stat_item: make value ids item specific ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stat_item.c File src/stat_item.c: https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stat_item.c at 279 PS1, Line 279: LOGP(DLSTATS, LOGL_DEBUG, "osmo_stat_item_discard_all is deprecated"); > INFO? ACK https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stat_item.c at 280 PS1, Line 280: return 0; > You may want to call osmo_stats_discard_all() internally here? Yeah, would be good to keep functionality even if it's not used anywhere. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f Gerrit-Change-Number: 23508 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 09:40:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 10:00:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 10:00:28 +0000 Subject: Change in libosmocore[master]: stat_item: make value ids item specific 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/+/23508 to look at the new patch set (#2). Change subject: stat_item: make value ids item specific ...................................................................... stat_item: make value ids item specific Fix counting of values missed because of FIFO overflow in osmo_stat_item_get_next(), by assigning a new item value id effectively as item->value[n + 1].id = item->value[n].id + 1, instead of increasing a global_value_id that is shared between all items and groups. With global_value_id, the count of values missed was wrong for one item, as soon as a new value was added to another item. This partially reverts b27b352e ("stats: Use a global index for stat item values") from 2015, right after stats was added to libosmocore. It was supposed to make multiple readers (reporters) possible, which could read independently from stat_item (and later added comments explain it like that). But this remained unused, stats has implemented multiple reporters by reading all stat_items once and sending the same data to all enabled reporters. The patch caused last_value_index in struct osmo_stat_item to always remain at -1. Replace this unused last_value_index with stats_next_id, so stats can store the item-specific next_id in the struct again. It appears that stats is the only direct user of osmo_stat_item, but if there are others, they can bring their own item-specific next_id: functions in stat_item.c still accept a next_id argument. Related: OS#5088 Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f --- M include/osmocom/core/stat_item.h M src/stat_item.c M src/stats.c M tests/stats/stats_test.c 4 files changed, 44 insertions(+), 44 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/08/23508/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f Gerrit-Change-Number: 23508 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 10:00:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 10:00:28 +0000 Subject: Change in libosmocore[master]: stats_test: restore stat_item_get_next asserts 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/+/23509 to look at the new patch set (#2). Change subject: stats_test: restore stat_item_get_next asserts ...................................................................... stats_test: restore stat_item_get_next asserts This is a partial revert of b27b352e ("stats: Use a global index for stat item values"). Now that osmo_stat_item_get_next correctly returns how many values have been skipped, we can use the accurate asserts on its return value again. Fix the initial values of next_id_a,b (1 instead of 0), so we don't get a skipped value on the first read. This is needed, because b27b352e refactored osmo_stat_item_get_next to have the next id as parameter instead of the last read one, and the initial value was not adjusted in the tests. Related: OS#5088 Change-Id: I9d4cda2487a62f52361c24058363dfa90e502c63 --- M tests/stats/stats_test.c 1 file changed, 18 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/09/23509/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9d4cda2487a62f52361c24058363dfa90e502c63 Gerrit-Change-Number: 23509 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 10:00:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 10:00:28 +0000 Subject: Change in libosmocore[master]: stats: log error when missing stats values (v2) 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/+/23510 to look at the new patch set (#2). Change subject: stats: log error when missing stats values (v2) ...................................................................... stats: log error when missing stats values (v2) Related: SYS#4877 Change-Id: I5140d967c2f1d36dadf93b03e52b9bbd42e2a3a6 --- M src/stat_item.c M tests/stats/stats_test.c M tests/stats/stats_test.err 3 files changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/23510/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5140d967c2f1d36dadf93b03e52b9bbd42e2a3a6 Gerrit-Change-Number: 23510 Gerrit-PatchSet: 2 Gerrit-Owner: osmith 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 Apr 6 10:00:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 10:00:30 +0000 Subject: Change in libosmocore[master]: stats: have_value is a bool, not int References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23651 ) Change subject: stats: have_value is a bool, not int ...................................................................... stats: have_value is a bool, not int Change-Id: Id92c63f4e54ec1bf3411205be1bd268e1d184b03 --- M src/stats.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/51/23651/1 diff --git a/src/stats.c b/src/stats.c index 91cf839..411ecff 100644 --- a/src/stats.c +++ b/src/stats.c @@ -709,7 +709,7 @@ { struct osmo_stats_reporter *srep; int32_t value; - int have_value; + bool have_value; have_value = osmo_stat_item_get_next(item, &item->stats_next_id, &value) > 0; if (!have_value) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id92c63f4e54ec1bf3411205be1bd268e1d184b03 Gerrit-Change-Number: 23651 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 10:00:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 10:00:33 +0000 Subject: Change in libosmocore[master]: stats: log error when missing stats values (v2) In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23510 ) Change subject: stats: log error when missing stats values (v2) ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23510/1/tests/stats/stats_test.c File tests/stats/stats_test.c: https://gerrit.osmocom.org/c/libosmocore/+/23510/1/tests/stats/stats_test.c at 198 PS1, Line 198: fprintf(stderr, "Skipping %i values\n", 93 - 65); > we usually use %d Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5140d967c2f1d36dadf93b03e52b9bbd42e2a3a6 Gerrit-Change-Number: 23510 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 10:00:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 10:00:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 10:00:39 +0000 Subject: Change in libosmocore[master]: stats_test: restore stat_item_get_next asserts In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23509 ) Change subject: stats_test: restore stat_item_get_next asserts ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23509/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/23509/1//COMMIT_MSG at 10 PS1, Line 10: stat item values"). Now that osmo_stat_item_get_next correctly returns, > incorrect comma Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9d4cda2487a62f52361c24058363dfa90e502c63 Gerrit-Change-Number: 23509 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 10:00:39 +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 Apr 6 10:01:27 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 10:01:27 +0000 Subject: Change in libosmocore[master]: stat_item: make value ids item specific In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23508 ) Change subject: stat_item: make value ids item specific ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stat_item.c File src/stat_item.c: https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stat_item.c at 279 PS1, Line 279: LOGP(DLSTATS, LOGL_DEBUG, "osmo_stat_item_discard_all is deprecated"); > INFO? Done https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stat_item.c at 280 PS1, Line 280: return 0; > You may want to call osmo_stats_discard_all() internally here? It doesn't call osmo_stats_discard_all() here, because osmo_stats_discard_all() uses item->stats_next_id. If there is code outside of libosmocore that uses the stat_item API directly (without stats API), it must store its own item-specific next_id outside of osmo_stat_item (see commit message). https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stats.c File src/stats.c: https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stats.c at 715 PS1, Line 715: if (!have_value) { > You can drop have_value (which is not an int anymore btw): [?] have_value is also used further below, so it can't be dropped. if (!have_value && !srep->force_single_flush) You are right with "is not an int". Since this is unrelated to this patch: https://gerrit.osmocom.org/c/libosmocore/+/23651 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f Gerrit-Change-Number: 23508 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 10:01:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 10:04:55 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Tue, 6 Apr 2021 10:04:55 +0000 Subject: Change in pysim[master]: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) References: Message-ID: Robert Falkenberg has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23652 ) Change subject: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) ...................................................................... SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) Same implementation as for sysmoUSIM-SJS1 Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d --- M pySim/cards.py 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/52/23652/1 diff --git a/pySim/cards.py b/pySim/cards.py index 5eb2884..ad6ddbc 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1266,6 +1266,11 @@ # select DF_GSM self._scc.select_path(['7f20']) + # set Service Provider Name + if p.get('name') is not None: + content = enc_spn(p['name'], True, True) + data, sw = self._scc.update_binary('6F46', rpad(content, 32)) + # write EF.IMSI if p.get('imsi'): self._scc.update_binary('6f07', enc_imsi(p['imsi'])) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d Gerrit-Change-Number: 23652 Gerrit-PatchSet: 1 Gerrit-Owner: Robert Falkenberg Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 11:01:26 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 6 Apr 2021 11:01:26 +0000 Subject: Change in pysim[master]: test please ignore References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23653 ) Change subject: test please ignore ...................................................................... test please ignore Change-Id: I61b5d278d437f66ee08120c416590fca47ced0b1 --- A testme 1 file changed, 0 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/53/23653/1 diff --git a/testme b/testme new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/testme -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I61b5d278d437f66ee08120c416590fca47ced0b1 Gerrit-Change-Number: 23653 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 Apr 6 11:04:13 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 11:04:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23565 ) Change subject: gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If97dfd123eefd71fc6c3fe886a243a21784aeeb4 Gerrit-Change-Number: 23565 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 11: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 Tue Apr 6 13:58:08 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 13:58:08 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: ensure the sns->alive state is correct In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23566 ) Change subject: gprs_ns2: sns: ensure the sns->alive state is correct ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6a1cc1fd84959e69c07b72ef780642205d2cd18 Gerrit-Change-Number: 23566 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 13:58:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 14:01:49 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 6 Apr 2021 14:01:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: PCU_Tests_NS: add support for vty References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23654 ) Change subject: pcu: PCU_Tests_NS: add support for vty ...................................................................... pcu: PCU_Tests_NS: add support for vty Allow to use the vty by test cases. f_init_vty(id) must be called before using the vty. Related: SYS#5416 Change-Id: Ib2011babb123e1e1bb576e72b9bfbda90dce2df7 --- M pcu/PCU_Tests_NS.ttcn 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/54/23654/1 diff --git a/pcu/PCU_Tests_NS.ttcn b/pcu/PCU_Tests_NS.ttcn index e2bad4f..eea8d3f 100644 --- a/pcu/PCU_Tests_NS.ttcn +++ b/pcu/PCU_Tests_NS.ttcn @@ -12,6 +12,8 @@ import from General_Types all; import from Osmocom_Types all; +import from Osmocom_VTY_Functions all; +import from TELNETasp_PortType all; import from PCU_Tests all; import from SGSN_Components all; import from Osmocom_Gb_Types all; @@ -29,11 +31,19 @@ /* PCUIF (we emulate the BTS part) */ port PCUIF_CODEC_PT PCU; var ConnectionId g_pcu_conn_id := -1; + /* VTY connection to the PCU */ + port TELNETasp_PT PCUVTY; } type component RAW_Test_CT extends RAW_NS_CT, RAW_PCU_CT { } +function f_init_vty(charstring id) runs on RAW_PCU_CT { + map(self:PCUVTY, system:PCUVTY); + f_vty_set_prompts(PCUVTY); + f_vty_transceive(PCUVTY, "enable"); +} + function f_init_pcuif() runs on RAW_PCU_CT { var PCUIF_info_ind info_ind; map(self:PCU, system:PCU); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib2011babb123e1e1bb576e72b9bfbda90dce2df7 Gerrit-Change-Number: 23654 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 Apr 6 14:01:49 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 6 Apr 2021 14:01:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 ) Change subject: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc ...................................................................... pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc There shouldn't any unconfigured NSVC after the configuration phase. The unconfigured NSVC is used in the SNS configuration phase and must be removed when the configuration is done and the NSVC is included in the configuration. Related: SYS#5416 Change-Id: Iac6c8966aafd1cb2fab515de091e94607eb7c040 --- M pcu/PCU_Tests_SNS.ttcn 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/55/23655/1 diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index b63b51e..20ab608 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -11,6 +11,7 @@ */ import from Osmocom_Types all; +import from Osmocom_VTY_Functions all; import from PCU_Tests_NS all; import from SGSN_Components all; import from Osmocom_Gb_Types all; @@ -220,6 +221,15 @@ f_clean_ns_codec(); } +/* Test full IP_SNS bring-up over an initial NS-VC with two NS-VCs */ +testcase TC_sns_1c1u_unconfigured_nsvc() runs on RAW_Test_CT { + f_init_vty(testcasename()); + f_sns_bringup_1c1u_separate(); + f_vty_transceive_not_match(PCUVTY, "show ns entities", pattern "*UNCONFIGURED*"); + setverdict(pass); + f_clean_ns_codec(); +} + /* Transmit BVC-RESET before NS-ALIVE of PCU was ACKed: expect no response */ testcase TC_sns_1c1u_so_bvc_reset_too_early() runs on RAW_Test_CT { /* Activate two NS codec ports */ @@ -371,6 +381,7 @@ execute( TC_sns_1c1u_separate() ); execute( TC_sns_1c1u_so_bvc_reset() ); execute( TC_sns_1c1u_so_bvc_reset_too_early() ); + execute( TC_sns_1c1u_unconfigured_nsvc() ); execute( TC_sns_so_bvc_reset_unknown_bvci() ); execute( TC_sns_add() ); execute( TC_sns_add_nack() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iac6c8966aafd1cb2fab515de091e94607eb7c040 Gerrit-Change-Number: 23655 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 Apr 6 14:09:16 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 14:09:16 +0000 Subject: Change in libosmocore[master]: stat_item: make next_id argument name consistent In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23506 ) Change subject: stat_item: make next_id argument name consistent ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5dd566b08dff7174d1790f49abd2d6ac020e120e Gerrit-Change-Number: 23506 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 14:09: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 Apr 6 14:09:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 14:09:22 +0000 Subject: Change in libosmocore[master]: stat_item: make next_id argument name consistent In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23506 ) Change subject: stat_item: make next_id argument name consistent ...................................................................... stat_item: make next_id argument name consistent Let osmo_stat_item_get_next, osmo_stat_item_discard, osmo_stat_item_discard_all consistently refer to their next_id arg as such (and not idx or next_idx). It refers to an ID (item->values[i].id), not an index (item->values[i]), and it is always the next one, never the current one. Do the same change for _index/_idx variables in stats.c, which are used as arguments to these functions. Replace rd_ with next_id_ in stats_test.c, too. Related: OS#5088 Change-Id: I5dd566b08dff7174d1790f49abd2d6ac020e120e --- M include/osmocom/core/stat_item.h M src/stat_item.c M src/stats.c M tests/stats/stats_test.c 4 files changed, 56 insertions(+), 56 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve diff --git a/include/osmocom/core/stat_item.h b/include/osmocom/core/stat_item.h index 4710dba..4a19465 100644 --- a/include/osmocom/core/stat_item.h +++ b/include/osmocom/core/stat_item.h @@ -91,14 +91,14 @@ const struct osmo_stat_item *osmo_stat_item_get_by_name( const struct osmo_stat_item_group *statg, const char *name); -int osmo_stat_item_get_next(const struct osmo_stat_item *item, int32_t *idx, int32_t *value); +int osmo_stat_item_get_next(const struct osmo_stat_item *item, int32_t *next_id, int32_t *value); /*! Get the last (freshest) value */ static int32_t osmo_stat_item_get_last(const struct osmo_stat_item *item); -int osmo_stat_item_discard(const struct osmo_stat_item *item, int32_t *idx); +int osmo_stat_item_discard(const struct osmo_stat_item *item, int32_t *next_id); -int osmo_stat_item_discard_all(int32_t *idx); +int osmo_stat_item_discard_all(int32_t *next_id); typedef int (*osmo_stat_item_handler_t)( struct osmo_stat_item_group *, struct osmo_stat_item *, void *); diff --git a/src/stat_item.c b/src/stat_item.c index ba36464..31298fd 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -195,33 +195,33 @@ } /*! Retrieve the next value from the osmo_stat_item object. - * If a new value has been set, it is returned. The idx is used to decide + * If a new value has been set, it is returned. The next_id is used to decide * which value to return. - * On success, *idx is updated to refer to the next unread value. If - * values have been missed due to FIFO overflow, *idx is incremented by + * On success, *next_id is updated to refer to the next unread value. If + * values have been missed due to FIFO overflow, *next_id is incremented by * (1 + num_lost). * This way, the osmo_stat_item object can be kept stateless from the reader's * perspective and therefore be used by several backends simultaneously. * - * \param val the osmo_stat_item object - * \param idx identifies the next value to be read - * \param value a pointer to store the value + * \param val the osmo_stat_item object + * \param next_id identifies the next value to be read + * \param value a pointer to store the value * \returns the increment of the index (0: no value has been read, * 1: one value has been taken, * (1+n): n values have been skipped, one has been taken) */ -int osmo_stat_item_get_next(const struct osmo_stat_item *item, int32_t *next_idx, +int osmo_stat_item_get_next(const struct osmo_stat_item *item, int32_t *next_id, int32_t *value) { const struct osmo_stat_item_value *next_value; const struct osmo_stat_item_value *item_value = NULL; - int idx_delta; + int id_delta; int next_offs; next_offs = item->last_offs; next_value = &item->values[next_offs]; - while (next_value->id - *next_idx >= 0 && + while (next_value->id - *next_id >= 0 && next_value->id != OSMO_STAT_ITEM_NOVALUE_ID) { item_value = next_value; @@ -240,27 +240,27 @@ *value = item_value->value; - idx_delta = item_value->id + 1 - *next_idx; + id_delta = item_value->id + 1 - *next_id; - *next_idx = item_value->id + 1; + *next_id = item_value->id + 1; - return idx_delta; + return id_delta; } -/*! Skip/discard all values of this item and update \a idx accordingly */ -int osmo_stat_item_discard(const struct osmo_stat_item *item, int32_t *idx) +/*! Skip/discard all values of this item and update \a next_id accordingly */ +int osmo_stat_item_discard(const struct osmo_stat_item *item, int32_t *next_id) { - int discarded = item->values[item->last_offs].id + 1 - *idx; - *idx = item->values[item->last_offs].id + 1; + int discarded = item->values[item->last_offs].id + 1 - *next_id; + *next_id = item->values[item->last_offs].id + 1; return discarded; } -/*! Skip all values of all items and update \a idx accordingly */ -int osmo_stat_item_discard_all(int32_t *idx) +/*! Skip all values of all items and update \a next_id accordingly */ +int osmo_stat_item_discard_all(int32_t *next_id) { - int discarded = global_value_id + 1 - *idx; - *idx = global_value_id + 1; + int discarded = global_value_id + 1 - *next_id; + *next_id = global_value_id + 1; return discarded; } diff --git a/src/stats.c b/src/stats.c index f2820a4..88b733f 100644 --- a/src/stats.c +++ b/src/stats.c @@ -107,7 +107,7 @@ static LLIST_HEAD(osmo_stats_reporter_list); static void *osmo_stats_ctx = NULL; static int is_initialised = 0; -static int32_t current_stat_item_index = 0; +static int32_t current_stat_item_next_id = 0; static struct osmo_stats_config s_stats_config = { .interval = STATS_DEFAULT_INTERVAL, @@ -241,7 +241,7 @@ void osmo_stats_init(void *ctx) { osmo_stats_ctx = ctx; - osmo_stat_item_discard_all(¤t_stat_item_index); + osmo_stat_item_discard_all(¤t_stat_item_next_id); is_initialised = 1; start_timer(); @@ -694,18 +694,18 @@ struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_) { struct osmo_stats_reporter *srep; - int32_t idx = current_stat_item_index; + int32_t next_id = current_stat_item_next_id; int32_t value; int have_value; - have_value = osmo_stat_item_get_next(item, &idx, &value) > 0; + have_value = osmo_stat_item_get_next(item, &next_id, &value) > 0; if (!have_value) { /* Send the last value in case a flush is requested */ value = osmo_stat_item_get_last(item); } else { int32_t next_val; /* If we have multiple values only send the max */ - while (osmo_stat_item_get_next(item, &idx, &next_val) > 0) + while (osmo_stat_item_get_next(item, &next_id, &next_val) > 0) value = OSMO_MAX(value, next_val); } @@ -798,7 +798,7 @@ osmo_stat_item_for_each_group(osmo_stat_item_group_handler, NULL); /* global actions */ - osmo_stat_item_discard_all(¤t_stat_item_index); + osmo_stat_item_discard_all(¤t_stat_item_next_id); flush_all_reporters(); TRACE(LIBOSMOCORE_STATS_DONE()); diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index 707f606..e5f7f20 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -90,8 +90,8 @@ const struct osmo_stat_item *sitem1, *sitem2; int rc; int32_t value; - int32_t rd_a = 0; - int32_t rd_b = 0; + int32_t next_id_a = 0; + int32_t next_id_b = 0; int i; OSMO_ASSERT(statg != NULL); @@ -120,7 +120,7 @@ value = osmo_stat_item_get_last(statg->items[TEST_A_ITEM]); OSMO_ASSERT(value == -1); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc == 0); osmo_stat_item_set(statg->items[TEST_A_ITEM], 1); @@ -128,39 +128,39 @@ value = osmo_stat_item_get_last(statg->items[TEST_A_ITEM]); OSMO_ASSERT(value == 1); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 1); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc == 0); for (i = 2; i <= 32; i++) { osmo_stat_item_set(statg->items[TEST_A_ITEM], i); osmo_stat_item_set(statg->items[TEST_B_ITEM], 1000 + i); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == i); - rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &rd_b, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 1000 + i); } /* check if dec & inc is working */ osmo_stat_item_set(statg->items[TEST_A_ITEM], 42); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 42); osmo_stat_item_dec(statg->items[TEST_A_ITEM], 21); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 21); osmo_stat_item_inc(statg->items[TEST_A_ITEM], 21); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 42); @@ -172,20 +172,20 @@ osmo_stat_item_set(statg->items[TEST_A_ITEM], i); osmo_stat_item_set(statg->items[TEST_B_ITEM], 1000 + i); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == i-1); - rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &rd_b, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 1000 + i-1); } - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 64); - rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &rd_b, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 1000 + 64); @@ -195,43 +195,43 @@ osmo_stat_item_set(statg->items[TEST_B_ITEM], 1000 + i); } - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 93); for (i = 94; i <= 96; i++) { - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == i); } - rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &rd_b, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 1000 + 90); for (i = 91; i <= 96; i++) { - rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &rd_b, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 1000 + i); } /* Test Discard (single item) */ osmo_stat_item_set(statg->items[TEST_A_ITEM], 97); - rc = osmo_stat_item_discard(statg->items[TEST_A_ITEM], &rd_a); + rc = osmo_stat_item_discard(statg->items[TEST_A_ITEM], &next_id_a); OSMO_ASSERT(rc > 0); - rc = osmo_stat_item_discard(statg->items[TEST_A_ITEM], &rd_a); + rc = osmo_stat_item_discard(statg->items[TEST_A_ITEM], &next_id_a); OSMO_ASSERT(rc == 0); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc == 0); osmo_stat_item_set(statg->items[TEST_A_ITEM], 98); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc > 0); OSMO_ASSERT(value == 98); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc == 0); /* Test Discard (all items) */ @@ -241,12 +241,12 @@ osmo_stat_item_set(statg->items[TEST_B_ITEM], 99); osmo_stat_item_set(statg->items[TEST_B_ITEM], 100); - rc = osmo_stat_item_discard_all(&rd_a); - rc = osmo_stat_item_discard_all(&rd_b); + rc = osmo_stat_item_discard_all(&next_id_a); + rc = osmo_stat_item_discard_all(&next_id_b); - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &rd_a, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc == 0); - rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &rd_b, &value); + rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); OSMO_ASSERT(rc == 0); osmo_stat_item_group_free(statg); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5dd566b08dff7174d1790f49abd2d6ac020e120e Gerrit-Change-Number: 23506 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 14:09:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 6 Apr 2021 14:09:22 +0000 Subject: Change in libosmocore[master]: stat_item: add comment with struct overview In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23507 ) Change subject: stat_item: add comment with struct overview ...................................................................... stat_item: add comment with struct overview Related: OS#5088 Change-Id: Ic63a5884da778938197c658c5f478c23a85a4587 --- M src/stat_item.c 1 file changed, 17 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve diff --git a/src/stat_item.c b/src/stat_item.c index 31298fd..d4f3b72 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -52,6 +52,23 @@ * */ +/* Struct overview: + * Each osmo_stat_item is attached to an osmo_stat_item_group, which is + * attached to the global osmo_stat_item_groups list. + * + * osmo_stat_item_groups + * / \ + * group1 group2 + * / \ + * item1 item2 + * | + * values + * / \ + * 1 2 + * |-id |-id + * '-value '-value + */ + #include #include -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic63a5884da778938197c658c5f478c23a85a4587 Gerrit-Change-Number: 23507 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 14:12:37 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 14:12:37 +0000 Subject: Change in libosmocore[master]: stats_test: restore stat_item_get_next asserts In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23509 ) Change subject: stats_test: restore stat_item_get_next asserts ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9d4cda2487a62f52361c24058363dfa90e502c63 Gerrit-Change-Number: 23509 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 14:12: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 Apr 6 14:15:32 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 14:15:32 +0000 Subject: Change in libosmocore[master]: stats: log error when missing stats values (v2) In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23510 ) Change subject: stats: log error when missing stats values (v2) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5140d967c2f1d36dadf93b03e52b9bbd42e2a3a6 Gerrit-Change-Number: 23510 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 14:15:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 14:26:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 6 Apr 2021 14:26:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: TC_sns_so_bvc_reset_unknown_bvci: use g_handle_rx_alive References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23656 ) Change subject: pcu: SNS: TC_sns_so_bvc_reset_unknown_bvci: use g_handle_rx_alive ...................................................................... pcu: SNS: TC_sns_so_bvc_reset_unknown_bvci: use g_handle_rx_alive The g_handle_rx_alive allows ignoring any ALIVE PDUs when using f_exp_ns(). This improves the stability as the ALIVE and BVC-RESET can come in any order. Change-Id: I3b4ab4093b3e5bee7e32fdf6c1de3f692b13a35f --- M pcu/PCU_Tests_SNS.ttcn 1 file changed, 1 insertion(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/23656/1 diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index 20ab608..b6a1790 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -267,16 +267,13 @@ * PCU -> SGSN: BVCI 24 BSSGP-STATUS Unknown BVCI */ testcase TC_sns_so_bvc_reset_unknown_bvci() runs on RAW_Test_CT { + g_handle_rx_alive := true; f_init_ns_codec(mp_nsconfig); f_init_pcuif(); f_incoming_sns_size(); f_incoming_sns_config(); f_outgoing_sns_config(); - /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ - as_rx_alive_tx_ack(oneshot := true); - activate(as_rx_alive_tx_ack()); - /* 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 := 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3b4ab4093b3e5bee7e32fdf6c1de3f692b13a35f Gerrit-Change-Number: 23656 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 Apr 6 14:30:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 6 Apr 2021 14:30:00 +0000 Subject: Change in libosmocore[master]: gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23565 ) Change subject: gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If97dfd123eefd71fc6c3fe886a243a21784aeeb4 Gerrit-Change-Number: 23565 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 06 Apr 2021 14:30: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 Apr 6 14:30:19 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 6 Apr 2021 14:30:19 +0000 Subject: Change in libosmocore[master]: gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23565 ) Change subject: gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() ...................................................................... gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() The start_procedure() can't be called after ns2_nse_notify_unblocked() because ns2_nse_notify_unblocked() might free the nsvc. Otherwise the fsm will do use-after-free on the NSVC memory. Related: SYS#5416 Change-Id: If97dfd123eefd71fc6c3fe886a243a21784aeeb4 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index a8cb570..85cd2ad 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -460,8 +460,8 @@ if (old_state != GPRS_NS2_ST_RECOVERING) priv->N = 0; - ns2_nse_notify_unblocked(priv->nsvc, false); start_test_procedure(fi, true); + ns2_nse_notify_unblocked(priv->nsvc, false); } static const struct osmo_fsm_state ns2_vc_states[] = { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If97dfd123eefd71fc6c3fe886a243a21784aeeb4 Gerrit-Change-Number: 23565 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 Apr 6 14:30:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 6 Apr 2021 14:30:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: ensure the sns->alive state is correct In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23566 ) Change subject: gprs_ns2: sns: ensure the sns->alive state is correct ...................................................................... gprs_ns2: sns: ensure the sns->alive state is correct The SNS fsms also track the NSE however since the NSVC starts now in ALIVE for SNS the SNS must check when synchronize the alive state when entering the ST_CONFIGURED. Related: SYS#5416 Change-Id: Ib6a1cc1fd84959e69c07b72ef780642205d2cd18 --- M src/gb/gprs_ns2_sns.c 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index b8c44f1..552e4b8 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1355,7 +1355,19 @@ static void ns2_sns_st_configured_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { + struct gprs_ns2_vc *nsvc; + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); + /* NS-VC status updates are only parsed in ST_CONFIGURED. + * Do an initial check if there are any nsvc alive atm */ + llist_for_each_entry(nsvc, &nse->nsvc, list) { + if (ns2_vc_is_unblocked(nsvc)) { + gss->alive = true; + osmo_timer_del(&fi->timer); + break; + } + } + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6a1cc1fd84959e69c07b72ef780642205d2cd18 Gerrit-Change-Number: 23566 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 Apr 6 14:39:07 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 14:39:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add vty `nse <0-65535> restart sns` In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23184 ) Change subject: gprs_ns2: add vty `nse <0-65535> restart sns` ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23184/1/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/23184/1/src/gb/gprs_ns2_vty.c at 1920 PS1, Line 1920: gprs_ns2_free_nsvcs(nse); > The code was there before the SGSN SNS code :) [?] I think this makes sense in both roles (BSS and SGSN) if it works like the side just restarted. So: * BSS-side should restart the SIZE procedure * SGSN-side should stop sending (and responding to) ALIVE and wait until the BSS starts sending SIZE -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23184 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb55d8449908d348ab10572eebcf971737fba00d Gerrit-Change-Number: 23184 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 14:39:07 +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 Apr 6 14:45:06 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 6 Apr 2021 14:45:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|re... In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/23455 to look at the new patch set (#4). Change subject: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset) ...................................................................... gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset) The vty wasn't printing anything to the user if it was a success or not Change-Id: Idbb83ea319bbdc94177febdd66e79c49fce7fdd2 --- M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c 2 files changed, 34 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/23455/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idbb83ea319bbdc94177febdd66e79c49fce7fdd2 Gerrit-Change-Number: 23455 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 14:45:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 6 Apr 2021 14:45:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|re... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23455 ) Change subject: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset) ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23455/3/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/23455/3/src/gb/gprs_ns2_vty.c at 2067 PS3, Line 2067: %05u > rc should be %d... Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idbb83ea319bbdc94177febdd66e79c49fce7fdd2 Gerrit-Change-Number: 23455 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 14:45:12 +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 Tue Apr 6 15:44:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 15:44:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: PCU_Tests_NS: add support for vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23654 ) Change subject: pcu: PCU_Tests_NS: add support for vty ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib2011babb123e1e1bb576e72b9bfbda90dce2df7 Gerrit-Change-Number: 23654 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 15: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 Apr 6 15:47:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 15:47:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 ) Change subject: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655/1/pcu/PCU_Tests_SNS.ttcn File pcu/PCU_Tests_SNS.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655/1/pcu/PCU_Tests_SNS.ttcn at 228 PS1, Line 228: f you could do this probably more elegant (and less dependent on VTY format changes) by using the CTRL interface to perform FSM state introspection? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23554 and https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23555 as an usage example. Not saying one must do that, just pointing it out as an option to verify the state of specific FSMs. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iac6c8966aafd1cb2fab515de091e94607eb7c040 Gerrit-Change-Number: 23655 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 15:47:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 15:48:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 15:48:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: TC_sns_so_bvc_reset_unknown_bvci: use g_handle_rx_alive In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23656 ) Change subject: pcu: SNS: TC_sns_so_bvc_reset_unknown_bvci: use g_handle_rx_alive ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3b4ab4093b3e5bee7e32fdf6c1de3f692b13a35f Gerrit-Change-Number: 23656 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 15:48: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 Apr 6 15:48:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 15:48:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: PCU_Tests_NS: add support for vty In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23654 ) Change subject: pcu: PCU_Tests_NS: add support for vty ...................................................................... pcu: PCU_Tests_NS: add support for vty Allow to use the vty by test cases. f_init_vty(id) must be called before using the vty. Related: SYS#5416 Change-Id: Ib2011babb123e1e1bb576e72b9bfbda90dce2df7 --- M pcu/PCU_Tests_NS.ttcn 1 file changed, 10 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pcu/PCU_Tests_NS.ttcn b/pcu/PCU_Tests_NS.ttcn index e2bad4f..eea8d3f 100644 --- a/pcu/PCU_Tests_NS.ttcn +++ b/pcu/PCU_Tests_NS.ttcn @@ -12,6 +12,8 @@ import from General_Types all; import from Osmocom_Types all; +import from Osmocom_VTY_Functions all; +import from TELNETasp_PortType all; import from PCU_Tests all; import from SGSN_Components all; import from Osmocom_Gb_Types all; @@ -29,11 +31,19 @@ /* PCUIF (we emulate the BTS part) */ port PCUIF_CODEC_PT PCU; var ConnectionId g_pcu_conn_id := -1; + /* VTY connection to the PCU */ + port TELNETasp_PT PCUVTY; } type component RAW_Test_CT extends RAW_NS_CT, RAW_PCU_CT { } +function f_init_vty(charstring id) runs on RAW_PCU_CT { + map(self:PCUVTY, system:PCUVTY); + f_vty_set_prompts(PCUVTY); + f_vty_transceive(PCUVTY, "enable"); +} + function f_init_pcuif() runs on RAW_PCU_CT { var PCUIF_info_ind info_ind; map(self:PCU, system:PCU); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib2011babb123e1e1bb576e72b9bfbda90dce2df7 Gerrit-Change-Number: 23654 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 15:49:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 15:49:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|re... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23455 ) Change subject: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset) ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idbb83ea319bbdc94177febdd66e79c49fce7fdd2 Gerrit-Change-Number: 23455 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 15:49:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 15:50:16 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 15:50:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|re... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23455 ) Change subject: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset) ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idbb83ea319bbdc94177febdd66e79c49fce7fdd2 Gerrit-Change-Number: 23455 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 15:50:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 15:51:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 15:51:21 +0000 Subject: Change in simtrace2[master]: iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23640 ) Change subject: iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: If364e08e7c9a3a9707e6d54b9267c6a7c088e415 Gerrit-Change-Number: 23640 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 15:51: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 Apr 6 15:59:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 15:59:22 +0000 Subject: Change in pysim[master]: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23632/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/pysim/+/23632/1//COMMIT_MSG at 7 PS1, Line 7: S > Good question. The default value depends on the targeted group that uses this software. [?] The best option today would probably be not to overload pySim-prog with more cryptic command line flags but to support this form pySim-shell, if it's not already supported there. Preliminary docs: https://people.osmocom.org/laforge/tmp/pysim-doc-test/html/shell.html It looks like ts_51_011.py already has an AF_AD() class that can do a decode. All that's missing is the corresponding encode method, and then you should be able to interactively change that file with read_binary_decoded and update_binary_decoded from pySim-shell. Api docs: https://people.osmocom.org/laforge/tmp/pysim-doc-test/html/library.html#module-pySim.filesystem And don't worry about the fall-out. You just hit a long-known problem in our CI system with real sim cards: The need to do proper backup-restore of all cards to have a well-defined initial state ahead of executing a test. The related functionality has just been added to pySim-shell (the "export" command which creates a script of update_binary / update_record commands which can be executed by pySim-shell itself again. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 6 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 15:59:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: Robert Falkenberg Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 16:02:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:02:42 +0000 Subject: Change in pysim[master]: Add type annotations and more documentation to card_data.py In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23590 ) Change subject: Add type annotations and more documentation to card_data.py ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia09b3ecaa582d62a97c3adac2650686dc19d5ec1 Gerrit-Change-Number: 23590 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 16:02: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 Apr 6 16:02:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:02:48 +0000 Subject: Change in pysim[master]: rename card_data to card_key_provider. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23591 ) Change subject: rename card_data to card_key_provider. ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4c8e1be3e766f7c0565c07b39d48abf8adc375af Gerrit-Change-Number: 23591 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 16:02: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 Apr 6 16:02:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:02:53 +0000 Subject: Change in pysim[master]: card_key_provider: Documentation with sphinx / autodoc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23593 ) Change subject: card_key_provider: Documentation with sphinx / autodoc ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia41e14d643d452d92fc8d3c2fb9c4ac9021402e9 Gerrit-Change-Number: 23593 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 16:02: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 Apr 6 16:03:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:00 +0000 Subject: Change in pysim[master]: Move init_reader() from utils.py to transport/__init__.py In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23596 ) Change subject: Move init_reader() from utils.py to transport/__init__.py ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I168597ac14497fb188a15cb632f32452128bc1c6 Gerrit-Change-Number: 23596 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 16:03: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 Apr 6 16:03:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:05 +0000 Subject: Change in pysim[master]: utils.py: Add more type annotations In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23594 ) Change subject: utils.py: Add more type annotations ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I50a0a07132890af0817f4ff0ce9fec53b7512522 Gerrit-Change-Number: 23594 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 16:03:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 16:03:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:09 +0000 Subject: Change in pysim[master]: shell: Move dir, tree, export from ISO7816 to pySim commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23599 ) Change subject: shell: Move dir,tree,export from ISO7816 to pySim commands ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id38c8190c6279d037fe266c586065f1507a02932 Gerrit-Change-Number: 23599 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 16:03: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 Apr 6 16:03:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:14 +0000 Subject: Change in pysim[master]: docs: Initial documentation for pySim-shell In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23600 ) Change subject: docs: Initial documentation for pySim-shell ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I19fd56aed251d064f3e5d37ffad39c1e3e39989e Gerrit-Change-Number: 23600 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 16:03:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 16:03:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:19 +0000 Subject: Change in pysim[master]: transport: Pass status word interpreter to exception handler In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23601 ) Change subject: transport: Pass status word interpreter to exception handler ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I08b7f2b6bd422f7f2f36094bc8a29b187ff882a6 Gerrit-Change-Number: 23601 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 16:03:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 16:03:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:29 +0000 Subject: Change in pysim[master]: Add type annotations and more documentation to card_data.py In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23590 ) Change subject: Add type annotations and more documentation to card_data.py ...................................................................... Add type annotations and more documentation to card_data.py Change-Id: Ia09b3ecaa582d62a97c3adac2650686dc19d5ec1 --- M pySim/card_data.py 1 file changed, 30 insertions(+), 26 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/card_data.py b/pySim/card_data.py index ebc63a6..e35df9e 100644 --- a/pySim/card_data.py +++ b/pySim/card_data.py @@ -1,35 +1,36 @@ # coding=utf-8 -"""Abstraction of card data that can be queried from external source +"""Abstraction of card related data that can be queried from external source.""" -(C) 2021 by Sysmocom s.f.m.c. GmbH -All Rights Reserved +# (C) 2021 by Sysmocom s.f.m.c. GmbH +# All Rights Reserved +# +# Author: Philipp Maier +# +# 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 . -Author: Philipp Maier - -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 . -""" +from typing import List, Dict, Optional import csv -card_data_provider = [] +card_data_provider = [] # type: List[CardData] class CardData(object): VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI', 'PIN1', 'PIN2', 'PUK1', 'PUK2'] # check input parameters, but do nothing concrete yet - def get_data(self, fields=[], key='ICCID', value=""): + def get_data(self, fields:List[str]=[], key:str='ICCID', value:str="") -> Dict[str,str]: """abstract implementation of get_data that only verifies the function parameters""" for f in fields: @@ -43,25 +44,28 @@ return {} - def get_field(self, field, key='ICCID', value=""): + def get_field(self, field:str, key:str='ICCID', value:str="") -> Optional[str]: """get a single field from CSV file using a specified key/value pair""" fields = [field] result = self.get(fields, key, value) return result.get(field) + def get(self, fields:List[str], key:str, value:str) -> Dict[str,str]: + """get fields from CSV file using a specified key/value pair""" + pass class CardDataCsv(CardData): """card data class that allows the user to query against a specified CSV file""" csv_file = None filename = None - def __init__(self, filename): + def __init__(self, filename:str): self.csv_file = open(filename, 'r') if not self.csv_file: raise RuntimeError("Could not open CSV-File '%s'" % filename) self.filename = filename - def get(self, fields, key, value): + def get(self, fields:List[str], key:str, value:str) -> Dict[str,str]: """get fields from CSV file using a specified key/value pair""" super().get_data(fields, key, value) @@ -83,14 +87,14 @@ return rc -def card_data_register(provider, provider_list=card_data_provider): +def card_data_register(provider:CardData, provider_list=card_data_provider): """Register a new card data provider""" if not isinstance(provider, CardData): raise ValueError("provider is not a card data provier") provider_list.append(provider) -def card_data_get(fields, key, value, provider_list=card_data_provider): +def card_data_get(fields, key:str, value:str, provider_list=card_data_provider) -> Dict[str,str]: """Query all registered card data providers""" for p in provider_list: if not isinstance(p, CardData): @@ -101,7 +105,7 @@ return {} -def card_data_get_field(field, key, value, provider_list=card_data_provider): +def card_data_get_field(field:str, key:str, value:str, provider_list=card_data_provider) -> Optional[str]: """Query all registered card data providers for a single field""" for p in provider_list: if not isinstance(p, CardData): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia09b3ecaa582d62a97c3adac2650686dc19d5ec1 Gerrit-Change-Number: 23590 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Apr 6 16:03:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:29 +0000 Subject: Change in pysim[master]: rename card_data to card_key_provider. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23591 ) Change subject: rename card_data to card_key_provider. ...................................................................... rename card_data to card_key_provider. "data" is an awfully generic term. Anything stored on a card is data. This specific code deals with resolving key/pin material from an external source. Change-Id: I4c8e1be3e766f7c0565c07b39d48abf8adc375af --- M pySim-shell.py R pySim/card_key_provider.py 2 files changed, 14 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index 931b5ea..d27deb7 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -48,7 +48,7 @@ from pySim.ts_31_102 import CardApplicationUSIM from pySim.ts_31_103 import CardApplicationISIM -from pySim.card_data import CardDataCsv, card_data_register, card_data_get_field +from pySim.card_key_provider import CardKeyProviderCsv, card_key_provider_register, card_key_provider_get_field class PysimApp(cmd2.Cmd): @@ -95,7 +95,7 @@ pin_adm = sanitize_pin_adm(arg) else: # try to find an ADM-PIN if none is specified - result = card_data_get_field('ADM1', key='ICCID', value=self.iccid) + result = card_key_provider_get_field('ADM1', key='ICCID', value=self.iccid) pin_adm = sanitize_pin_adm(result) if pin_adm: self.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self.iccid)) @@ -148,7 +148,7 @@ if str(code).upper() not in auto: return sanitize_pin_adm(code) - result = card_data_get_field(str(code), key='ICCID', value=self._cmd.iccid) + result = card_key_provider_get_field(str(code), key='ICCID', value=self._cmd.iccid) result = sanitize_pin_adm(result) if result: self._cmd.poutput("found %s '%s' for ICCID '%s'" % (code.upper(), result, self._cmd.iccid)) @@ -439,9 +439,9 @@ # or from CSV file in home directory csv_default = str(Path.home()) + "/.osmocom/pysim/card_data.csv" if opts.csv: - card_data_register(CardDataCsv(opts.csv)) + card_key_provider_register(CardKeyProviderCsv(opts.csv)) if os.path.isfile(csv_default): - card_data_register(CardDataCsv(csv_default)) + card_key_provider_register(CardKeyProviderCsv(csv_default)) # If the user supplies an ADM PIN at via commandline args authenticate # immediatley so that the user does not have to use the shell commands diff --git a/pySim/card_data.py b/pySim/card_key_provider.py similarity index 86% rename from pySim/card_data.py rename to pySim/card_key_provider.py index e35df9e..2e98d7d 100644 --- a/pySim/card_data.py +++ b/pySim/card_key_provider.py @@ -23,9 +23,9 @@ import csv -card_data_provider = [] # type: List[CardData] +card_key_providers = [] # type: List[CardData] -class CardData(object): +class CardKeyProvider(object): VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI', 'PIN1', 'PIN2', 'PUK1', 'PUK2'] @@ -54,7 +54,7 @@ """get fields from CSV file using a specified key/value pair""" pass -class CardDataCsv(CardData): +class CardKeyProviderCsv(CardKeyProvider): """card data class that allows the user to query against a specified CSV file""" csv_file = None filename = None @@ -87,17 +87,17 @@ return rc -def card_data_register(provider:CardData, provider_list=card_data_provider): +def card_key_provider_register(provider:CardKeyProvider, provider_list=card_key_providers): """Register a new card data provider""" - if not isinstance(provider, CardData): + if not isinstance(provider, CardKeyProvider): raise ValueError("provider is not a card data provier") provider_list.append(provider) -def card_data_get(fields, key:str, value:str, provider_list=card_data_provider) -> Dict[str,str]: +def card_key_provider_get(fields, key:str, value:str, provider_list=card_key_providers) -> Dict[str,str]: """Query all registered card data providers""" for p in provider_list: - if not isinstance(p, CardData): + if not isinstance(p, CardKeyProvider): raise ValueError("provider list contains provider, which is not a card data provier") result = p.get(fields, key, value) if result: @@ -105,10 +105,10 @@ return {} -def card_data_get_field(field:str, key:str, value:str, provider_list=card_data_provider) -> Optional[str]: +def card_key_provider_get_field(field:str, key:str, value:str, provider_list=card_key_providers) -> Optional[str]: """Query all registered card data providers for a single field""" for p in provider_list: - if not isinstance(p, CardData): + if not isinstance(p, CardKeyProvider): raise ValueError("provider list contains provider, which is not a card data provier") result = p.get_field(field, key, value) if result: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4c8e1be3e766f7c0565c07b39d48abf8adc375af Gerrit-Change-Number: 23591 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Apr 6 16:03:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:29 +0000 Subject: Change in pysim[master]: card_key_provider: Documentation with sphinx / autodoc In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23593 ) Change subject: card_key_provider: Documentation with sphinx / autodoc ...................................................................... card_key_provider: Documentation with sphinx / autodoc * move existing docs to sphinx / autodoc * add more api documentation * improve wording on some exception strings Change-Id: Ia41e14d643d452d92fc8d3c2fb9c4ac9021402e9 --- M docs/library.rst M pySim/card_key_provider.py 2 files changed, 71 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/library.rst b/docs/library.rst index ae027ff..656a780 100644 --- a/docs/library.rst +++ b/docs/library.rst @@ -90,3 +90,9 @@ .. automodule:: pySim.card_handler :members: + +pySim card_key_provider +----------------------- + +.. automodule:: pySim.card_key_provider + :members: diff --git a/pySim/card_key_provider.py b/pySim/card_key_provider.py index 2e98d7d..05de0be 100644 --- a/pySim/card_key_provider.py +++ b/pySim/card_key_provider.py @@ -1,5 +1,14 @@ # coding=utf-8 -"""Abstraction of card related data that can be queried from external source.""" +"""Obtaining card parameters (mostly key data) from external source. + +This module contains a base class and a concrete implementation of +obtaining card key material (or other card-individual parameters) from +an external data source. + +This is used e.g. to keep PIN/PUK data in some file on disk, avoiding +the need of manually entering the related card-individual data on every +operation with pySim-shell. +""" # (C) 2021 by Sysmocom s.f.m.c. GmbH # All Rights Reserved @@ -23,16 +32,24 @@ import csv -card_key_providers = [] # type: List[CardData] +card_key_providers = [] # type: List['CardKeyProvider'] class CardKeyProvider(object): + """Base class, not containing any concrete implementation.""" VALID_FIELD_NAMES = ['ICCID', 'ADM1', 'IMSI', 'PIN1', 'PIN2', 'PUK1', 'PUK2'] # check input parameters, but do nothing concrete yet - def get_data(self, fields:List[str]=[], key:str='ICCID', value:str="") -> Dict[str,str]: - """abstract implementation of get_data that only verifies the function parameters""" + def _verify_get_data(self, fields:List[str]=[], key:str='ICCID', value:str="") -> Dict[str,str]: + """Verify multiple fields for identified card. + Args: + fields : list of valid field names such as 'ADM1', 'PIN1', ... which are to be obtained + key : look-up key to identify card data, such as 'ICCID' + value : value for look-up key to identify card data + Returns: + dictionary of {field, value} strings for each requested field from 'fields' + """ for f in fields: if (f not in self.VALID_FIELD_NAMES): raise ValueError("Requested field name '%s' is not a valid field name, valid field names are: %s" % @@ -51,23 +68,34 @@ return result.get(field) def get(self, fields:List[str], key:str, value:str) -> Dict[str,str]: - """get fields from CSV file using a specified key/value pair""" + """Get multiple card-individual fields for identified card. + + Args: + fields : list of valid field names such as 'ADM1', 'PIN1', ... which are to be obtained + key : look-up key to identify card data, such as 'ICCID' + value : value for look-up key to identify card data + Returns: + dictionary of {field, value} strings for each requested field from 'fields' + """ pass class CardKeyProviderCsv(CardKeyProvider): - """card data class that allows the user to query against a specified CSV file""" + """Card key provider implementation that allows to query against a specified CSV file""" csv_file = None filename = None def __init__(self, filename:str): + """ + Args: + filename : file name (path) of CSV file containing card-individual key/data + """ self.csv_file = open(filename, 'r') if not self.csv_file: - raise RuntimeError("Could not open CSV-File '%s'" % filename) + raise RuntimeError("Could not open CSV file '%s'" % filename) self.filename = filename def get(self, fields:List[str], key:str, value:str) -> Dict[str,str]: - """get fields from CSV file using a specified key/value pair""" - super().get_data(fields, key, value) + super()._verify_get_data(fields, key, value) self.csv_file.seek(0) cr = csv.DictReader(self.csv_file) @@ -88,17 +116,31 @@ def card_key_provider_register(provider:CardKeyProvider, provider_list=card_key_providers): - """Register a new card data provider""" + """Register a new card key provider. + + Args: + provider : the to-be-registered provider + provider_list : override the list of providers from the global default + """ if not isinstance(provider, CardKeyProvider): raise ValueError("provider is not a card data provier") provider_list.append(provider) def card_key_provider_get(fields, key:str, value:str, provider_list=card_key_providers) -> Dict[str,str]: - """Query all registered card data providers""" + """Query all registered card data providers for card-individual [key] data. + + Args: + fields : list of valid field names such as 'ADM1', 'PIN1', ... which are to be obtained + key : look-up key to identify card data, such as 'ICCID' + value : value for look-up key to identify card data + provider_list : override the list of providers from the global default + Returns: + dictionary of {field, value} strings for each requested field from 'fields' + """ for p in provider_list: if not isinstance(p, CardKeyProvider): - raise ValueError("provider list contains provider, which is not a card data provier") + raise ValueError("provider list contains element which is not a card data provier") result = p.get(fields, key, value) if result: return result @@ -106,12 +148,20 @@ def card_key_provider_get_field(field:str, key:str, value:str, provider_list=card_key_providers) -> Optional[str]: - """Query all registered card data providers for a single field""" + """Query all registered card data providers for a single field. + + Args: + field : name valid field such as 'ADM1', 'PIN1', ... which is to be obtained + key : look-up key to identify card data, such as 'ICCID' + value : value for look-up key to identify card data + provider_list : override the list of providers from the global default + Returns: + dictionary of {field, value} strings for the requested field + """ for p in provider_list: if not isinstance(p, CardKeyProvider): - raise ValueError("provider list contains provider, which is not a card data provier") + raise ValueError("provider list contains element which is not a card data provier") result = p.get_field(field, key, value) if result: return result return None - -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia41e14d643d452d92fc8d3c2fb9c4ac9021402e9 Gerrit-Change-Number: 23593 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Apr 6 16:03:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:29 +0000 Subject: Change in pysim[master]: Move init_reader() from utils.py to transport/__init__.py In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23596 ) Change subject: Move init_reader() from utils.py to transport/__init__.py ...................................................................... Move init_reader() from utils.py to transport/__init__.py This avoids a circular dependency when introducing type annotations. Change-Id: I168597ac14497fb188a15cb632f32452128bc1c6 --- M pySim-prog.py M pySim-read.py M pySim-shell.py M pySim/transport/__init__.py M pySim/utils.py 5 files changed, 35 insertions(+), 30 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index 662824c..7b1283b 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -34,8 +34,9 @@ import json from pySim.commands import SimCardCommands +from pySim.transport import init_reader from pySim.cards import _cards_classes, card_detect -from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn, dec_iccid, init_reader +from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn, dec_iccid from pySim.ts_51_011 import EF from pySim.card_handler import * from pySim.utils import * diff --git a/pySim-read.py b/pySim-read.py index 638bd4b..59c5762 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -33,9 +33,10 @@ from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map from pySim.commands import SimCardCommands +from pySim.transport import init_reader from pySim.cards import card_detect, Card, UsimCard, IsimCard from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn -from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader, dec_addr_tlv +from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, dec_addr_tlv from pySim.utils import h2s, format_ePDGSelection def parse_options(): diff --git a/pySim-shell.py b/pySim-shell.py index d27deb7..ef76cb2 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -37,9 +37,10 @@ from pySim.exceptions import * from pySim.commands import SimCardCommands +from pySim.transport import init_reader from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, h2s -from pySim.utils import dec_st, init_reader, sanitize_pin_adm, tabulate_str_list, is_hex +from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex from pySim.card_handler import card_handler from pySim.filesystem import CardMF, RuntimeState, CardDF, CardADF diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index f946af8..24d7521 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -3,6 +3,8 @@ """ pySim: PCSC reader transport link base """ +from typing import Optional + from pySim.exceptions import * from pySim.utils import sw_match @@ -103,3 +105,30 @@ if not sw_match(rv[1], sw): raise SwMatchError(rv[1], sw.lower()) return rv + +def init_reader(opts) -> Optional[LinkBase]: + """ + Init card reader driver + """ + sl = None # type : :Optional[LinkBase] + try: + if opts.pcsc_dev is not None: + print("Using PC/SC reader interface") + from pySim.transport.pcsc import PcscSimLink + sl = PcscSimLink(opts.pcsc_dev) + elif opts.osmocon_sock is not None: + print("Using Calypso-based (OsmocomBB) reader interface") + from pySim.transport.calypso import CalypsoSimLink + sl = CalypsoSimLink(sock_path=opts.osmocon_sock) + elif opts.modem_dev is not None: + print("Using modem for Generic SIM Access (3GPP TS 27.007)") + from pySim.transport.modem_atcmd import ModemATCommandLink + sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud) + else: # Serial reader is default + print("Using serial reader interface") + from pySim.transport.serial import SerialSimLink + sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate) + return sl + except Exception as e: + print("Card reader initialization failed with exception:\n" + str(e)) + return None diff --git a/pySim/utils.py b/pySim/utils.py index a784b7e..3e27e3f 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -650,33 +650,6 @@ return pin_adm -def init_reader(opts): - """ - Init card reader driver - """ - try: - if opts.pcsc_dev is not None: - print("Using PC/SC reader interface") - from pySim.transport.pcsc import PcscSimLink - sl = PcscSimLink(opts.pcsc_dev) - elif opts.osmocon_sock is not None: - print("Using Calypso-based (OsmocomBB) reader interface") - from pySim.transport.calypso import CalypsoSimLink - sl = CalypsoSimLink(sock_path=opts.osmocon_sock) - elif opts.modem_dev is not None: - print("Using modem for Generic SIM Access (3GPP TS 27.007)") - from pySim.transport.modem_atcmd import ModemATCommandLink - sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud) - else: # Serial reader is default - print("Using serial reader interface") - from pySim.transport.serial import SerialSimLink - sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate) - return sl - except Exception as e: - print("Card reader initialization failed with exception:\n" + str(e)) - return None - - def enc_ePDGSelection(hexstr, mcc, mnc, epdg_priority='0001', epdg_fqdn_format='00'): """ Encode ePDGSelection so it can be stored at EF.ePDGSelection or EF.ePDGSelectionEm. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I168597ac14497fb188a15cb632f32452128bc1c6 Gerrit-Change-Number: 23596 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Apr 6 16:03:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:30 +0000 Subject: Change in pysim[master]: utils.py: Add more type annotations In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23594 ) Change subject: utils.py: Add more type annotations ...................................................................... utils.py: Add more type annotations Change-Id: I50a0a07132890af0817f4ff0ce9fec53b7512522 --- M pySim/utils.py 1 file changed, 33 insertions(+), 30 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/utils.py b/pySim/utils.py index 3e27e3f..8b23929 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -3,7 +3,8 @@ """ pySim: various utilities """ -# +from typing import Optional, List, Dict, Any, Tuple + # Copyright (C) 2009-2010 Sylvain Munaut # # This program is free software: you can redistribute it and/or modify @@ -20,40 +21,42 @@ # along with this program. If not, see . # +# just to differentiate strings of hex nibbles from everything else +Hexstr = str -def h2b(s: str) -> bytearray: +def h2b(s:Hexstr) -> bytearray: """convert from a string of hex nibbles to a sequence of bytes""" return bytearray.fromhex(s) -def b2h(b: bytearray) -> str: +def b2h(b:bytearray) -> Hexstr: """convert from a sequence of bytes to a string of hex nibbles""" return ''.join(['%02x'%(x) for x in b]) -def h2i(s:str): +def h2i(s:Hexstr) -> List[int]: """convert from a string of hex nibbles to a list of integers""" return [(int(x,16)<<4)+int(y,16) for x,y in zip(s[0::2], s[1::2])] -def i2h(s) -> str: +def i2h(s:List[int]) -> Hexstr: """convert from a list of integers to a string of hex nibbles""" return ''.join(['%02x'%(x) for x in s]) -def h2s(s:str) -> str: +def h2s(s:Hexstr) -> str: """convert from a string of hex nibbles to an ASCII string""" return ''.join([chr((int(x,16)<<4)+int(y,16)) for x,y in zip(s[0::2], s[1::2]) if int(x + y, 16) != 0xff]) -def s2h(s:str) -> str: +def s2h(s:str) -> Hexstr: """convert from an ASCII string to a string of hex nibbles""" b = bytearray() b.extend(map(ord, s)) return b2h(b) # List of bytes to string -def i2s(s) -> str: +def i2s(s:List[int]) -> str: """convert from a list of integers to an ASCII string""" return ''.join([chr(x) for x in s]) -def swap_nibbles(s:str) -> str: +def swap_nibbles(s:Hexstr) -> Hexstr: """swap the nibbles in a hex string""" return ''.join([x+y for x,y in zip(s[1::2], s[0::2])]) @@ -104,7 +107,7 @@ ei = '%02x' % l + swap_nibbles('%01x%s' % ((oe<<3)|1, rpad(imsi, 15))) return ei -def dec_imsi(ef): +def dec_imsi(ef:Hexstr) -> Optional[str]: """Converts an EF value to the imsi string representation""" if len(ef) < 4: return None @@ -122,10 +125,10 @@ imsi = swapped[1:] return imsi -def dec_iccid(ef): +def dec_iccid(ef:Hexstr) -> str: return swap_nibbles(ef).strip('f') -def enc_iccid(iccid): +def enc_iccid(iccid:str) -> Hexstr: return swap_nibbles(rpad(iccid, 20)) def enc_plmn(mcc, mnc): @@ -151,7 +154,7 @@ return [s[i:i+(nbytes*2)] for i in range(0, len(s), (nbytes*2)) ] # Accepts hex string representing three bytes -def dec_mcc_from_plmn(plmn): +def dec_mcc_from_plmn(plmn:Hexstr) -> int: ia = h2i(plmn) digit1 = ia[0] & 0x0F # 1st byte, LSB digit2 = (ia[0] & 0xF0) >> 4 # 1st byte, MSB @@ -160,7 +163,7 @@ return 0xFFF # 4095 return derive_mcc(digit1, digit2, digit3) -def dec_mnc_from_plmn(plmn): +def dec_mnc_from_plmn(plmn:Hexstr) -> int: ia = h2i(plmn) digit1 = ia[2] & 0x0F # 3rd byte, LSB digit2 = (ia[2] & 0xF0) >> 4 # 3rd byte, MSB @@ -169,7 +172,7 @@ return 0xFFF # 4095 return derive_mnc(digit1, digit2, digit3) -def dec_act(twohexbytes): +def dec_act(twohexbytes:Hexstr) -> List[str]: act_list = [ {'bit': 15, 'name': "UTRAN"}, {'bit': 14, 'name': "E-UTRAN"}, @@ -186,7 +189,7 @@ sel.append(a['name']) return sel -def dec_xplmn_w_act(fivehexbytes): +def dec_xplmn_w_act(fivehexbytes:Hexstr) -> Dict[str,Any]: res = {'mcc': 0, 'mnc': 0, 'act': []} plmn_chars = 6 act_chars = 4 @@ -238,7 +241,7 @@ res['status'] = h2i(hexstr[34:36]) return res -def dec_xplmn(threehexbytes): +def dec_xplmn(threehexbytes:Hexstr) -> dict: res = {'mcc': 0, 'mnc': 0, 'act': []} plmn_chars = 6 plmn_str = threehexbytes[:plmn_chars] # first three bytes (six ascii hex chars) @@ -246,7 +249,7 @@ res['mnc'] = dec_mnc_from_plmn(plmn_str) return res -def format_xplmn(hexstr): +def format_xplmn(hexstr:Hexstr) -> str: s = "" for rec_data in hexstr_to_Nbytearr(hexstr, 3): rec_info = dec_xplmn(rec_data) @@ -257,7 +260,7 @@ s += "\t%s # %s\n" % (rec_data, rec_str) return s -def derive_milenage_opc(ki_hex, op_hex): +def derive_milenage_opc(ki_hex:Hexstr, op_hex:Hexstr) -> Hexstr: """ Run the milenage algorithm to calculate OPC from Ki and OP """ @@ -272,7 +275,7 @@ opc_bytes = aes.encrypt(op_bytes) return b2h(strxor(opc_bytes, op_bytes)) -def calculate_luhn(cc): +def calculate_luhn(cc) -> int: """ Calculate Luhn checksum used in e.g. ICCID and IMEI """ @@ -280,7 +283,7 @@ check_digit = 10 - sum(num[-2::-2] + [sum(divmod(d * 2, 10)) for d in num[::-2]]) % 10 return 0 if check_digit == 10 else check_digit -def mcc_from_imsi(imsi): +def mcc_from_imsi(imsi:str) -> Optional[str]: """ Derive the MCC (Mobile Country Code) from the first three digits of an IMSI """ @@ -292,7 +295,7 @@ else: return None -def mnc_from_imsi(imsi, long=False): +def mnc_from_imsi(imsi:str, long:bool=False) -> Optional[str]: """ Derive the MNC (Mobile Country Code) from the 4th to 6th digit of an IMSI """ @@ -307,7 +310,7 @@ else: return None -def derive_mcc(digit1, digit2, digit3): +def derive_mcc(digit1:int, digit2:int, digit3:int) -> int: """ Derive decimal representation of the MCC (Mobile Country Code) from three given digits. @@ -324,7 +327,7 @@ return mcc -def derive_mnc(digit1, digit2, digit3=0x0f): +def derive_mnc(digit1:int, digit2:int, digit3:int=0x0f) -> int: """ Derive decimal representation of the MNC (Mobile Network Code) from two or (optionally) three given digits. @@ -344,7 +347,7 @@ return mnc -def dec_msisdn(ef_msisdn): +def dec_msisdn(ef_msisdn:Hexstr) -> Optional[Tuple[int,int,Optional[str]]]: """ Decode MSISDN from EF.MSISDN or EF.ADN (same structure). See 3GPP TS 31.102, section 4.2.26 and 4.4.2.3. @@ -385,7 +388,7 @@ return (npi, ton, msisdn) -def enc_msisdn(msisdn, npi=0x01, ton=0x03): +def enc_msisdn(msisdn:str, npi:int=0x01, ton:int=0x03) -> Hexstr: """ Encode MSISDN as LHV so it can be stored to EF.MSISDN. See 3GPP TS 31.102, section 4.2.26 and 4.4.2.3. @@ -411,7 +414,7 @@ return ('%02x' % bcd_len) + ('%02x' % npi_ton) + bcd -def dec_st(st, table="sim"): +def dec_st(st, table="sim") -> str: """ Parses the EF S/U/IST and prints the list of available services in EF S/U/IST """ @@ -599,7 +602,7 @@ return s -def is_hex(string, minlen=2, maxlen=None) -> bool: +def is_hex(string:str, minlen:int=2, maxlen:Optional[int]=None) -> bool: """ Check if a string is a valid hexstring """ @@ -621,7 +624,7 @@ except: return False -def sanitize_pin_adm(pin_adm, pin_adm_hex = None): +def sanitize_pin_adm(pin_adm, pin_adm_hex = None) -> Hexstr: """ The ADM pin can be supplied either in its hexadecimal form or as ascii string. This function checks the supplied opts parameter and @@ -792,7 +795,7 @@ return sw_masked == pattern def tabulate_str_list(str_list, width:int = 79, hspace:int = 2, lspace:int = 1, - align_left:bool = True): + align_left:bool = True) -> str: """Pretty print a list of strings into a tabulated form. Args: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I50a0a07132890af0817f4ff0ce9fec53b7512522 Gerrit-Change-Number: 23594 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Apr 6 16:03:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:30 +0000 Subject: Change in pysim[master]: shell: Move dir, tree, export from ISO7816 to pySim commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23599 ) Change subject: shell: Move dir,tree,export from ISO7816 to pySim commands ...................................................................... shell: Move dir,tree,export from ISO7816 to pySim commands pySim has the notion of command categories. The ISO7816 category should only contain commands such as SELECT or CHV management which really is ISO7816. Custom commands like 'tree' or 'export' are pySim specific and hence go into a different category. Change-Id: Id38c8190c6279d037fe266c586065f1507a02932 --- M pySim-shell.py 1 file changed, 101 insertions(+), 96 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/pySim-shell.py b/pySim-shell.py index ef76cb2..ae8a5a2 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -55,7 +55,7 @@ class PysimApp(cmd2.Cmd): CUSTOM_CATEGORY = 'pySim Commands' def __init__(self, card, rs, script = None): - basic_commands = [Iso7816Commands()] + basic_commands = [Iso7816Commands(), PySimCommands()] super().__init__(persistent_history_file='~/.pysim_shell_history', allow_cli_args=False, use_ipython=True, auto_load_commands=False, command_sets=basic_commands, startup_script=script) self.intro = style('Welcome to pySim-shell!', fg=fg.red) @@ -118,104 +118,11 @@ else: self.poutput("no description available") - - at with_default_category('ISO7816 Commands') -class Iso7816Commands(CommandSet): + at with_default_category('pySim Commands') +class PySimCommands(CommandSet): def __init__(self): super().__init__() - def do_select(self, opts): - """SELECT a File (ADF/DF/EF)""" - if len(opts.arg_list) == 0: - path_list = self._cmd.rs.selected_file.fully_qualified_path(True) - path_list_fid = self._cmd.rs.selected_file.fully_qualified_path(False) - self._cmd.poutput("currently selected file: " + '/'.join(path_list) + " (" + '/'.join(path_list_fid) + ")") - return - - path = opts.arg_list[0] - fcp_dec = self._cmd.rs.select(path, self._cmd) - self._cmd.update_prompt() - self._cmd.poutput(json.dumps(fcp_dec, indent=4)) - - def complete_select(self, text, line, begidx, endidx) -> List[str]: - """Command Line tab completion for SELECT""" - index_dict = { 1: self._cmd.rs.selected_file.get_selectable_names() } - return self._cmd.index_based_complete(text, line, begidx, endidx, index_dict=index_dict) - - def get_code(self, code): - """Use code either directly or try to get it from external data source""" - auto = ('PIN1', 'PIN2', 'PUK1', 'PUK2') - - if str(code).upper() not in auto: - return sanitize_pin_adm(code) - - result = card_key_provider_get_field(str(code), key='ICCID', value=self._cmd.iccid) - result = sanitize_pin_adm(result) - if result: - self._cmd.poutput("found %s '%s' for ICCID '%s'" % (code.upper(), result, self._cmd.iccid)) - else: - self._cmd.poutput("cannot find %s for ICCID '%s'" % (code.upper(), self._cmd.iccid)) - return result - - verify_chv_parser = argparse.ArgumentParser() - verify_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') - verify_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') - - @cmd2.with_argparser(verify_chv_parser) - def do_verify_chv(self, opts): - """Verify (authenticate) using specified PIN code""" - pin = self.get_code(opts.pin_code) - (data, sw) = self._cmd.card._scc.verify_chv(opts.pin_nr, h2b(pin)) - self._cmd.poutput("CHV verfication successful") - - unblock_chv_parser = argparse.ArgumentParser() - unblock_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') - unblock_chv_parser.add_argument('puk_code', type=str, help='PUK code digits \"PUK1\" or \"PUK2\" to get PUK code from external data source') - unblock_chv_parser.add_argument('new_pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') - - @cmd2.with_argparser(unblock_chv_parser) - def do_unblock_chv(self, opts): - """Unblock PIN code using specified PUK code""" - new_pin = self.get_code(opts.new_pin_code) - puk = self.get_code(opts.puk_code) - (data, sw) = self._cmd.card._scc.unblock_chv(opts.pin_nr, h2b(puk), h2b(new_pin)) - self._cmd.poutput("CHV unblock successful") - - change_chv_parser = argparse.ArgumentParser() - change_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') - change_chv_parser.add_argument('pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') - change_chv_parser.add_argument('new_pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') - - @cmd2.with_argparser(change_chv_parser) - def do_change_chv(self, opts): - """Change PIN code to a new PIN code""" - new_pin = self.get_code(opts.new_pin_code) - pin = self.get_code(opts.pin_code) - (data, sw) = self._cmd.card._scc.change_chv(opts.pin_nr, h2b(pin), h2b(new_pin)) - self._cmd.poutput("CHV change successful") - - disable_chv_parser = argparse.ArgumentParser() - disable_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') - disable_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') - - @cmd2.with_argparser(disable_chv_parser) - def do_disable_chv(self, opts): - """Disable PIN code using specified PIN code""" - pin = self.get_code(opts.pin_code) - (data, sw) = self._cmd.card._scc.disable_chv(opts.pin_nr, h2b(pin)) - self._cmd.poutput("CHV disable successful") - - enable_chv_parser = argparse.ArgumentParser() - enable_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') - enable_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') - - @cmd2.with_argparser(enable_chv_parser) - def do_enable_chv(self, opts): - """Enable PIN code using specified PIN code""" - pin = self.get_code(opts.pin_code) - (data, sw) = self._cmd.card._scc.enable_chv(opts.pin_nr, h2b(pin)) - self._cmd.poutput("CHV enable successful") - dir_parser = argparse.ArgumentParser() dir_parser.add_argument('--fids', help='Show file identifiers', action='store_true') dir_parser.add_argument('--names', help='Show file names', action='store_true') @@ -347,6 +254,104 @@ raise RuntimeError("unable to export %i file(s)" % context['ERR']) + at with_default_category('ISO7816 Commands') +class Iso7816Commands(CommandSet): + def __init__(self): + super().__init__() + + def do_select(self, opts): + """SELECT a File (ADF/DF/EF)""" + if len(opts.arg_list) == 0: + path_list = self._cmd.rs.selected_file.fully_qualified_path(True) + path_list_fid = self._cmd.rs.selected_file.fully_qualified_path(False) + self._cmd.poutput("currently selected file: " + '/'.join(path_list) + " (" + '/'.join(path_list_fid) + ")") + return + + path = opts.arg_list[0] + fcp_dec = self._cmd.rs.select(path, self._cmd) + self._cmd.update_prompt() + self._cmd.poutput(json.dumps(fcp_dec, indent=4)) + + def complete_select(self, text, line, begidx, endidx) -> List[str]: + """Command Line tab completion for SELECT""" + index_dict = { 1: self._cmd.rs.selected_file.get_selectable_names() } + return self._cmd.index_based_complete(text, line, begidx, endidx, index_dict=index_dict) + + def get_code(self, code): + """Use code either directly or try to get it from external data source""" + auto = ('PIN1', 'PIN2', 'PUK1', 'PUK2') + + if str(code).upper() not in auto: + return sanitize_pin_adm(code) + + result = card_key_provider_get_field(str(code), key='ICCID', value=self._cmd.iccid) + result = sanitize_pin_adm(result) + if result: + self._cmd.poutput("found %s '%s' for ICCID '%s'" % (code.upper(), result, self._cmd.iccid)) + else: + self._cmd.poutput("cannot find %s for ICCID '%s'" % (code.upper(), self._cmd.iccid)) + return result + + verify_chv_parser = argparse.ArgumentParser() + verify_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + verify_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(verify_chv_parser) + def do_verify_chv(self, opts): + """Verify (authenticate) using specified PIN code""" + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.verify_chv(opts.pin_nr, h2b(pin)) + self._cmd.poutput("CHV verfication successful") + + unblock_chv_parser = argparse.ArgumentParser() + unblock_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + unblock_chv_parser.add_argument('puk_code', type=str, help='PUK code digits \"PUK1\" or \"PUK2\" to get PUK code from external data source') + unblock_chv_parser.add_argument('new_pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(unblock_chv_parser) + def do_unblock_chv(self, opts): + """Unblock PIN code using specified PUK code""" + new_pin = self.get_code(opts.new_pin_code) + puk = self.get_code(opts.puk_code) + (data, sw) = self._cmd.card._scc.unblock_chv(opts.pin_nr, h2b(puk), h2b(new_pin)) + self._cmd.poutput("CHV unblock successful") + + change_chv_parser = argparse.ArgumentParser() + change_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + change_chv_parser.add_argument('pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') + change_chv_parser.add_argument('new_pin_code', type=str, help='PIN code digits \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(change_chv_parser) + def do_change_chv(self, opts): + """Change PIN code to a new PIN code""" + new_pin = self.get_code(opts.new_pin_code) + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.change_chv(opts.pin_nr, h2b(pin), h2b(new_pin)) + self._cmd.poutput("CHV change successful") + + disable_chv_parser = argparse.ArgumentParser() + disable_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + disable_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(disable_chv_parser) + def do_disable_chv(self, opts): + """Disable PIN code using specified PIN code""" + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.disable_chv(opts.pin_nr, h2b(pin)) + self._cmd.poutput("CHV disable successful") + + enable_chv_parser = argparse.ArgumentParser() + enable_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PIN Number, 1=PIN1, 2=PIN2 or custom value (decimal)') + enable_chv_parser.add_argument('pin_code', type=str, help='PIN code digits, \"PIN1\" or \"PIN2\" to get PIN code from external data source') + + @cmd2.with_argparser(enable_chv_parser) + def do_enable_chv(self, opts): + """Enable PIN code using specified PIN code""" + pin = self.get_code(opts.pin_code) + (data, sw) = self._cmd.card._scc.enable_chv(opts.pin_nr, h2b(pin)) + self._cmd.poutput("CHV enable successful") + + def parse_options(): parser = OptionParser(usage="usage: %prog [options]") -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id38c8190c6279d037fe266c586065f1507a02932 Gerrit-Change-Number: 23599 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Apr 6 16:03:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:30 +0000 Subject: Change in pysim[master]: docs: Initial documentation for pySim-shell In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23600 ) Change subject: docs: Initial documentation for pySim-shell ...................................................................... docs: Initial documentation for pySim-shell Many bits and pieces are still missing, but it's better than nothing... Change-Id: I19fd56aed251d064f3e5d37ffad39c1e3e39989e --- M docs/shell.rst 1 file changed, 227 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/docs/shell.rst b/docs/shell.rst index f9a2c82..314f633 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -1,2 +1,229 @@ pySim-shell =========== + +pySim-shell is an interactive command line shell for all kind of interactions with SIM cards. + +The interactive shell provides command for + +* navigating the on-card filesystem hierarchy +* authenticating with PINs such as ADM1 +* CHV/PIN management (VERIFY, ENABLE, DISABLE, UNBLOCK) +* decoding of SELECT response (file control parameters) +* reading and writing of files and records in raw, hex-encoded binary format +* for some files where related support has been developed: + + * decoded reading (display file data in JSON format) + * decoded writing (encode from JSON to binary format, then write) + +By means of using the python ``cmd2`` module, various useful features improve usability: + +* history of commands (persistent across restarts) +* output re-direction to files on your computer +* output piping through external tools like 'grep' +* tab completion of commands and SELECT-able files/directories +* interactive help for all commands + + +cmd2 basics +----------- + +FIXME + + + +ISO7816 commands +---------------- + +This category of commands relates to commands that originate in the ISO 7861-4 specifications, +most of them have a 1:1 resemblance in the specification. + +select +~~~~~~ + +The ``select`` command is used to select a file, either by its FID, AID or by its symbolic name. + +Try ``select`` with tab-completion to get a list of all current selectable items: + +:: + + pySIM-shell (MF)> select + .. 2fe2 a0000000871004 EF.ARR MF + 2f00 3f00 ADF.ISIM EF.DIR + 2f05 7f10 ADF.USIM EF.ICCID + 2f06 7f20 DF.GSM EF.PL + 2f08 a0000000871002 DF.TELECOM EF.UMPC + +Use ``select`` with a specific FID or name to select the new file. + +This will + +* output the [JSON decoded, if possible] select response +* change the prompt to the newly selected file +* enable any commands specific to the newly-selected file + +:: + + pySIM-shell (MF)> select ADF.USIM + { + "file_descriptor": { + "shareable": true, + "file_type": "df", + "structure": "no_info_given" + }, + "df_name": "A0000000871002FFFFFFFF8907090000", + "proprietary_info": { + "uicc_characteristics": "71", + "available_memory": 101640 + }, + "life_cycle_status_int": "operational_activated", + "security_attrib_compact": "00", + "pin_status_template_do": "90017083010183018183010A83010B" + } + pySIM-shell (MF/ADF.USIM)> + + + +change_chv +~~~~~~~~~~ + +This command allows you to change a CHV (PIN). + + +disable_chv +~~~~~~~~~~~ + +This command allows you to disable a CHV (PIN). + +enable_chv +~~~~~~~~~~ + +This command allows you to enable a CHV (PIN). + + +unblock_chv +~~~~~~~~~~~ + +This command allows you to unblock a CHV (PIN) using the PUK. + +verify_chv +~~~~~~~~~~ + +This command allows you to verify a CHV (PIN), which is how the specifications call +it if you authenticate yourself with the said CHV/PIN. + + + +pySim commands +-------------- + +Commands in this category are pySim specific; they do not have a 1:1 correspondence to ISO 7816 +or 3GPP commands. Mostly they will operate either only on local (in-memory) state, or execute +a complex sequence of card-commands. + +desc +~~~~ + +Display human readable file description for the currently selected file. + + +dir +~~~ + +:: + + usage: dir [-h] [--fids] [--names] [--apps] [--all] + + Show a listing of files available in currently selected DF or MF + + optional arguments: + -h, --help show this help message and exit + --fids Show file identifiers + --names Show file names + --apps Show applications + --all Show all selectable identifiers and names + + +export +~~~~~~ + +tree +~~~~ + +verify_adm +~~~~~~~~~~ + + + +Linear Fixed EF commands +------------------------ + +These commands become enabled only when your currently selected file is of *Linear Fixed EF* type. + +read_record +~~~~~~~~~~~ + +read_record_decoded +~~~~~~~~~~~~~~~~~~~ + +update_record +~~~~~~~~~~~~~ + +update_record_decoded +~~~~~~~~~~~~~~~~~~~~~ + + + +Transparent EF commands +----------------------- + +These commands become enabled only when your currently selected file is of *Transparent EF* type. + + +read_binary +~~~~~~~~~~~ + +read_binary_decoded +~~~~~~~~~~~~~~~~~~~ + +update_binary +~~~~~~~~~~~~~ + +update_binary_decoded +~~~~~~~~~~~~~~~~~~~~~ + + + +cmd2 settable parameters +------------------------ + +``cmd2`` has the concept of *settable parameters* which act a bit like environment variables in an OS-level +shell: They can be read and set, and they will influence the behavior somehow. + +conserve_write +~~~~~~~~~~~~~~ + +If enabled, pySim will (when asked to write to a card) always first read the respective file/record and +verify if the to-be-written value differs from the current on-card value. If not, the write will be skipped. +Writes will only be performed if the new value is different from the current on-card value. + +If disabled, pySim will always write irrespective of the current/new value. + +debug +~~~~~ + +If enabled, full python back-traces will be displayed in case of exceptions + +numeric_path +~~~~~~~~~~~~ + +Boolean variable that determines if path (e.g. in prompt) is displayed with numeric FIDs or string names. + +:: + + pySIM-shell (MF/EF.ICCID)> set numeric_path True + numeric_path - was: False + now: True + pySIM-shell (3f00/2fe2)> set numeric_path False + numeric_path - was: True + now: False + pySIM-shell (MF/EF.ICCID)> help set -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I19fd56aed251d064f3e5d37ffad39c1e3e39989e Gerrit-Change-Number: 23600 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 16:03:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:31 +0000 Subject: Change in pysim[master]: transport: Pass status word interpreter to exception handler In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23601 ) Change subject: transport: Pass status word interpreter to exception handler ...................................................................... transport: Pass status word interpreter to exception handler Prior to this patch, any SwMatchError raised within the 'transport' would not be interpreted. EXCEPTION of type 'SwMatchError' occurred with message: 'SW match failed! Expected 9000 and got 6982.' vs (now) EXCEPTION of type 'SwMatchError' occurred with message: 'SW match failed! Expected 9000 and got 6982: Command not allowed - Security status not satisfied' Change-Id: I08b7f2b6bd422f7f2f36094bc8a29b187ff882a6 --- M pySim-shell.py M pySim/transport/__init__.py 2 files changed, 9 insertions(+), 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/pySim-shell.py b/pySim-shell.py index ae8a5a2..e73ec35 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -433,6 +433,8 @@ profile.add_application(CardApplicationISIM) rs = RuntimeState(card, profile) + # inform the transport that we can do context-specific SW interpretation + sl.set_sw_interpreter(rs) # FIXME: do this dynamically rs.mf.add_file(DF_TELECOM()) diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 24d7521..fb8f31d 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -28,6 +28,12 @@ class LinkBase(object): """Base class for link/transport to card.""" + sw_interpreter = None + + def set_sw_interpreter(self, interp): + """Set an (optional) status word interpreter.""" + self.sw_interpreter = interp + def wait_for_card(self, timeout:int=None, newcardonly:bool=False): """Wait for a card and connect to it @@ -103,7 +109,7 @@ rv = self.send_apdu(pdu) if not sw_match(rv[1], sw): - raise SwMatchError(rv[1], sw.lower()) + raise SwMatchError(rv[1], sw.lower(), self.sw_interpreter) return rv def init_reader(opts) -> Optional[LinkBase]: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I08b7f2b6bd422f7f2f36094bc8a29b187ff882a6 Gerrit-Change-Number: 23601 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Apr 6 16:03:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 16:03:31 +0000 Subject: Change in pysim[master]: Introduce setuptools support In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23602 ) Change subject: Introduce setuptools support ...................................................................... Introduce setuptools support Add a pyproject.toml and setup.py for using setuptools to install pySim and its upstream dependencies. Change-Id: I5698f3b29184340db69a156f985aa3c78d9b5674 --- A pyproject.toml A setup.py 2 files changed, 25 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..9787c3b --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..d9f742c --- /dev/null +++ b/setup.py @@ -0,0 +1,22 @@ +from setuptools import setup + +setup( + name='pySim', + version='1.0', + packages=['pySim'], + url='https://osmocom.org/projects/pysim/wiki', + license='GPLv2', + author_email='simtrace at lists.osmocom.org', + description='Tools related to SIM/USIM/ISIM cards', + install_requires=[ + "pyscard", + "serial", + "pytlv", + "cmd2" + ], + scripts=[ + 'pySim-prog.py', + 'pySim-read.py', + 'pySim-shell.py' + ] +) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I5698f3b29184340db69a156f985aa3c78d9b5674 Gerrit-Change-Number: 23602 Gerrit-PatchSet: 2 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 Tue Apr 6 16:31:43 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 6 Apr 2021 16:31:43 +0000 Subject: Change in libosmocore[master]: stat_item: make value ids item specific In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23508 ) Change subject: stat_item: make value ids item specific ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stat_item.c File src/stat_item.c: https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stat_item.c at 280 PS1, Line 280: return 0; > It doesn't call osmo_stats_discard_all() here, because osmo_stats_discard_all() uses item->stats_nex [?] In that case I would bump the log level above up to error (or at least notice) and maybe also log that this function is a nop. There is no reason to use this function and using it will do nothing. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f Gerrit-Change-Number: 23508 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 16:31:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 16:42:29 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 6 Apr 2021 16:42:29 +0000 Subject: Change in pysim[master]: test please ignore In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/23653 ) Change subject: test please ignore ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I61b5d278d437f66ee08120c416590fca47ced0b1 Gerrit-Change-Number: 23653 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 16:43:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 16:43:28 +0000 Subject: Change in osmo-gsm-manuals[master]: common/chapters: extend gb/ns2 chapters In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 ) Change subject: common/chapters: extend gb/ns2 chapters ...................................................................... Patch Set 4: (9 comments) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc File common/chapters/gb-ns2.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 13 PS4, Line 13: There are a multiple Looks odd to me, maybe "there exist multiple ..."? https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 62 PS4, Line 62: hdlcX consistency: `hdlcX` https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 96 PS4, Line 96: SNS-WEIGHT procedures missing dot ending sentence https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 124 PS4, Line 124: * No use of the NS-RESET, NS-BLOCK or NS-UNBLOCK procedures missing dot ending sentence https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 158 PS4, Line 158: parts parts: * foo, * bar, * zoo. (punctuation) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 171 PS4, Line 171: represent represents https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 172 PS4, Line 172: by via the VTY? https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 180 PS4, Line 180: persitant persistent https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 185 PS4, Line 185: describe describes -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 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: I902b850528cbc04bd469590babd84cccf64300e8 Gerrit-Change-Number: 23393 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 06 Apr 2021 16:43: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 Tue Apr 6 16:53:26 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 6 Apr 2021 16:53:26 +0000 Subject: Change in pysim[master]: commands, ts_102_221: replace pytlv with uttlv In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, merlinchlosta, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23483 to look at the new patch set (#5). Change subject: commands, ts_102_221: replace pytlv with uttlv ...................................................................... commands, ts_102_221: replace pytlv with uttlv pytlv requires to tell it all expected tags in a TLV string that is going to be parsed. This often causes problems since TLV is by design extensible, so newer specifications may add additional tags which our code then would not tolerate. uttlv does not have such a limitation, pre defining the tags in advance is optional here. Lets use uttlv from now on. Change-Id: I971b818836aff2fbeb6769f819d496cee4bfa7cf Related: OS#4963 --- M README.md M contrib/jenkins.sh M pySim/cards.py M pySim/commands.py A pySim/tlvutils.py M pySim/ts_102_221.py M requirements.txt 7 files changed, 72 insertions(+), 52 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/83/23483/5 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I971b818836aff2fbeb6769f819d496cee4bfa7cf Gerrit-Change-Number: 23483 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: merlinchlosta Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 16:57:47 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 6 Apr 2021 16:57:47 +0000 Subject: Change in pysim[master]: commands, ts_102_221: replace pytlv with uttlv In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, merlinchlosta, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23483 to look at the new patch set (#6). Change subject: commands, ts_102_221: replace pytlv with uttlv ...................................................................... commands, ts_102_221: replace pytlv with uttlv pytlv requires to tell it all expected tags in a TLV string that is going to be parsed. This often causes problems since TLV is by design extensible, so newer specifications may add additional tags which our code then would not tolerate. uttlv does not have such a limitation, pre defining the tags in advance is optional here. Lets use uttlv from now on. Change-Id: I971b818836aff2fbeb6769f819d496cee4bfa7cf Related: OS#4963 --- M README.md M contrib/jenkins.sh M pySim/cards.py M pySim/commands.py A pySim/tlvutils.py M pySim/ts_102_221.py M requirements.txt 7 files changed, 72 insertions(+), 52 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/83/23483/6 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I971b818836aff2fbeb6769f819d496cee4bfa7cf Gerrit-Change-Number: 23483 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: merlinchlosta Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 18:21:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 18:21:07 +0000 Subject: Change in pysim[master]: pySim-shell: Add '--oneline' to read_{binary, record}_decoded References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23657 ) Change subject: pySim-shell: Add '--oneline' to read_{binary,record}_decoded ...................................................................... pySim-shell: Add '--oneline' to read_{binary,record}_decoded This allows for single-line output, rather than the default JSON pretty-printing Change-Id: I08e0e7b6f0d796626f4d6c3e9a2622c1ee0c210a --- M pySim/filesystem.py 1 file changed, 16 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/57/23657/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 3eea2f4..73348e1 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -397,10 +397,18 @@ (data, sw) = self._cmd.rs.read_binary(opts.length, opts.offset) self._cmd.poutput(data) + read_bin_dec_parser = argparse.ArgumentParser() + read_bin_dec_parser.add_argument('--oneline', action='store_true', + help='No JSON pretty-printing, dump as a single line') + @cmd2.with_argparser(read_bin_dec_parser) def do_read_binary_decoded(self, opts): """Read + decode data from a transparent EF""" (data, sw) = self._cmd.rs.read_binary_dec() - self._cmd.poutput(json.dumps(data, indent=4)) + if opts.oneline: + output = json.dumps(data) + else: + output = json.dumps(data, indent=4) + self._cmd.poutput(output) upd_bin_parser = argparse.ArgumentParser() upd_bin_parser.add_argument('--offset', type=int, default=0, help='Byte offset for start of read') @@ -549,11 +557,17 @@ read_rec_dec_parser = argparse.ArgumentParser() read_rec_dec_parser.add_argument('record_nr', type=int, help='Number of record to be read') + read_rec_dec_parser.add_argument('--oneline', action='store_true', + help='No JSON pretty-printing, dump as a single line') @cmd2.with_argparser(read_rec_dec_parser) def do_read_record_decoded(self, opts): """Read + decode a record from a record-oriented EF""" (data, sw) = self._cmd.rs.read_record_dec(opts.record_nr) - self._cmd.poutput(json.dumps(data, indent=4)) + if opts.oneline: + output = json.dumps(data) + else: + output = json.dumps(data, indent=4) + self._cmd.poutput(output) upd_rec_parser = argparse.ArgumentParser() upd_rec_parser.add_argument('record_nr', type=int, help='Number of record to be read') -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I08e0e7b6f0d796626f4d6c3e9a2622c1ee0c210a Gerrit-Change-Number: 23657 Gerrit-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 Apr 6 18:21:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 18:21:07 +0000 Subject: Change in pysim[master]: ts_51_011: Full encoder/decoder for EF.AD References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23658 ) Change subject: ts_51_011: Full encoder/decoder for EF.AD ...................................................................... ts_51_011: Full encoder/decoder for EF.AD The EF.AD class only had a partial decoder and no encoder before this patch. You can now do things like pySIM-shell (MF/ADF.USIM/EF.AD)> read_binary_decoded { "ms_operation_mode": "normal_and_specific_facilities", "specific_facilities": { "ofm": false }, "len_of_mnc_in_imsi": 2 } pySIM-shell (MF/ADF.USIM/EF.AD)> update_binary_decoded '{"ms_operation_mode": "normal_and_specific_facilities", "specific_facilities": {"ofm": false}, "len_of_mnc_in_imsi": 3}' not quite all that elegant yet, but working at all. Change-Id: Id2cb66cb26b6bd08befe9f8468b0b0773da842b1 --- M pySim/ts_51_011.py 1 file changed, 18 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/58/23658/1 diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index a671f31..bd71114 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -502,17 +502,29 @@ # TS 51.011 Section 10.3.18 class EF_AD(TransparentEF): OP_MODE = { - 0x00: 'normal operation', - 0x80: 'type approval operations', - 0x01: 'normal operation + specific facilities', - 0x81: 'type approval + specific facilities', - 0x02: 'maintenance (off line)', - 0x04: 'cell test operation', + 0x00: 'normal', + 0x80: 'type_approval', + 0x01: 'normal_and_specific_facilities', + 0x81: 'type_approval_and_specific_facilities', + 0x02: 'maintenance_off_line', + 0x04: 'cell_test', } + OP_MODE_reverse = dict(map(reversed, OP_MODE.items())) def __init__(self, fid='6fad', sfid=None, name='EF.AD', desc='Administrative Data', size={3,4}): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) def _decode_bin(self, raw_bin): u = unpack('!BH', raw_bin[:3]) + ofm = True if u[1] & 1 else False + res = {'ms_operation_mode': self.OP_MODE.get(u[0], u[0]), 'specific_facilities': { 'ofm': ofm } } + if len(raw_bin) > 3: + res['len_of_mnc_in_imsi'] = int(raw_bin[3]) & 0xf + return res + def _encode_bin(self, abstract): + op_mode = self.OP_MODE_reverse[abstract['ms_operation_mode']] + res = pack('!BH', op_mode, abstract['specific_facilities']['ofm']) + if 'len_of_mnc_in_imsi' in abstract: + res += pack('!B', abstract['len_of_mnc_in_imsi']) + return res # TS 51.011 Section 10.3.13 class EF_CBMID(EF_CBMI): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2cb66cb26b6bd08befe9f8468b0b0773da842b1 Gerrit-Change-Number: 23658 Gerrit-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 Apr 6 18:23:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 18:23:17 +0000 Subject: Change in pysim[master]: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... Patch Set 6: I've now added the missing support to pySim-shell in https://gerrit.osmocom.org/c/pysim/+/23658 If you still think it is important to add this also to pySim-prog, we can go ahead with it. I personally think all new features must be supported in pySim-shell, which is much more general and flexible in terms of supportin the quadrillion of parameters in all the sim/usim/isim files... -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 6 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 18:23: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 Apr 6 18:49:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 18:49:58 +0000 Subject: Change in pysim[master]: Py2 -> Py3: do not inherit classes from 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/pysim/+/23633 to look at the new patch set (#2). Change subject: Py2 -> Py3: do not inherit classes from object ...................................................................... Py2 -> Py3: do not inherit classes from object https://stackoverflow.com/questions/4015417/why-do-python-classes-inherit-object/45062077 Change-Id: I15003ba591510d68f3235f71526ad5d8a456088e --- A pySim/card_data.py M pySim/card_key_provider.py M pySim/cards.py M pySim/commands.py M pySim/filesystem.py M pySim/transport/__init__.py M pySim/transport/calypso.py 7 files changed, 123 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/33/23633/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I15003ba591510d68f3235f71526ad5d8a456088e Gerrit-Change-Number: 23633 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 Apr 6 19:13:53 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Tue, 6 Apr 2021 19:13:53 +0000 Subject: Change in pysim[master]: ts_51_011: Full encoder/decoder for EF.AD In-Reply-To: References: Message-ID: Robert Falkenberg has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23658 ) Change subject: ts_51_011: Full encoder/decoder for EF.AD ...................................................................... Patch Set 1: Looks good. Don't know how to vote V+1. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2cb66cb26b6bd08befe9f8468b0b0773da842b1 Gerrit-Change-Number: 23658 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Robert Falkenberg Gerrit-Reviewer: dexter Gerrit-Comment-Date: Tue, 06 Apr 2021 19:13:53 +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 Apr 6 19:15:01 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Tue, 6 Apr 2021 19:15:01 +0000 Subject: Change in pysim[master]: ts_51_011: Full encoder/decoder for EF.AD In-Reply-To: References: Message-ID: Robert Falkenberg has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23658 ) Change subject: ts_51_011: Full encoder/decoder for EF.AD ...................................................................... Patch Set 1: > Patch Set 1: > > Looks good. Don't know how to vote ~~V+1~~. CR+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2cb66cb26b6bd08befe9f8468b0b0773da842b1 Gerrit-Change-Number: 23658 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Robert Falkenberg Gerrit-Reviewer: dexter Gerrit-Comment-Date: Tue, 06 Apr 2021 19:15:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 19:16:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:16:25 +0000 Subject: Change in pysim[master]: docs/shell.rst: Auto-generate shell command reference 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/+/23606 to look at the new patch set (#3). Change subject: docs/shell.rst: Auto-generate shell command reference ...................................................................... docs/shell.rst: Auto-generate shell command reference We use a slightly modified version of sphinx-argparse (with patch https://github.com/alex-rudakov/sphinx-argparse/pull/136 applied) in order to generate the command reference for each shell command in the manual. As the upstream repository seems unmaintained for ~2 years, let's use the osmocom 'fork' with that above-mentioned patch applied. Change-Id: I134f267cf53c7ecbc8cbfb33a8766d63bf4a8582 --- M contrib/jenkins.sh M docs/conf.py M docs/shell.rst 3 files changed, 58 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/06/23606/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I134f267cf53c7ecbc8cbfb33a8766d63bf4a8582 Gerrit-Change-Number: 23606 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 Apr 6 19:16:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:16:26 +0000 Subject: Change in pysim[master]: pySim-shell: Add settable parameter on JSON pretty-printing References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23659 ) Change subject: pySim-shell: Add settable parameter on JSON pretty-printing ...................................................................... pySim-shell: Add settable parameter on JSON pretty-printing Change-Id: Ic095c96733de2b0f359bfe067cd719d38712faff --- M docs/shell.rst M pySim-shell.py M pySim/filesystem.py 3 files changed, 21 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/59/23659/1 diff --git a/docs/shell.rst b/docs/shell.rst index 314f633..ddb21d5 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -208,6 +208,14 @@ If disabled, pySim will always write irrespective of the current/new value. +json_pretty_print +~~~~~~~~~~~~~~~~~ + +This parameter determines if generated JSON output should (by default) be pretty-printed (multi-line +output with indent level of 4 spaces) or not. + +The default value of this parameter is 'true'. + debug ~~~~~ diff --git a/pySim-shell.py b/pySim-shell.py index e73ec35..7f48d58 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -72,6 +72,16 @@ self.add_settable(cmd2.Settable('conserve_write', bool, 'Read and compare before write', onchange_cb=self._onchange_conserve_write)) self.update_prompt() + self.json_pretty_print = True + self.add_settable(cmd2.Settable('json_pretty_print', bool, 'Pretty-Print JSON output')) + + def poutput_json(self, data, force_no_pretty = False): + """line cmd2.putput() but for a json serializable dict.""" + if force_no_pretty or self.json_pretty_print == False: + output = json.dumps(data) + else: + output = json.dumps(data, indent=4) + self.poutput(output) def _onchange_numeric_path(self, param_name, old, new): self.update_prompt() diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 73348e1..ab9b2f3 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -404,11 +404,7 @@ def do_read_binary_decoded(self, opts): """Read + decode data from a transparent EF""" (data, sw) = self._cmd.rs.read_binary_dec() - if opts.oneline: - output = json.dumps(data) - else: - output = json.dumps(data, indent=4) - self._cmd.poutput(output) + self._cmd.poutput_json(data, opts.oneline) upd_bin_parser = argparse.ArgumentParser() upd_bin_parser.add_argument('--offset', type=int, default=0, help='Byte offset for start of read') @@ -428,7 +424,7 @@ data_json = json.loads(opts.data) (data, sw) = self._cmd.rs.update_binary_dec(data_json) if data: - self._cmd.poutput(json.dumps(data, indent=4)) + self._cmd.poutput_json(data) def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None, size={1,None}): @@ -563,11 +559,7 @@ def do_read_record_decoded(self, opts): """Read + decode a record from a record-oriented EF""" (data, sw) = self._cmd.rs.read_record_dec(opts.record_nr) - if opts.oneline: - output = json.dumps(data) - else: - output = json.dumps(data, indent=4) - self._cmd.poutput(output) + self._cmd.poutput_json(data, opts.oneline) upd_rec_parser = argparse.ArgumentParser() upd_rec_parser.add_argument('record_nr', type=int, help='Number of record to be read') -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23659 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic095c96733de2b0f359bfe067cd719d38712faff Gerrit-Change-Number: 23659 Gerrit-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 Apr 6 19:29:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:29:50 +0000 Subject: Change in pysim[master]: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23652 ) Change subject: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d Gerrit-Change-Number: 23652 Gerrit-PatchSet: 2 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 06 Apr 2021 19:29: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 Apr 6 19:30:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:30:14 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23631 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 3 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 06 Apr 2021 19:30: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 Apr 6 19:32:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:32:19 +0000 Subject: Change in pysim[master]: Py2 -> Py3: do not inherit classes from object In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23633 ) Change subject: Py2 -> Py3: do not inherit classes from object ...................................................................... Patch Set 2: thanks, but I fail in which way inheriting 'object' hurts us in any way? Adding this patch to a project with very active development activity right now (by phillip, myself and several external contributors right now) will create merge conflicts for now good reaosn. Sorry :/ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I15003ba591510d68f3235f71526ad5d8a456088e Gerrit-Change-Number: 23633 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 19:32: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 Apr 6 19:32:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:32:45 +0000 Subject: Change in pysim[master]: pySim-shell: Add '--oneline' to read_{binary, record}_decoded In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23657 ) Change subject: pySim-shell: Add '--oneline' to read_{binary,record}_decoded ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I08e0e7b6f0d796626f4d6c3e9a2622c1ee0c210a Gerrit-Change-Number: 23657 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 19:32: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 Apr 6 19:32:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:32:49 +0000 Subject: Change in pysim[master]: ts_51_011: Full encoder/decoder for EF.AD In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23658 ) Change subject: ts_51_011: Full encoder/decoder for EF.AD ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2cb66cb26b6bd08befe9f8468b0b0773da842b1 Gerrit-Change-Number: 23658 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Robert Falkenberg Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 19: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 Tue Apr 6 19:33:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:33:02 +0000 Subject: Change in pysim[master]: pySim-shell: Add settable parameter on JSON pretty-printing In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23659 ) Change subject: pySim-shell: Add settable parameter on JSON pretty-printing ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23659 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic095c96733de2b0f359bfe067cd719d38712faff Gerrit-Change-Number: 23659 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 19:33: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 Apr 6 19:33:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:33:09 +0000 Subject: Change in pysim[master]: docs/shell.rst: Auto-generate shell command reference In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23606 ) Change subject: docs/shell.rst: Auto-generate shell command reference ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I134f267cf53c7ecbc8cbfb33a8766d63bf4a8582 Gerrit-Change-Number: 23606 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 19: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 Apr 6 19:33:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:33:12 +0000 Subject: Change in pysim[master]: docs: Documentation for classic pySim-{prog, read} tools In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23607 ) Change subject: docs: Documentation for classic pySim-{prog,read} tools ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic1932e62a5d7cf33e0dd74cb071cfa7f27c6e497 Gerrit-Change-Number: 23607 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 19:33: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 Apr 6 19:33:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:33:14 +0000 Subject: Change in pysim[master]: pySim-shell: Add '--oneline' to read_{binary, record}_decoded In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23657 ) Change subject: pySim-shell: Add '--oneline' to read_{binary,record}_decoded ...................................................................... pySim-shell: Add '--oneline' to read_{binary,record}_decoded This allows for single-line output, rather than the default JSON pretty-printing Change-Id: I08e0e7b6f0d796626f4d6c3e9a2622c1ee0c210a --- M pySim/filesystem.py 1 file changed, 16 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 3eea2f4..73348e1 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -397,10 +397,18 @@ (data, sw) = self._cmd.rs.read_binary(opts.length, opts.offset) self._cmd.poutput(data) + read_bin_dec_parser = argparse.ArgumentParser() + read_bin_dec_parser.add_argument('--oneline', action='store_true', + help='No JSON pretty-printing, dump as a single line') + @cmd2.with_argparser(read_bin_dec_parser) def do_read_binary_decoded(self, opts): """Read + decode data from a transparent EF""" (data, sw) = self._cmd.rs.read_binary_dec() - self._cmd.poutput(json.dumps(data, indent=4)) + if opts.oneline: + output = json.dumps(data) + else: + output = json.dumps(data, indent=4) + self._cmd.poutput(output) upd_bin_parser = argparse.ArgumentParser() upd_bin_parser.add_argument('--offset', type=int, default=0, help='Byte offset for start of read') @@ -549,11 +557,17 @@ read_rec_dec_parser = argparse.ArgumentParser() read_rec_dec_parser.add_argument('record_nr', type=int, help='Number of record to be read') + read_rec_dec_parser.add_argument('--oneline', action='store_true', + help='No JSON pretty-printing, dump as a single line') @cmd2.with_argparser(read_rec_dec_parser) def do_read_record_decoded(self, opts): """Read + decode a record from a record-oriented EF""" (data, sw) = self._cmd.rs.read_record_dec(opts.record_nr) - self._cmd.poutput(json.dumps(data, indent=4)) + if opts.oneline: + output = json.dumps(data) + else: + output = json.dumps(data, indent=4) + self._cmd.poutput(output) upd_rec_parser = argparse.ArgumentParser() upd_rec_parser.add_argument('record_nr', type=int, help='Number of record to be read') -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I08e0e7b6f0d796626f4d6c3e9a2622c1ee0c210a Gerrit-Change-Number: 23657 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 19:33:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:33:15 +0000 Subject: Change in pysim[master]: ts_51_011: Full encoder/decoder for EF.AD In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23658 ) Change subject: ts_51_011: Full encoder/decoder for EF.AD ...................................................................... ts_51_011: Full encoder/decoder for EF.AD The EF.AD class only had a partial decoder and no encoder before this patch. You can now do things like pySIM-shell (MF/ADF.USIM/EF.AD)> read_binary_decoded { "ms_operation_mode": "normal_and_specific_facilities", "specific_facilities": { "ofm": false }, "len_of_mnc_in_imsi": 2 } pySIM-shell (MF/ADF.USIM/EF.AD)> update_binary_decoded '{"ms_operation_mode": "normal_and_specific_facilities", "specific_facilities": {"ofm": false}, "len_of_mnc_in_imsi": 3}' not quite all that elegant yet, but working at all. Change-Id: Id2cb66cb26b6bd08befe9f8468b0b0773da842b1 --- M pySim/ts_51_011.py 1 file changed, 18 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index a671f31..bd71114 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -502,17 +502,29 @@ # TS 51.011 Section 10.3.18 class EF_AD(TransparentEF): OP_MODE = { - 0x00: 'normal operation', - 0x80: 'type approval operations', - 0x01: 'normal operation + specific facilities', - 0x81: 'type approval + specific facilities', - 0x02: 'maintenance (off line)', - 0x04: 'cell test operation', + 0x00: 'normal', + 0x80: 'type_approval', + 0x01: 'normal_and_specific_facilities', + 0x81: 'type_approval_and_specific_facilities', + 0x02: 'maintenance_off_line', + 0x04: 'cell_test', } + OP_MODE_reverse = dict(map(reversed, OP_MODE.items())) def __init__(self, fid='6fad', sfid=None, name='EF.AD', desc='Administrative Data', size={3,4}): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) def _decode_bin(self, raw_bin): u = unpack('!BH', raw_bin[:3]) + ofm = True if u[1] & 1 else False + res = {'ms_operation_mode': self.OP_MODE.get(u[0], u[0]), 'specific_facilities': { 'ofm': ofm } } + if len(raw_bin) > 3: + res['len_of_mnc_in_imsi'] = int(raw_bin[3]) & 0xf + return res + def _encode_bin(self, abstract): + op_mode = self.OP_MODE_reverse[abstract['ms_operation_mode']] + res = pack('!BH', op_mode, abstract['specific_facilities']['ofm']) + if 'len_of_mnc_in_imsi' in abstract: + res += pack('!B', abstract['len_of_mnc_in_imsi']) + return res # TS 51.011 Section 10.3.13 class EF_CBMID(EF_CBMI): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2cb66cb26b6bd08befe9f8468b0b0773da842b1 Gerrit-Change-Number: 23658 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Robert Falkenberg Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 19:33:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:33:15 +0000 Subject: Change in pysim[master]: pySim-shell: Add settable parameter on JSON pretty-printing In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23659 ) Change subject: pySim-shell: Add settable parameter on JSON pretty-printing ...................................................................... pySim-shell: Add settable parameter on JSON pretty-printing Change-Id: Ic095c96733de2b0f359bfe067cd719d38712faff --- M docs/shell.rst M pySim-shell.py M pySim/filesystem.py 3 files changed, 21 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/shell.rst b/docs/shell.rst index 314f633..ddb21d5 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -208,6 +208,14 @@ If disabled, pySim will always write irrespective of the current/new value. +json_pretty_print +~~~~~~~~~~~~~~~~~ + +This parameter determines if generated JSON output should (by default) be pretty-printed (multi-line +output with indent level of 4 spaces) or not. + +The default value of this parameter is 'true'. + debug ~~~~~ diff --git a/pySim-shell.py b/pySim-shell.py index e73ec35..7f48d58 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -72,6 +72,16 @@ self.add_settable(cmd2.Settable('conserve_write', bool, 'Read and compare before write', onchange_cb=self._onchange_conserve_write)) self.update_prompt() + self.json_pretty_print = True + self.add_settable(cmd2.Settable('json_pretty_print', bool, 'Pretty-Print JSON output')) + + def poutput_json(self, data, force_no_pretty = False): + """line cmd2.putput() but for a json serializable dict.""" + if force_no_pretty or self.json_pretty_print == False: + output = json.dumps(data) + else: + output = json.dumps(data, indent=4) + self.poutput(output) def _onchange_numeric_path(self, param_name, old, new): self.update_prompt() diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 73348e1..ab9b2f3 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -404,11 +404,7 @@ def do_read_binary_decoded(self, opts): """Read + decode data from a transparent EF""" (data, sw) = self._cmd.rs.read_binary_dec() - if opts.oneline: - output = json.dumps(data) - else: - output = json.dumps(data, indent=4) - self._cmd.poutput(output) + self._cmd.poutput_json(data, opts.oneline) upd_bin_parser = argparse.ArgumentParser() upd_bin_parser.add_argument('--offset', type=int, default=0, help='Byte offset for start of read') @@ -428,7 +424,7 @@ data_json = json.loads(opts.data) (data, sw) = self._cmd.rs.update_binary_dec(data_json) if data: - self._cmd.poutput(json.dumps(data, indent=4)) + self._cmd.poutput_json(data) def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None, size={1,None}): @@ -563,11 +559,7 @@ def do_read_record_decoded(self, opts): """Read + decode a record from a record-oriented EF""" (data, sw) = self._cmd.rs.read_record_dec(opts.record_nr) - if opts.oneline: - output = json.dumps(data) - else: - output = json.dumps(data, indent=4) - self._cmd.poutput(output) + self._cmd.poutput_json(data, opts.oneline) upd_rec_parser = argparse.ArgumentParser() upd_rec_parser.add_argument('record_nr', type=int, help='Number of record to be read') -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23659 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic095c96733de2b0f359bfe067cd719d38712faff Gerrit-Change-Number: 23659 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 Apr 6 19:33:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:33:15 +0000 Subject: Change in pysim[master]: docs/shell.rst: Auto-generate shell command reference In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23606 ) Change subject: docs/shell.rst: Auto-generate shell command reference ...................................................................... docs/shell.rst: Auto-generate shell command reference We use a slightly modified version of sphinx-argparse (with patch https://github.com/alex-rudakov/sphinx-argparse/pull/136 applied) in order to generate the command reference for each shell command in the manual. As the upstream repository seems unmaintained for ~2 years, let's use the osmocom 'fork' with that above-mentioned patch applied. Change-Id: I134f267cf53c7ecbc8cbfb33a8766d63bf4a8582 --- M contrib/jenkins.sh M docs/conf.py M docs/shell.rst 3 files changed, 58 insertions(+), 21 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index efb913e..60061e3 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -21,6 +21,7 @@ # attempt to build documentation pip install sphinx pip install sphinxcontrib-napoleon +pip3 install -e 'git+https://github.com/osmocom/sphinx-argparse at master#egg=sphinx-argparse' (cd docs && make html) # run the test with physical cards diff --git a/docs/conf.py b/docs/conf.py index add26d8..2117172 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,6 +29,7 @@ # ones. extensions = [ "sphinx.ext.autodoc", + "sphinxarg.ext", "sphinx.ext.autosectionlabel", "sphinx.ext.napoleon" ] diff --git a/docs/shell.rst b/docs/shell.rst index ddb21d5..2edebbf 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -85,32 +85,41 @@ change_chv ~~~~~~~~~~ - -This command allows you to change a CHV (PIN). +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.change_chv_parser disable_chv ~~~~~~~~~~~ +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.disable_chv_parser -This command allows you to disable a CHV (PIN). enable_chv ~~~~~~~~~~ - -This command allows you to enable a CHV (PIN). +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.enable_chv_parser unblock_chv ~~~~~~~~~~~ +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.unblock_chv_parser -This command allows you to unblock a CHV (PIN) using the PUK. verify_chv ~~~~~~~~~~ - This command allows you to verify a CHV (PIN), which is how the specifications call it if you authenticate yourself with the said CHV/PIN. +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.verify_chv_parser + pySim commands @@ -128,30 +137,26 @@ dir ~~~ - -:: - - usage: dir [-h] [--fids] [--names] [--apps] [--all] - - Show a listing of files available in currently selected DF or MF - - optional arguments: - -h, --help show this help message and exit - --fids Show file identifiers - --names Show file names - --apps Show applications - --all Show all selectable identifiers and names +.. argparse:: + :module: pySim-shell + :func: PySimCommands.dir_parser export ~~~~~~ +.. argparse:: + :module: pySim-shell + :func: PySimCommands.export_parser + tree ~~~~ +FIXME + verify_adm ~~~~~~~~~~ - +FIXME Linear Fixed EF commands @@ -161,15 +166,30 @@ read_record ~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.read_rec_parser + read_record_decoded ~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.read_rec_dec_parser + update_record ~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.upd_rec_parser + update_record_decoded ~~~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.upd_rec_dec_parser @@ -181,15 +201,30 @@ read_binary ~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: TransparentEF.ShellCommands.read_bin_parser + read_binary_decoded ~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: TransparentEF.ShellCommands.read_bin_dec_parser + update_binary ~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: TransparentEF.ShellCommands.upd_bin_parser + update_binary_decoded ~~~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: TransparentEF.ShellCommands.upd_bin_dec_parser -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I134f267cf53c7ecbc8cbfb33a8766d63bf4a8582 Gerrit-Change-Number: 23606 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 Tue Apr 6 19:33:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 19:33:15 +0000 Subject: Change in pysim[master]: docs: Documentation for classic pySim-{prog, read} tools In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23607 ) Change subject: docs: Documentation for classic pySim-{prog,read} tools ...................................................................... docs: Documentation for classic pySim-{prog,read} tools Particularly the documentation for pySim-prog is far from being complete, but it's a start. Change-Id: Ic1932e62a5d7cf33e0dd74cb071cfa7f27c6e497 --- M docs/legacy.rst 1 file changed, 99 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/legacy.rst b/docs/legacy.rst index 492be46..dad83d8 100644 --- a/docs/legacy.rst +++ b/docs/legacy.rst @@ -1,2 +1,101 @@ Legacy tools ============ + +*legacy tools* are the classic ``pySim-prog`` and ``pySim-read`` programs that +existed long before ``pySim-shell``. + +pySim-prog +---------- + +``pySim-prog`` was the first part of the pySim software suite. It started as +a tool to write ICCID, IMSI, MSISDN and Ki to very simplistic SIM cards, and +was later extended to a variety of other cards. As the number of features supported +became no longer bearable to express with command-line arguments, `pySim-shell` was +created. + +Basic use cases can still use `pySim-prog`. + +Program customizable SIMs +~~~~~~~~~~~~~~~~~~~~~~~~~ +Two modes are possible: + + - one where you specify every parameter manually : + +``./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -i -s `` + + + - one where they are generated from some minimal set : + +``./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -z -j `` + + With and , the soft will generate + 'predictable' IMSI and ICCID, so make sure you choose them so as not to + conflict with anyone. (for eg. your name as and + 0 1 2 ... for ). + + You also need to enter some parameters to select the device : + -t TYPE : type of card (supersim, magicsim, fakemagicsim or try 'auto') + -d DEV : Serial port device (default /dev/ttyUSB0) + -b BAUD : Baudrate (default 9600) + + +pySim-read +---------- + +``pySim-read`` allows you to read some data from a SIM card. It will only some files +of the card, and will only read files accessible to a normal user (without any special authentication) + +Specifically, pySim-read will dump the following: + +* MF + + * EF.ICCID + +* DF.GSM + + * EF,IMSI + * EF.GID1 + * EF.GID2 + * EF.SMSP + * EF.SPN + * EF.PLMNsel + * EF.PLMNwAcT + * EF.OPLMNwAcT + * EF.HPLMNAcT + * EF.ACC + * EF.MSISDN + * EF.AD + * EF.SST + +* ADF.USIM + + * EF.EHPLMN + * EF.UST + * EF.ePDGId + * EF.ePDGSelection + +* ADF.ISIM + + * EF.PCSCF + * EF.DOMAIN + * EF.IMPI + * EF.IMPU + * EF.UICCIARI + * EF.IST + + +:: + + Usage: pySim-read.py [options] + + Options: + -h, --help show this help message and exit + -d DEV, --device=DEV Serial Device for SIM access [default: /dev/ttyUSB0] + -b BAUD, --baud=BAUD Baudrate used for SIM access [default: 9600] + -p PCSC, --pcsc-device=PCSC + Which PC/SC reader number for SIM access + --modem-device=DEV Serial port of modem for Generic SIM Access (3GPP TS + 27.007) + --modem-baud=BAUD Baudrate used for modem's port [default: 115200] + --osmocon=PATH Socket path for Calypso (e.g. Motorola C1XX) based + reader (via OsmocomBB) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic1932e62a5d7cf33e0dd74cb071cfa7f27c6e497 Gerrit-Change-Number: 23607 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 Tue Apr 6 19:35:48 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Tue, 6 Apr 2021 19:35:48 +0000 Subject: Change in pysim[master]: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: Robert Falkenberg has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... Patch Set 6: > Patch Set 6: > > I've now added the missing support to pySim-shell in https://gerrit.osmocom.org/c/pysim/+/23658 > > If you still think it is important to add this also to pySim-prog, we can go ahead with it. I personally think all new features must be supported in pySim-shell, which is much more general and flexible in terms of supportin the quadrillion of parameters in all the sim/usim/isim files... Great, thanks for the quick support! I fully agree going the more generic way. Nevertheless, I think it is useful to have that option in pySim-prog. We use pySim-prog to conveniently batch-(re)program the Sysmocom uSIMs (the green and black ones) according to configuration in CSV files. Thereby we add "NAME" for SPN and "OPMODE" in additional columns. The cmdline param --OPMODE is only added for completeness. I will rebase the current code for now. Shall we update to use your new code as well? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 6 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 19:35:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 19:43:10 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Tue, 6 Apr 2021 19:43:10 +0000 Subject: Change in pysim[master]: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23632 to look at the new patch set (#7). Change subject: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... Add option to set UE operation mode in EF_AD (Administrative Data) Use ``--opmode=OPMODE`` in cmdline mode or column ``OPMODE`` in csv mode to specify OPMODE as listed below. Details: The ``EF_AD`` field contains administrative data (AD). It consists of four bytes ``B1``, ``B2``, ``B3``, ``B4``, and optionally further bytes for future use. Previous implementation only sets the MNC field appropriately (located in `B4`) and sets all other bits/bytes to 0. However, `B1` also defines the *UE operation mode* (see below). For type approval operations, such as testing with a test uSIM, this value could be set to `0x80` rather than `0x00`(= normal operation). This may unlock some UE capabilities that are restricted in normal operation mode. Excerpt from [ETSI TS 131 102, 4.2.18](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` B1 - UE operation mode: Coding: Initial value - '00' normal operation. - '80' type approval operations. - '01' normal operation + specific facilities. - '81' type approval operations + specific facilities. - '02' maintenance (off line). - '04' cell test operation. B2 - Additional information: Coding: Reserved for future use B3 - Additional information: Coding: - B3.b1: OFM setting (Ciphering) - B3.others: Reserved for future use B4 - Length of MNC in the IMSI: Coding: - B4.b4..B4.b1: length: '0010' (= 2) or '0011' (=3) - B4.others: Reserved for future use ``` **Legend:** Byte X, bit Y: BX.bY Further reading: https://nickvsnetworking.com/usim-basics/ Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 --- M pySim-prog.py M pySim/cards.py 2 files changed, 60 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/32/23632/7 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 7 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 20:10:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 6 Apr 2021 20:10:35 +0000 Subject: Change in pysim[master]: Py2 -> Py3: do not inherit classes from object In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23633 ) Change subject: Py2 -> Py3: do not inherit classes from object ...................................................................... Patch Set 2: > Patch Set 2: > > thanks, but I fail in which way inheriting 'object' hurts us in any way? > > Adding this patch to a project with very active development activity right now (by phillip, myself and several external contributors right now) will create merge conflicts for now good reaosn. > > Sorry :/ This patch is purely cosmetic and was submitted to test the build setup (OS#4383), so I am fine with keeping it WIP or not merging at all. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I15003ba591510d68f3235f71526ad5d8a456088e Gerrit-Change-Number: 23633 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 20:10:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 22:34:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 22:34:06 +0000 Subject: Change in pysim[master]: pySim/filesystem: Remove left-over debug print statements References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23660 ) Change subject: pySim/filesystem: Remove left-over debug print statements ...................................................................... pySim/filesystem: Remove left-over debug print statements the print statements in read_binary_decoded and update_binary_decoded should have been removed a long time ago. Change-Id: I9ccc61c426a755fae9008d0717d579fa2da0ef7c --- M pySim/filesystem.py 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/60/23660/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index ab9b2f3..a65a764 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -983,7 +983,6 @@ """ (data, sw) = self.read_binary() dec_data = self.selected_file.decode_hex(data) - print("%s: %s -> %s" % (sw, data, dec_data)) return (dec_data, sw) def update_binary(self, data_hex:str, offset:int=0): @@ -1005,7 +1004,6 @@ data : abstract data which is to be encoded and written """ data_hex = self.selected_file.encode_hex(data) - print("%s -> %s" % (data, data_hex)) return self.update_binary(data_hex) def read_record(self, rec_nr:int=0): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9ccc61c426a755fae9008d0717d579fa2da0ef7c Gerrit-Change-Number: 23660 Gerrit-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 Apr 6 22:34:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 22:34:06 +0000 Subject: Change in pysim[master]: pySim-shell: JSONpath support for updating files/records References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23661 ) Change subject: pySim-shell: JSONpath support for updating files/records ...................................................................... pySim-shell: JSONpath support for updating files/records Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa --- M docs/shell.rst M pySim/filesystem.py A pySim/jsonpath.py M requirements.txt M setup.py 5 files changed, 79 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/61/23661/1 diff --git a/docs/shell.rst b/docs/shell.rst index 2edebbf..3cfc849 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -226,6 +226,33 @@ :module: pySim.filesystem :func: TransparentEF.ShellCommands.upd_bin_dec_parser +In normal operation, update_binary_decoded needs a JSON document representing the entire file contents as +input. This can be inconvenient if you want to keep 99% of the content but just toggle one specific +parameter. That's where the JSONpath support comes in handy: You can specify a JSONpath to an element +inside the document as well as a new value for tat field: + +Th below example demonstrates this by modifying the ofm field within EF.AD: + +:: + + pySIM-shell (MF/ADF.USIM/EF.AD)> read_binary_decoded + { + "ms_operation_mode": "normal", + "specific_facilities": { + "ofm": true + }, + "len_of_mnc_in_imsi": 2 + } + pySIM-shell (MF/ADF.USIM/EF.AD)> update_binary_decoded --json-path specific_facilities.ofm false + pySIM-shell (MF/ADF.USIM/EF.AD)> read_binary_decoded + { + "ms_operation_mode": "normal", + "specific_facilities": { + "ofm": false + }, + "len_of_mnc_in_imsi": 2 + } + cmd2 settable parameters diff --git a/pySim/filesystem.py b/pySim/filesystem.py index a65a764..f8443f3 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -35,6 +35,7 @@ from pySim.utils import sw_match, h2b, b2h, is_hex from pySim.exceptions import * +from pySim.jsonpath import js_path_find, js_path_modify class CardFile(object): """Base class for all objects in the smart card filesystem. @@ -418,10 +419,16 @@ upd_bin_dec_parser = argparse.ArgumentParser() upd_bin_dec_parser.add_argument('data', help='Abstract data (JSON format) to write') + upd_bin_dec_parser.add_argument('--json-path', type=str, + help='JSON path to modify specific element of file only') @cmd2.with_argparser(upd_bin_dec_parser) def do_update_binary_decoded(self, opts): """Encode + Update (Write) data of a transparent EF""" - data_json = json.loads(opts.data) + if opts.json_path: + (data_json, sw) = self._cmd.rs.read_binary_dec() + js_path_modify(data_json, opts.json_path, json.loads(opts.data)) + else: + data_json = json.loads(opts.data) (data, sw) = self._cmd.rs.update_binary_dec(data_json) if data: self._cmd.poutput_json(data) @@ -574,10 +581,17 @@ upd_rec_dec_parser = argparse.ArgumentParser() upd_rec_dec_parser.add_argument('record_nr', type=int, help='Number of record to be read') upd_rec_dec_parser.add_argument('data', help='Data bytes (hex format) to write') + upd_rec_dec_parser.add_argument('--json-path', type=str, + help='JSON path to modify specific element of record only') @cmd2.with_argparser(upd_rec_dec_parser) def do_update_record_decoded(self, opts): """Encode + Update (write) data to a record-oriented EF""" - (data, sw) = self._cmd.rs.update_record_dec(opts.record_nr, opts.data) + if opts.json_path: + (data_json, sw) = self._cmd.rs.read_record_dec(opts.record_nr) + js_path_modify(data_json, opts.json_path, json.loads(opts.data)) + else: + data_json = json.loads(opts.data) + (data, sw) = self._cmd.rs.update_record_dec(opts.record_nr, data_json) if data: self._cmd.poutput(data) diff --git a/pySim/jsonpath.py b/pySim/jsonpath.py new file mode 100644 index 0000000..012d1d9 --- /dev/null +++ b/pySim/jsonpath.py @@ -0,0 +1,34 @@ +import json +import pprint + +from jsonpath_ng import jsonpath, parse + +"""JSONpath utliity functions as needed within pysim. + +As pySim-sell has the ability to represent SIM files as JSON strings, +adding JSONpath allows us to conveniently modify individual sub-fields +of a file or record in its JSON representation. +""" + + +def js_path_find(js_dict, js_path): + """Find/Match a JSON path within a givne JSON-serializable dict. + Args: + js_dict : JSON-serializable dict to operate on + js_path : JSONpath string + Returns: Result of the JSONpath expression + """ + jsonpath_expr = parse(js_path) + return jsonpath_expr.find(js_dict) + +def js_path_modify(js_dict, js_path, new_val): + """Find/Match a JSON path within a givne JSON-serializable dict. + Args: + js_dict : JSON-serializable dict to operate on + js_path : JSONpath string + new_val : New value for field in js_dict at js_path + """ + jsonpath_expr = parse(js_path) + jsonpath_expr.find(js_dict) + jsonpath_expr.update(js_dict, new_val) + diff --git a/requirements.txt b/requirements.txt index 978a3db..f203ed1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ serial pytlv cmd2 +jsonpath-ng diff --git a/setup.py b/setup.py index d9f742c..a02e327 100644 --- a/setup.py +++ b/setup.py @@ -13,6 +13,7 @@ "serial", "pytlv", "cmd2" + "jsonpath-ng" ], scripts=[ 'pySim-prog.py', -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa Gerrit-Change-Number: 23661 Gerrit-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 Apr 6 22:34:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 22:34:07 +0000 Subject: Change in pysim[master]: utils.py: Add missing dec_plmn function. References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23662 ) Change subject: utils.py: Add missing dec_plmn function. ...................................................................... utils.py: Add missing dec_plmn function. This function is being used e.g. for ADF.USIM/EF.FPLMN entries. The EF_PLMNsel class also already uses a function by this name, we just haven't had any actual implementation around. Change-Id: Iacb45c90bb6491ebb89a477a85ef1f3129b38788 --- M pySim/utils.py 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/62/23662/1 diff --git a/pySim/utils.py b/pySim/utils.py index 8b23929..6a093fa 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -137,6 +137,12 @@ mnc += "F" # pad to 3 digits if needed return (mcc[1] + mcc[0]) + (mnc[2] + mcc[2]) + (mnc[1] + mnc[0]) +def dec_plmn(threehexbytes:Hexstr) -> dict: + res = {'mcc': 0, 'mnc': 0 } + res['mcc'] = dec_mcc_from_plmn(threehexbytes) + res['mnc'] = dec_mnc_from_plmn(threehexbytes) + return res + def dec_spn(ef): byte1 = int(ef[0:2]) hplmn_disp = (byte1&0x01 == 0x01) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iacb45c90bb6491ebb89a477a85ef1f3129b38788 Gerrit-Change-Number: 23662 Gerrit-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 Apr 6 22:51:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 22:51:49 +0000 Subject: Change in pysim[master]: pySim/filesystem: Remove left-over debug print statements In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23660 ) Change subject: pySim/filesystem: Remove left-over debug print statements ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9ccc61c426a755fae9008d0717d579fa2da0ef7c Gerrit-Change-Number: 23660 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 22:51:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 22:53:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 22:53:00 +0000 Subject: Change in pysim[master]: utils.py: Add missing dec_plmn function. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23662 ) Change subject: utils.py: Add missing dec_plmn function. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iacb45c90bb6491ebb89a477a85ef1f3129b38788 Gerrit-Change-Number: 23662 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 22:53: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 Apr 6 22:53:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 22:53:07 +0000 Subject: Change in pysim[master]: pySim/filesystem: Remove left-over debug print statements In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/pysim/+/23660 ) Change subject: pySim/filesystem: Remove left-over debug print statements ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9ccc61c426a755fae9008d0717d579fa2da0ef7c Gerrit-Change-Number: 23660 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 Tue Apr 6 22:53:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 22:53:10 +0000 Subject: Change in pysim[master]: pySim/filesystem: Remove left-over debug print statements In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23660 ) Change subject: pySim/filesystem: Remove left-over debug print statements ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9ccc61c426a755fae9008d0717d579fa2da0ef7c Gerrit-Change-Number: 23660 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 22:53:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 6 22:53:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 22:53:13 +0000 Subject: Change in pysim[master]: pySim/filesystem: Remove left-over debug print statements In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23660 ) Change subject: pySim/filesystem: Remove left-over debug print statements ...................................................................... pySim/filesystem: Remove left-over debug print statements the print statements in read_binary_decoded and update_binary_decoded should have been removed a long time ago. Change-Id: I9ccc61c426a755fae9008d0717d579fa2da0ef7c --- M pySim/filesystem.py 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/pySim/filesystem.py b/pySim/filesystem.py index ab9b2f3..a65a764 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -983,7 +983,6 @@ """ (data, sw) = self.read_binary() dec_data = self.selected_file.decode_hex(data) - print("%s: %s -> %s" % (sw, data, dec_data)) return (dec_data, sw) def update_binary(self, data_hex:str, offset:int=0): @@ -1005,7 +1004,6 @@ data : abstract data which is to be encoded and written """ data_hex = self.selected_file.encode_hex(data) - print("%s -> %s" % (data, data_hex)) return self.update_binary(data_hex) def read_record(self, rec_nr:int=0): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9ccc61c426a755fae9008d0717d579fa2da0ef7c Gerrit-Change-Number: 23660 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 Apr 6 22:53:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 22:53:21 +0000 Subject: Change in pysim[master]: utils.py: Add missing dec_plmn function. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23662 ) Change subject: utils.py: Add missing dec_plmn function. ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iacb45c90bb6491ebb89a477a85ef1f3129b38788 Gerrit-Change-Number: 23662 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 06 Apr 2021 22:53: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 Apr 6 22:53:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 6 Apr 2021 22:53:24 +0000 Subject: Change in pysim[master]: utils.py: Add missing dec_plmn function. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23662 ) Change subject: utils.py: Add missing dec_plmn function. ...................................................................... utils.py: Add missing dec_plmn function. This function is being used e.g. for ADF.USIM/EF.FPLMN entries. The EF_PLMNsel class also already uses a function by this name, we just haven't had any actual implementation around. Change-Id: Iacb45c90bb6491ebb89a477a85ef1f3129b38788 --- M pySim/utils.py 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/pySim/utils.py b/pySim/utils.py index 8b23929..6a093fa 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -137,6 +137,12 @@ mnc += "F" # pad to 3 digits if needed return (mcc[1] + mcc[0]) + (mnc[2] + mcc[2]) + (mnc[1] + mnc[0]) +def dec_plmn(threehexbytes:Hexstr) -> dict: + res = {'mcc': 0, 'mnc': 0 } + res['mcc'] = dec_mcc_from_plmn(threehexbytes) + res['mnc'] = dec_mnc_from_plmn(threehexbytes) + return res + def dec_spn(ef): byte1 = int(ef[0:2]) hplmn_disp = (byte1&0x01 == 0x01) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iacb45c90bb6491ebb89a477a85ef1f3129b38788 Gerrit-Change-Number: 23662 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 admin at opensuse.org Wed Apr 7 01:37:39 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 07 Apr 2021 01:37:39 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <606d0cee7b1a5_6bb72ab3d973a5fc3842f2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 128s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 128s] Memory region Used Size Region Size %age Used [ 128s] rom: 16400 B 16 KB 100.10% [ 128s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 128s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 128s] collect2: error: ld returned 1 exit status [ 128s] % [ 128s] Makefile:238: recipe for target 'flash' failed [ 128s] make[2]: *** [flash] Error 1 [ 128s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 128s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 128s] make[1]: *** [fw-qmod-dfu] Error 2 [ 128s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 128s] dh_auto_build: make -j1 returned exit code 2 [ 128s] debian/rules:16: recipe for target 'build' failed [ 128s] make: *** [build] Error 2 [ 128s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 128s] ### VM INTERACTION START ### [ 132s] [ 121.114820] sysrq: Power Off [ 132s] [ 121.121852] reboot: Power down [ 132s] ### VM INTERACTION END ### [ 132s] [ 132s] old-cirrus1 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Wed Apr 7 01:37:30 UTC 2021. [ 132s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Apr 7 01:38:30 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 07 Apr 2021 01:38:30 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <606d0d2bb94f8_6bb72ab3d973a5fc38433e@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 apps/dfu/main.c] [ 161s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 161s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 161s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 161s] Memory region Used Size Region Size %age Used [ 161s] rom: 16628 B 16 KB 101.49% [ 161s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 244 bytes [ 161s] collect2: error: ld returned 1 exit status [ 161s] % [ 161s] make[2]: *** [Makefile:238: flash] Error 1 [ 161s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 161s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 161s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 161s] dh_auto_build: error: make -j1 returned exit code 2 [ 161s] make: *** [debian/rules:16: build] Error 25 [ 161s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 161s] ### VM INTERACTION START ### [ 165s] [ 151.825461] sysrq: Power Off [ 165s] [ 151.829867] reboot: Power down [ 165s] ### VM INTERACTION END ### [ 165s] [ 165s] old-cirrus2 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Wed Apr 7 01:38:14 UTC 2021. [ 165s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Apr 7 01:39:40 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 07 Apr 2021 01:39:40 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <606d0d64a154d_6bb72ab3d973a5fc384629@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_9.0/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 127s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 127s] Memory region Used Size Region Size %age Used [ 127s] rom: 16400 B 16 KB 100.10% [ 127s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 127s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 127s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 127s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 128s] collect2: error: ld returned 1 exit status [ 128s] % [ 128s] Makefile:238: recipe for target 'flash' failed [ 128s] make[2]: *** [flash] Error 1 [ 128s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 128s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 128s] make[1]: *** [fw-qmod-dfu] Error 2 [ 128s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 128s] dh_auto_build: make -j1 returned exit code 2 [ 128s] debian/rules:16: recipe for target 'build' failed [ 128s] make: *** [build] Error 2 [ 128s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 128s] ### VM INTERACTION START ### [ 131s] [ 119.430326] sysrq: Power Off [ 131s] [ 119.465969] reboot: Power down [ 131s] ### VM INTERACTION END ### [ 131s] [ 131s] lamb60 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Wed Apr 7 01:39:34 UTC 2021. [ 131s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Apr 7 01:44:29 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 07 Apr 2021 01:44:29 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/i586 In-Reply-To: References: Message-ID: <606d0e9399118_6bb72ab3d973a5fc3850ee@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_9.0/i586 Package network:osmocom:nightly/simtrace2 failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 173s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 173s] Memory region Used Size Region Size %age Used [ 173s] rom: 16400 B 16 KB 100.10% [ 173s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/5.4.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/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 173s] collect2: error: ld returned 1 exit status [ 173s] % [ 173s] Makefile:238: recipe for target 'flash' failed [ 173s] make[2]: *** [flash] Error 1 [ 173s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 173s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 173s] make[1]: *** [fw-qmod-dfu] Error 2 [ 173s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 173s] dh_auto_build: make -j1 returned exit code 2 [ 173s] debian/rules:16: recipe for target 'build' failed [ 173s] make: *** [build] Error 2 [ 173s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 173s] ### VM INTERACTION START ### [ 176s] [ 163.850341] sysrq: Power Off [ 176s] [ 163.905469] reboot: Power down [ 176s] ### VM INTERACTION END ### [ 177s] [ 177s] old-atreju2 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Wed Apr 7 01:44:17 UTC 2021. [ 177s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Apr 7 01:45:20 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 07 Apr 2021 01:45:20 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <606d0ecbc45f9_6bb72ab3d973a5fc38513d@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: [ 445s] [COMPILING libboard/qmod/source/board_qmod.c] [ 446s] [COMPILING libboard/qmod/source/card_pres.c] [ 446s] [COMPILING libboard/qmod/source/i2c.c] [ 447s] [COMPILING libboard/qmod/source/wwan_led.c] [ 447s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 447s] [COMPILING apps/dfu/main.c] [ 448s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 448s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 448s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 449s] Memory region Used Size Region Size %age Used [ 449s] rom: 16628 B 16 KB 101.49% [ 449s] ram: 11680 B 48 KB 23.76/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' [ 449s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 244 bytes [ 449s] collect2: error: ld returned 1 exit status [ 449s] % [ 449s] make[2]: *** [Makefile:238: flash] Error 1 [ 449s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 449s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 449s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 449s] dh_auto_build: error: make -j1 returned exit code 2 [ 449s] make: *** [debian/rules:16: build] Error 25 [ 449s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 449s] ### VM INTERACTION START ### [ 452s] [ 429.000492] sysrq: Power Off [ 453s] [ 429.055112] reboot: Power down [ 453s] ### VM INTERACTION END ### [ 453s] [ 453s] old-atreju5 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Wed Apr 7 01:45:03 UTC 2021. [ 453s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Apr 7 02:27:53 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 07 Apr 2021 02:27:53 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <606d18c3e1950_6bb72ab3d973a5fc388864@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_9.0/aarch64 Package network:osmocom:nightly/simtrace2 failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 198s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 199s] Memory region Used Size Region Size %age Used [ 199s] rom: 16400 B 16 KB 100.10% [ 199s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 199s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 199s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 199s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 199s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 199s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 199s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 199s] collect2: error: ld returned 1 exit status [ 199s] % [ 199s] Makefile:238: recipe for target 'flash' failed [ 199s] make[2]: *** [flash] Error 1 [ 199s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 199s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 199s] make[1]: *** [fw-qmod-dfu] Error 2 [ 199s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 199s] dh_auto_build: make -j1 returned exit code 2 [ 199s] debian/rules:16: recipe for target 'build' failed [ 199s] make: *** [build] Error 2 [ 199s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 199s] ### VM INTERACTION START ### [ 202s] [ 186.005698] sysrq: Power Off [ 202s] [ 186.007235] reboot: Power down [ 202s] ### VM INTERACTION END ### [ 202s] [ 202s] obs-arm-8 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Wed Apr 7 02:27:48 UTC 2021. [ 202s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Apr 7 07:35:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 07:35:13 +0000 Subject: Change in pysim[master]: shell: New 'read_records' and 'read_records_decoded' commands References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23663 ) Change subject: shell: New 'read_records' and 'read_records_decoded' commands ...................................................................... shell: New 'read_records' and 'read_records_decoded' commands Those commands can be used to read all the records available in the selected file. Change-Id: If457b4e02bde8aa6db8cc329411f94411c100bc9 --- M docs/shell.rst M pySim/filesystem.py 2 files changed, 43 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/63/23663/1 diff --git a/docs/shell.rst b/docs/shell.rst index 3cfc849..652e572 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -178,6 +178,20 @@ :func: LinFixedEF.ShellCommands.read_rec_dec_parser +read_records +~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.read_recs_parser + + +read_records_decoded +~~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.read_recs_dec_parser + + update_record ~~~~~~~~~~~~~ .. argparse:: diff --git a/pySim/filesystem.py b/pySim/filesystem.py index f8443f3..e97fbf6 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -568,6 +568,33 @@ (data, sw) = self._cmd.rs.read_record_dec(opts.record_nr) self._cmd.poutput_json(data, opts.oneline) + read_recs_parser = argparse.ArgumentParser() + @cmd2.with_argparser(read_recs_parser) + def do_read_records(self, opts): + """Read all records from a record-oriented EF""" + num_of_rec = self._cmd.rs.selected_file_fcp['file_descriptor']['num_of_rec'] + for recnr in range(1, 1 + num_of_rec): + (data, sw) = self._cmd.rs.read_record(recnr) + if (len(data) > 0): + recstr = str(data) + else: + recstr = "(empty)" + self._cmd.poutput("%03d %s" % (recnr, recstr)) + + read_recs_dec_parser = argparse.ArgumentParser() + read_recs_dec_parser.add_argument('--oneline', action='store_true', + help='No JSON pretty-printing, dump as a single line') + @cmd2.with_argparser(read_recs_dec_parser) + def do_read_records_decoded(self, opts): + """Read + decode all records from a record-oriented EF""" + num_of_rec = self._cmd.rs.selected_file_fcp['file_descriptor']['num_of_rec'] + # collect all results in list so they are rendered as JSON list when printing + data_list = [] + for recnr in range(1, 1 + num_of_rec): + (data, sw) = self._cmd.rs.read_record_dec(recnr) + data_list.append(data) + self._cmd.poutput_json(data_list, opts.oneline) + upd_rec_parser = argparse.ArgumentParser() upd_rec_parser.add_argument('record_nr', type=int, help='Number of record to be read') upd_rec_parser.add_argument('data', help='Data bytes (hex format) to write') @@ -965,6 +992,8 @@ select_resp = f.decode_select_response(data) else: select_resp = self.probe_file(name, cmd_app) + # store the decoded FCP for later reference + self.selected_file_fcp = select_resp # register commands of new file if cmd_app and self.selected_file.shell_commands: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If457b4e02bde8aa6db8cc329411f94411c100bc9 Gerrit-Change-Number: 23663 Gerrit-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 Apr 7 07:41:21 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 7 Apr 2021 07:41:21 +0000 Subject: Change in libosmocore[master]: stat_item: make value ids item specific In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, laforge, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/23508 to look at the new patch set (#3). Change subject: stat_item: make value ids item specific ...................................................................... stat_item: make value ids item specific Fix counting of values missed because of FIFO overflow in osmo_stat_item_get_next(), by assigning a new item value id effectively as item->value[n + 1].id = item->value[n].id + 1, instead of increasing a global_value_id that is shared between all items and groups. With global_value_id, the count of values missed was wrong for one item, as soon as a new value was added to another item. This partially reverts b27b352e ("stats: Use a global index for stat item values") from 2015, right after stats was added to libosmocore. It was supposed to make multiple readers (reporters) possible, which could read independently from stat_item (and later added comments explain it like that). But this remained unused, stats has implemented multiple reporters by reading all stat_items once and sending the same data to all enabled reporters. The patch caused last_value_index in struct osmo_stat_item to always remain at -1. Replace this unused last_value_index with stats_next_id, so stats can store the item-specific next_id in the struct again. It appears that stats is the only direct user of osmo_stat_item, but if there are others, they can bring their own item-specific next_id: functions in stat_item.c still accept a next_id argument. Related: OS#5088 Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f --- M include/osmocom/core/stat_item.h M src/stat_item.c M src/stats.c M tests/stats/stats_test.c 4 files changed, 44 insertions(+), 44 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/08/23508/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f Gerrit-Change-Number: 23508 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 07:42:27 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 7 Apr 2021 07:42:27 +0000 Subject: Change in libosmocore[master]: stat_item: make value ids item specific In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23508 ) Change subject: stat_item: make value ids item specific ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stat_item.c File src/stat_item.c: https://gerrit.osmocom.org/c/libosmocore/+/23508/1/src/stat_item.c at 280 PS1, Line 280: return 0; > In that case I would bump the log level above up to error (or at least notice) and maybe also log th [?] Makes sense, changed to error and mentioned no-nop. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f Gerrit-Change-Number: 23508 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 07:42:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith 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 Apr 7 08:20:32 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 7 Apr 2021 08:20:32 +0000 Subject: Change in libosmocore[master]: stat_item: make value ids item specific In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23508 ) Change subject: stat_item: make value ids item specific ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f Gerrit-Change-Number: 23508 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 08:20:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 08:47:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 7 Apr 2021 08:47:31 +0000 Subject: Change in docker-playground[master]: docker_images_require: list installed Osmocom pkgs References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23664 ) Change subject: docker_images_require: list installed Osmocom pkgs ...................................................................... docker_images_require: list installed Osmocom pkgs Display an overview of installed Osmocom packages at the start of each ttcn3-*/jenkins.sh script (and others making use of docker_images_require). Closes: OS#5091 Change-Id: I62670017d790fd67c6a0d8d464386c0f8e94c1a8 --- M jenkins-common.sh 1 file changed, 38 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/64/23664/1 diff --git a/jenkins-common.sh b/jenkins-common.sh index 6c27fae..67a467d 100644 --- a/jenkins-common.sh +++ b/jenkins-common.sh @@ -39,6 +39,40 @@ esac } +# $1: distro name, from docker_distro_from_image_name() +# $2: docker image name (without $REPO_USER/ prefix) +list_osmo_packages() { + local distro="$1" + local image="$2" + local docker_run_sh="docker run --rm --entrypoint=/bin/sh $REPO_USER/$image -c" + + # Don't run on all images + case "$image" in + osmo-*) ;; + *) return ;; + esac + + set +x + echo + echo "### Installed Osmocom packages in: $image ###" + echo + + case "$distro" in + centos*) + $docker_run_sh "rpm -qa | grep osmo" + ;; + debian*) + $docker_run_sh "dpkg -l | grep osmo" + ;; + *) + echo "ERROR: don't know how to list installed packages for distro=$distro" + ;; + esac + + echo + set -x +} + # 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 @@ -67,10 +101,11 @@ docker_images_require $depends fi + distro_arg="$(docker_distro_from_image_name "$i")" + # 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")" # Pull upstream base images @@ -94,6 +129,8 @@ echo "ERROR: missing image: $i" exit 1 fi + + list_osmo_packages "$distro_arg" "$i" done } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23664 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I62670017d790fd67c6a0d8d464386c0f8e94c1a8 Gerrit-Change-Number: 23664 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 08:52:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 7 Apr 2021 08:52:24 +0000 Subject: Change in docker-playground[master]: docker_images_require: list installed Osmocom pkgs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23664 ) Change subject: docker_images_require: list installed Osmocom pkgs ...................................................................... Patch Set 1: Verified+1 Example output: https://osmocom.org/issues/5091 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23664 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I62670017d790fd67c6a0d8d464386c0f8e94c1a8 Gerrit-Change-Number: 23664 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 07 Apr 2021 08: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 Wed Apr 7 08:57:26 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 08:57:26 +0000 Subject: Change in pysim[master]: ts_102_221.py: fix fixup_fcp_proprietary_tlv_map() References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23665 ) Change subject: ts_102_221.py: fix fixup_fcp_proprietary_tlv_map() ...................................................................... ts_102_221.py: fix fixup_fcp_proprietary_tlv_map() The function fixup_fcp_proprietary_tlv_map() addes propritary TLV tags in the range of d0 to ff to the TLV map. However, the spec defines this range as b7 and b8 of the first tag byte set to 1. This results in a range from c0 to ff. See also ETSI TS 102 221, section 11.1.1.4.6.0 Change-Id: I8359527c9ff303b257b181b87dc440f27735ece9 Related: OS#4963 --- M pySim/ts_102_221.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/65/23665/1 diff --git a/pySim/ts_102_221.py b/pySim/ts_102_221.py index b8fce1b..88a36a1 100644 --- a/pySim/ts_102_221.py +++ b/pySim/ts_102_221.py @@ -129,7 +129,7 @@ def fixup_fcp_proprietary_tlv_map(tlv_map): if 'D0' in tlv_map: return - for i in range(0xd0, 0xff): + for i in range(0xc0, 0xff): i_hex = i2h([i]).upper() tlv_map[i_hex] = 'proprietary_' + i_hex -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8359527c9ff303b257b181b87dc440f27735ece9 Gerrit-Change-Number: 23665 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 Apr 7 09:04:40 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 09:04:40 +0000 Subject: Change in pysim[master]: commands, ts_102_221: replace pytlv with uttlv In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23483 ) Change subject: commands, ts_102_221: replace pytlv with uttlv ...................................................................... Patch Set 6: Code-Review-1 I originally thought that migrating from pytlv to uttlv might solve problems, but apparently it tends to create even more problems. One problem we stumble upon repeatedly is that that when the parser hits undefined TLV elements it throws an exception. This behavior is wrong since TLV was designed explicitly with the idea in mind that one could add IEs afterwards and still be compatible with older parsers. Uttlv does not have this issue, but it seems to have other problems. It is probably not helpful to migrate to uttlv now. However it is also not pressing at the moment. I think we should abandon this and look for something else in the long run. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I971b818836aff2fbeb6769f819d496cee4bfa7cf Gerrit-Change-Number: 23483 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: merlinchlosta Gerrit-Comment-Date: Wed, 07 Apr 2021 09:04: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 Apr 7 09:19:44 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 09:19:44 +0000 Subject: Change in pysim[master]: test please ignore References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23666 ) Change subject: test please ignore ...................................................................... test please ignore Change-Id: I283330a166fd61a697df08efff35421094c9f888 --- A testme 1 file changed, 0 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/66/23666/1 diff --git a/testme b/testme new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/testme -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I283330a166fd61a697df08efff35421094c9f888 Gerrit-Change-Number: 23666 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 Apr 7 09:33:30 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 09:33:30 +0000 Subject: Change in pysim[master]: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23652 ) Change subject: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) ...................................................................... Patch Set 2: Code-Review+1 Seems that the default is now the following: SPN: Magic Display HPLMN: True Display OPLMN: True You should update sysmoISIM-SJA2.ok accordingly. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d Gerrit-Change-Number: 23652 Gerrit-PatchSet: 2 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 07 Apr 2021 09: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 Apr 7 09:52:07 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 09:52:07 +0000 Subject: Change in pysim[master]: test please ignore In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/23666 ) Change subject: test please ignore ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I283330a166fd61a697df08efff35421094c9f888 Gerrit-Change-Number: 23666 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 10:04:41 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 10:04:41 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23631 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 3 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 07 Apr 2021 10:04:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 10:18:37 2021 From: gerrit-no-reply at lists.osmocom.org (Robert Falkenberg) Date: Wed, 7 Apr 2021 10:18:37 +0000 Subject: Change in pysim[master]: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23652 to look at the new patch set (#3). Change subject: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) ...................................................................... SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) Same implementation as for sysmoUSIM-SJS1 Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d --- M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 8 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/52/23652/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d Gerrit-Change-Number: 23652 Gerrit-PatchSet: 3 Gerrit-Owner: Robert Falkenberg Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 10:26:30 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 10:26:30 +0000 Subject: Change in pysim[master]: shell: New 'read_records' and 'read_records_decoded' commands In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23663 ) Change subject: shell: New 'read_records' and 'read_records_decoded' commands ...................................................................... Patch Set 1: Verified+1 Code-Review+1 I have tested this and it works, but there seems to be a dependency problem: ModuleNotFoundError: No module named 'jsonpath_ng' Maybe this goes away when Iacb45c90bb6491ebb89a477a85ef1f3129b38788 is merged. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If457b4e02bde8aa6db8cc329411f94411c100bc9 Gerrit-Change-Number: 23663 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 07 Apr 2021 10: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 Wed Apr 7 10:40:13 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 10:40:13 +0000 Subject: Change in pysim[master]: pySim-shell: JSONpath support for updating files/records In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23661 ) Change subject: pySim-shell: JSONpath support for updating files/records ...................................................................... Patch Set 2: Code-Review-1 Maybe there is a dependency problem with test_utils? ImportError: Failed to import test module: test_utils -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa Gerrit-Change-Number: 23661 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Wed, 07 Apr 2021 10:40:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Apr 7 11:27:45 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 07 Apr 2021 11:27:45 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <606d9732561b0_7e932b00480985f88827f@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: [ 663s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 664s] Memory region Used Size Region Size %age Used [ 664s] rom: 16400 B 16 KB 100.10% [ 664s] ram: 11688 B 48 KB 23.78/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 664s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 664s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 664s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 664s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 664s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 664s] /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 16 bytes [ 664s] collect2: error: ld returned 1 exit status [ 664s] % [ 664s] Makefile:238: recipe for target 'flash' failed [ 664s] make[2]: *** [flash] Error 1 [ 664s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 664s] Makefile:13: recipe for target 'fw-qmod-dfu' failed [ 664s] make[1]: *** [fw-qmod-dfu] Error 2 [ 664s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 664s] dh_auto_build: make -j1 returned exit code 2 [ 664s] debian/rules:16: recipe for target 'build' failed [ 664s] make: *** [build] Error 2 [ 664s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 664s] ### VM INTERACTION START ### [ 667s] [ 582.483608] sysrq: SysRq : Power Off [ 668s] [ 582.603714] reboot: Power down [ 669s] ### VM INTERACTION END ### [ 669s] [ 669s] armbuild24 failed "build simtrace2_0.7.0.88.7a3d.dsc" at Wed Apr 7 11:27:43 UTC 2021. [ 669s] -- 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 Apr 7 12:06:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 12:06:12 +0000 Subject: Change in osmo-gbproxy[master]: vty: Print CellId along with RA-ID References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23667 ) Change subject: vty: Print CellId along with RA-ID ...................................................................... vty: Print CellId along with RA-ID The CellIdentifier IE of a BVC-RESET contains RA-ID and CID. We only printed the forer, but not the latter. Let's fix that. Change-Id: Ic8b26afe98e6fe11b130679201493f6bcbade0f4 --- M src/gb_proxy_vty.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/67/23667/1 diff --git a/src/gb_proxy_vty.c b/src/gb_proxy_vty.c index f48a6db..9ac45e7 100644 --- a/src/gb_proxy_vty.c +++ b/src/gb_proxy_vty.c @@ -82,8 +82,9 @@ 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 { - vty_out(vty, "NSEI %5u, PTP-BVCI %5u, RAI %s [%s]%s", bvc->nse->nsei, bvc->bvci, - osmo_rai_name(&bvc->cell->id.raid), osmo_fsm_inst_state_name(bvc->fi), VTY_NEWLINE); + vty_out(vty, "NSEI %5u, PTP-BVCI %5u, RAI %s, CellID %u [%s]%s", bvc->nse->nsei, + bvc->bvci, osmo_rai_name(&bvc->cell->id.raid), bvc->cell->id.cid, + osmo_fsm_inst_state_name(bvc->fi), VTY_NEWLINE); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic8b26afe98e6fe11b130679201493f6bcbade0f4 Gerrit-Change-Number: 23667 Gerrit-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 Apr 7 12:22:05 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 12:22:05 +0000 Subject: Change in pysim[master]: pySim-shell: fix wrong reference to iccid. References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23668 ) Change subject: pySim-shell: fix wrong reference to iccid. ...................................................................... pySim-shell: fix wrong reference to iccid. It should be self.iccid instead of self._cmd.iccid Change-Id: Icb7378929187a4fc39a8f1ddbaa18291f16caf79 Related: OS#4963 --- M pySim-shell.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/68/23668/1 diff --git a/pySim-shell.py b/pySim-shell.py index 7f48d58..f1060de 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -111,7 +111,7 @@ if pin_adm: self.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self.iccid)) else: - self.poutput("cannot find ADM-PIN for ICCID '%s'" % (self._cmd.iccid)) + self.poutput("cannot find ADM-PIN for ICCID '%s'" % (self.iccid)) return if pin_adm: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icb7378929187a4fc39a8f1ddbaa18291f16caf79 Gerrit-Change-Number: 23668 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 Apr 7 12:22:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 12:22:46 +0000 Subject: Change in pysim[master]: pySim-shell: JSONpath support for updating files/records In-Reply-To: References: Message-ID: Hello Jenkins Builder, Falkenber9, fixeria, herlesupreeth, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23661 to look at the new patch set (#3). Change subject: pySim-shell: JSONpath support for updating files/records ...................................................................... pySim-shell: JSONpath support for updating files/records Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa --- M contrib/jenkins.sh M docs/shell.rst M pySim/filesystem.py A pySim/jsonpath.py M requirements.txt M setup.py 6 files changed, 80 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/61/23661/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa Gerrit-Change-Number: 23661 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 12:34:16 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 7 Apr 2021 12:34:16 +0000 Subject: Change in pysim[master]: ts_102_221.py: fix fixup_fcp_proprietary_tlv_map() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23665 ) Change subject: ts_102_221.py: fix fixup_fcp_proprietary_tlv_map() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8359527c9ff303b257b181b87dc440f27735ece9 Gerrit-Change-Number: 23665 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 12:34: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 Apr 7 12:35:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 7 Apr 2021 12:35:20 +0000 Subject: Change in pysim[master]: pySim-shell: fix wrong reference to iccid. In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23668 ) Change subject: pySim-shell: fix wrong reference to iccid. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icb7378929187a4fc39a8f1ddbaa18291f16caf79 Gerrit-Change-Number: 23668 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 07 Apr 2021 12:35: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 Apr 7 12:40:46 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Wed, 7 Apr 2021 12:40:46 +0000 Subject: Change in pysim[master]: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) In-Reply-To: References: Message-ID: Falkenber9 has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23652 ) Change subject: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) ...................................................................... Patch Set 3: I suspect this patch recurrently breaks all (subsequent) tests that run on a codebase that does not include this patch (due to its persistent change of the SPN in the unit under test). Related Fun-Fact: It seems that currently sold black sysmocom USIMs are shipped without the SPN set to "Magic". -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d Gerrit-Change-Number: 23652 Gerrit-PatchSet: 3 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 07 Apr 2021 12:40:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 12:41:51 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 12:41:51 +0000 Subject: Change in pysim[master]: tests: remove .example files for simcard tests References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23669 ) Change subject: tests: remove .example files for simcard tests ...................................................................... tests: remove .example files for simcard tests The folder pysim-testdata already contains testdata that can also be used as examples. The .example files are from a time where the testdata was not kept inside the repository. Since we decided to keep the test data in the repository as well those file are redundant. Change-Id: Iee34cad74b50755e1007506f909da9766fa8412e --- D tests/Wavemobile-SIM.data.example D tests/fakemagicsim.data.example D tests/sysmoUSIM-SJS1.data.example D tests/sysmosim-gr1.data.example 4 files changed, 0 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/69/23669/1 diff --git a/tests/Wavemobile-SIM.data.example b/tests/Wavemobile-SIM.data.example deleted file mode 100644 index bdf2d65..0000000 --- a/tests/Wavemobile-SIM.data.example +++ /dev/null @@ -1,5 +0,0 @@ -MCC=001 -MNC=01 -IMSI=001010000000102 -ADM_HEX=0123456789ABCDEF - diff --git a/tests/fakemagicsim.data.example b/tests/fakemagicsim.data.example deleted file mode 100644 index deab2f7..0000000 --- a/tests/fakemagicsim.data.example +++ /dev/null @@ -1,6 +0,0 @@ -MCC=001 -MNC=01 -ICCID=1122334455667788990 -KI=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -OPC=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -IMSI=001010000000102 \ No newline at end of file diff --git a/tests/sysmoUSIM-SJS1.data.example b/tests/sysmoUSIM-SJS1.data.example deleted file mode 100644 index 19efd15..0000000 --- a/tests/sysmoUSIM-SJS1.data.example +++ /dev/null @@ -1,8 +0,0 @@ -MCC=001 -MNC=01 -ICCID=1122334455667788990 -KI=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -OPC=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -IMSI=001010000000102 -MSISDN=+77776336143 -ADM=12345678 diff --git a/tests/sysmosim-gr1.data.example b/tests/sysmosim-gr1.data.example deleted file mode 100644 index 90d23f8..0000000 --- a/tests/sysmosim-gr1.data.example +++ /dev/null @@ -1,7 +0,0 @@ -MCC=001 -MNC=01 -ICCID=1122334455667788990 -KI=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -OPC=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -IMSI=001010000000102 -ADM=DDDDDDDD -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee34cad74b50755e1007506f909da9766fa8412e Gerrit-Change-Number: 23669 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 Apr 7 12:51:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 7 Apr 2021 12:51:39 +0000 Subject: Change in pysim[master]: pySim-shell: JSONpath support for updating files/records In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23661 ) Change subject: pySim-shell: JSONpath support for updating files/records ...................................................................... Patch Set 3: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/pysim/+/23661/3/pySim/jsonpath.py File pySim/jsonpath.py: https://gerrit.osmocom.org/c/pysim/+/23661/3/pySim/jsonpath.py at 1 PS3, Line 1: import json The copyright header is missing. https://gerrit.osmocom.org/c/pysim/+/23661/3/pySim/jsonpath.py at 4 PS3, Line 4: jsonpath Looks like it's imported, but not used? https://gerrit.osmocom.org/c/pysim/+/23661/3/pySim/jsonpath.py at 6 PS3, Line 6: utliity typo -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa Gerrit-Change-Number: 23661 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Wed, 07 Apr 2021 12:51: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 Wed Apr 7 13:08:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 13:08:42 +0000 Subject: Change in pysim[master]: shell: New 'read_records' and 'read_records_decoded' commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23663 ) Change subject: shell: New 'read_records' and 'read_records_decoded' commands ...................................................................... Patch Set 2: > ModuleNotFoundError: No module named 'jsonpath_ng' > > Maybe this goes away when Iacb45c90bb6491ebb89a477a85ef1f3129b38788 is merged. Well, the related commit adds the jsonpath-ng module to requires.txt and to setup.py. So you will have to run setuptools or whatever method to install the dependencies after that patch is merged - as it always is the case when new depenencies are introduced. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If457b4e02bde8aa6db8cc329411f94411c100bc9 Gerrit-Change-Number: 23663 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 07 Apr 2021 13:08: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 Wed Apr 7 13:09:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 13:09:06 +0000 Subject: Change in pysim[master]: pySim-shell: JSONpath support for updating files/records In-Reply-To: References: Message-ID: Hello Jenkins Builder, Falkenber9, fixeria, herlesupreeth, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23661 to look at the new patch set (#4). Change subject: pySim-shell: JSONpath support for updating files/records ...................................................................... pySim-shell: JSONpath support for updating files/records Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa --- M contrib/jenkins.sh M docs/shell.rst M pySim/filesystem.py A pySim/jsonpath.py M requirements.txt M setup.py 6 files changed, 94 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/61/23661/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa Gerrit-Change-Number: 23661 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 13:12:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 13:12:01 +0000 Subject: Change in pysim[master]: pySim-shell: JSONpath support for updating files/records In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23661 ) Change subject: pySim-shell: JSONpath support for updating files/records ...................................................................... Patch Set 4: (4 comments) https://gerrit.osmocom.org/c/pysim/+/23661/3/pySim/jsonpath.py File pySim/jsonpath.py: https://gerrit.osmocom.org/c/pysim/+/23661/3/pySim/jsonpath.py at 1 PS3, Line 1: import json > The copyright header is missing. Done https://gerrit.osmocom.org/c/pysim/+/23661/3/pySim/jsonpath.py at 4 PS3, Line 4: jsonpath > Looks like it's imported, but not used? Done https://gerrit.osmocom.org/c/pysim/+/23661/3/pySim/jsonpath.py at 6 PS3, Line 6: utliity > typo Done https://gerrit.osmocom.org/c/pysim/+/23661/3/pySim/jsonpath.py at 15 PS3, Line 15: givne even more typos you didn't spot :P -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa Gerrit-Change-Number: 23661 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Wed, 07 Apr 2021 13:12:01 +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 Apr 7 13:13:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 13:13:44 +0000 Subject: Change in pysim[master]: pySim-shell: JSONpath support for updating files/records In-Reply-To: References: Message-ID: Hello Jenkins Builder, Falkenber9, fixeria, herlesupreeth, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23661 to look at the new patch set (#5). Change subject: pySim-shell: JSONpath support for updating files/records ...................................................................... pySim-shell: JSONpath support for updating files/records Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa --- M contrib/jenkins.sh M docs/shell.rst M pySim/filesystem.py A pySim/jsonpath.py M requirements.txt M setup.py 6 files changed, 94 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/61/23661/5 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa Gerrit-Change-Number: 23661 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 13:21:39 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 7 Apr 2021 13:21:39 +0000 Subject: Change in pysim[master]: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23652 ) Change subject: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) ...................................................................... Patch Set 3: Code-Review+1 > Patch Set 3: > > I suspect this patch recurrently breaks all (subsequent) tests that run on a codebase that does not include this patch (due to its persistent change of the SPN in the unit under test). > > Related Fun-Fact: It seems that currently sold black sysmocom USIMs are shipped without the SPN set to "Magic". Hello. Yes, there is indeed a problem. This patch indeed breaks the build process. Unfortunately we currently have no way to isolate the test from each other since they are executed on physical cards. We are working on a way to reset all cards to a defined state after each build. For now the problem should go away once this patch is merged. I will keep an eye on this. Best regards. Philipp -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d Gerrit-Change-Number: 23652 Gerrit-PatchSet: 3 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 07 Apr 2021 13:21: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 Apr 7 13:34:53 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 7 Apr 2021 13:34:53 +0000 Subject: Change in osmo-bts[master]: l1sap: use the passed 'trx' pointer in l1sap_chan_act() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23670 ) Change subject: l1sap: use the passed 'trx' pointer in l1sap_chan_act() ...................................................................... l1sap: use the passed 'trx' pointer in l1sap_chan_act() Change-Id: Id94363f2a22eb905ae01e68ddfdf48fc8c646aaf Related: SYS#4895, OS#4941 --- M src/common/l1sap.c 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/70/23670/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 9bb8be3..aee4717 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1977,14 +1977,14 @@ /* our L1 only supports one global TSC for all channels * one one TRX, so we need to make sure not to activate * channels with a different TSC!! */ - if (cd->h0.tsc != (lchan->ts->trx->bts->bsic & 7)) { + if (cd->h0.tsc != (trx->bts->bsic & 7)) { LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "lchan TSC %u != BSIC-TSC %u\n", - cd->h0.tsc, lchan->ts->trx->bts->bsic & 7); + cd->h0.tsc, trx->bts->bsic & 7); return -RSL_ERR_SERV_OPT_UNIMPL; } } - lchan->s = lchan->ts->trx->bts->radio_link_timeout.current; + lchan->s = trx->bts->radio_link_timeout.current; rc = l1sap_chan_act_dact_modify(trx, chan_nr, PRIM_INFO_ACTIVATE, 0); if (rc) @@ -1993,8 +1993,8 @@ /* Init DTX DL FSM if necessary */ if (trx->bts->dtxd && lchan->type != GSM_LCHAN_SDCCH) { char name[32]; - snprintf(name, sizeof(name), "bts%u-trx%u-ts%u-ss%u", lchan->ts->trx->bts->nr, - lchan->ts->trx->nr, lchan->ts->nr, lchan->nr); + snprintf(name, sizeof(name), "bts%u-trx%u-ts%u-ss%u", + trx->bts->nr, trx->nr, lchan->ts->nr, lchan->nr); lchan->tch.dtx.dl_amr_fsm = osmo_fsm_inst_alloc(&dtx_dl_amr_fsm, tall_bts_ctx, lchan, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id94363f2a22eb905ae01e68ddfdf48fc8c646aaf Gerrit-Change-Number: 23670 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 Apr 7 13:34:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 7 Apr 2021 13:34:54 +0000 Subject: Change in osmo-bts[master]: l1sap: use TLVP_PRES_LEN() macro in l1sap_chan_act() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23671 ) Change subject: l1sap: use TLVP_PRES_LEN() macro in l1sap_chan_act() ...................................................................... l1sap: use TLVP_PRES_LEN() macro in l1sap_chan_act() Change-Id: I6793623622fd7303d7dc22117a163a6990497c28 Related: SYS#4895, OS#4941 --- M src/common/l1sap.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/23671/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index aee4717..3ebe8e1 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1969,8 +1969,7 @@ /* osmo-pcu calls this without a valid 'tp' parameter, so we * need to make sure ew don't crash here */ - if (tp && TLVP_PRESENT(tp, GSM48_IE_CHANDESC_2) && - TLVP_LEN(tp, GSM48_IE_CHANDESC_2) >= sizeof(*cd)) { + if (tp && TLVP_PRES_LEN(tp, GSM48_IE_CHANDESC_2, sizeof(*cd))) { cd = (struct gsm48_chan_desc *) TLVP_VAL(tp, GSM48_IE_CHANDESC_2); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6793623622fd7303d7dc22117a163a6990497c28 Gerrit-Change-Number: 23671 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 Apr 7 13:34:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 7 Apr 2021 13:34:55 +0000 Subject: Change in osmo-bts[master]: l1sap: check BTS_FEAT_MULTI_TSC in l1sap_chan_act() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23672 ) Change subject: l1sap: check BTS_FEAT_MULTI_TSC in l1sap_chan_act() ...................................................................... l1sap: check BTS_FEAT_MULTI_TSC in l1sap_chan_act() Instead of blindly assuming what the PHY does support, and what it does not, let's check the related feature vector. Change-Id: I699cdddbfab111855998853548d9cfe956f7c60c Related: SYS#4895, OS#4941 --- M src/common/l1sap.c 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/72/23672/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 3ebe8e1..b8bfa31 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1973,11 +1973,11 @@ cd = (struct gsm48_chan_desc *) TLVP_VAL(tp, GSM48_IE_CHANDESC_2); - /* our L1 only supports one global TSC for all channels - * one one TRX, so we need to make sure not to activate - * channels with a different TSC!! */ - if (cd->h0.tsc != (trx->bts->bsic & 7)) { - LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "lchan TSC %u != BSIC-TSC %u\n", + /* The PHY may not support using different TSCs */ + if (!osmo_bts_has_feature(trx->bts->features, BTS_FEAT_MULTI_TSC) + && cd->h0.tsc != (trx->bts->bsic & 7)) { + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "This PHY does not support " + "lchan TSC %u != BSIC-TSC %u, sending NACK\n", cd->h0.tsc, trx->bts->bsic & 7); return -RSL_ERR_SERV_OPT_UNIMPL; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I699cdddbfab111855998853548d9cfe956f7c60c Gerrit-Change-Number: 23672 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 Apr 7 13:34:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 7 Apr 2021 13:34:55 +0000 Subject: Change in osmo-bts[master]: l1sap: fix wrong IEI and parsing in l1sap_chan_act() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23673 ) Change subject: l1sap: fix wrong IEI and parsing in l1sap_chan_act() ...................................................................... l1sap: fix wrong IEI and parsing in l1sap_chan_act() As the prefix in 'GSM48_IE_CHANDESC_2' implies, this IE belongs to 3GPP TS 04.08 (or TS 44.018), so it can be used in the Radio Resource assignment messages sent to the MS. While in this function we're dealing with 3GPP TS 48.058, and thus the IEI may be (and actually is) different for the RSL messages. Also, according to 3GPP TS 48.058, section 9.3.5, the Channel Description IE is included together with its element identifier, so we need to skip one byte when doing the pointer casting. Change-Id: Id100f4c56fd5c1adad5d925d97240bed82981b9b Related: SYS#4895, OS#4941 --- M src/common/l1sap.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/23673/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index b8bfa31..7702b23 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1962,16 +1962,16 @@ int l1sap_chan_act(struct gsm_bts_trx *trx, uint8_t chan_nr, struct tlv_parsed *tp) { struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); - struct gsm48_chan_desc *cd; + const struct gsm48_chan_desc *cd; int rc; LOGPLCHAN(lchan, DL1C, LOGL_INFO, "activating channel %s\n", rsl_chan_nr_str(chan_nr)); /* osmo-pcu calls this without a valid 'tp' parameter, so we * need to make sure ew don't crash here */ - if (tp && TLVP_PRES_LEN(tp, GSM48_IE_CHANDESC_2, sizeof(*cd))) { - cd = (struct gsm48_chan_desc *) - TLVP_VAL(tp, GSM48_IE_CHANDESC_2); + if (tp && TLVP_PRES_LEN(tp, RSL_IE_CHAN_IDENT, sizeof(*cd) + 1)) { + /* Channel Description IE comes together with its IEI (see 9.3.5) */ + cd = (const struct gsm48_chan_desc *) TLVP_VAL(tp, RSL_IE_CHAN_IDENT) + 1; /* The PHY may not support using different TSCs */ if (!osmo_bts_has_feature(trx->bts->features, BTS_FEAT_MULTI_TSC) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id100f4c56fd5c1adad5d925d97240bed82981b9b Gerrit-Change-Number: 23673 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 Apr 7 13:36:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 7 Apr 2021 13:36:42 +0000 Subject: Change in simtrace2[master]: firmware: qmod-dfu: disable stack protector References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23674 ) Change subject: firmware: qmod-dfu: disable stack protector ...................................................................... firmware: qmod-dfu: disable stack protector Prevent build failure on debian 9, ubuntu 20.04, 20.10, where bin/qmod-dfu-flash.elf does not fit the ROM. Fixes: OS#5081 Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2 --- M firmware/Makefile 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/74/23674/1 diff --git a/firmware/Makefile b/firmware/Makefile index 2d0f62c..b147b0d 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -59,6 +59,11 @@ BIN = bin OBJ = obj/$(BOARD) +# Disable stack protector for code in small ROM regions (OS#5081) +ifeq ($(BOARD)-$(APP), qmod-dfu) +CFLAGS_EXTRA ?= -fno-stack-protector +endif + #------------------------------------------------------------------------------- # Tools #------------------------------------------------------------------------------- @@ -178,6 +183,7 @@ CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" CFLAGS += -DBOARD=\"$(BOARD)\" -DBOARD_$(BOARD) CFLAGS += -DAPPLICATION=\"$(APP)\" -DAPPLICATION_$(APP) +CFLAGS += $(CFLAGS_EXTRA) ASFLAGS = -mcpu=cortex-m3 -mthumb -Wall -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -D__ASSEMBLY__ LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=ResetException -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--print-memory-usage -Wl,--no-undefined $(LIB) #LD_OPTIONAL=-Wl,--print-gc-sections -Wl,--stats -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2 Gerrit-Change-Number: 23674 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 13:37:05 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 7 Apr 2021 13:37:05 +0000 Subject: Change in simtrace2[master]: firmware: qmod-dfu: disable stack protector In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23674 ) Change subject: firmware: qmod-dfu: disable stack protector ...................................................................... Patch Set 1: This fixes the build: https://build.opensuse.org/package/show/home:osmith42/simtrace2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2 Gerrit-Change-Number: 23674 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 07 Apr 2021 13:37: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 Apr 7 13:53:36 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Wed, 7 Apr 2021 13:53:36 +0000 Subject: Change in simtrace2[master]: firmware: qmod-dfu: disable stack protector In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23674 ) Change subject: firmware: qmod-dfu: disable stack protector ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2 Gerrit-Change-Number: 23674 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 13: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 Wed Apr 7 13:56:04 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Wed, 7 Apr 2021 13:56:04 +0000 Subject: Change in simtrace2[master]: firmware: qmod-dfu: disable stack protector In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23674 ) Change subject: firmware: qmod-dfu: disable stack protector ...................................................................... Patch Set 1: I'd argue that we do not want this in general, since it adds canaries to all functions that deal with buffers, and therefore impacts the overall timing in a non determinstic way depending on inlining and optimizations, while contributing nothing in non debug builds. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2 Gerrit-Change-Number: 23674 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 13:56:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 14:12:39 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 7 Apr 2021 14:12:39 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: remove the initial SNS NSVC if it's not part References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23675 ) Change subject: gprs_ns2: sns: remove the initial SNS NSVC if it's not part ...................................................................... gprs_ns2: sns: remove the initial SNS NSVC if it's not part A SNS configuration can be done over a NSVC, however this initial NSVC doesn't need to be part of the configuration. Those NSVC need to be removed when the configuration is done. This wrong behaviour can be seen in the vty `show ns` on NSEI 00001: UDP, ALIVE FSM Instance Name: 'GPRS-NS2-SNS-BSS(NSE00001-SNS)[0x55c72c09b420]', ID: 'NSE00001-SNS' Log-Level: 'DEBUG', State: 'CONFIGURED' Maximum number of remote NS-VCs: 8192, IPv4 Endpoints: 8192, IPv6 Endpoints: 8192 Local IPv4 Endpoints: 10.0.0.1:23000, Signalling Weight: 1, Data Weight: 1 Remote IPv4 Endpoints: 10.0.2.2:23000, Signalling Weight: 1, Data Weight: 0 10.0.2.2:23001, Signalling Weight: 0, Data Weight: 1 3 NS-VC: NSVCI none: UNBLOCKED DYNAMIC data_weight=1 sig_weight=0 udp)[10.0.0.1]:23000<>[10.0.2.2]:23000 NSVCI none: UNBLOCKED DYNAMIC data_weight=0 sig_weight=1 udp)[10.0.0.1]:23000<>[10.0.2.2]:23001 NSVCI none: UNCONFIGURED DYNAMIC data_weight=1 sig_weight=1 udp)[10.0.0.1]:23000<>[10.0.2.2]:8888 The UNCONFIGURED NSVC should not be present in when SNS is in CONFIGURED. Related: SYS#5416 Change-Id: I4045ac6c033ae084743b17a16eef4fcff76589b9 --- M src/gb/gprs_ns2_sns.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/75/23675/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 552e4b8..18f388d 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1368,6 +1368,10 @@ } } + /* remove the initial NSVC if the NSVC isn't part of the configuration */ + if (gss->sns_nsvc->sns_only) + gprs_ns2_free_nsvc(gss->sns_nsvc); + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4045ac6c033ae084743b17a16eef4fcff76589b9 Gerrit-Change-Number: 23675 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 Apr 7 14:53:27 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 7 Apr 2021 14:53:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: remove the initial SNS NSVC if it's not part In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23675 ) Change subject: gprs_ns2: sns: remove the initial SNS NSVC if it's not part ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4045ac6c033ae084743b17a16eef4fcff76589b9 Gerrit-Change-Number: 23675 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 07 Apr 2021 14:53: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 Apr 7 14:53:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 14:53:51 +0000 Subject: Change in simtrace2[master]: firmware: qmod-dfu: disable stack protector In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23674 ) Change subject: firmware: qmod-dfu: disable stack protector ...................................................................... Patch Set 1: > Patch Set 1: > > I'd argue that we do not want this in general, since it adds canaries to all functions that deal with buffers, and therefore impacts the overall timing in a non determinstic way depending on inlining and optimizations, while contributing nothing in non debug builds. fine with me. So we should enable it for all BOARD/APP unless some global DEBUG make variable is set. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2 Gerrit-Change-Number: 23674 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 14:53: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 Wed Apr 7 14:54:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 14:54:20 +0000 Subject: Change in simtrace2[master]: firmware: qmod-dfu: disable stack protector In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23674 ) Change subject: firmware: qmod-dfu: disable stack protector ...................................................................... Patch Set 1: Code-Review+2 merging this now to fix the builds, but hope that osmith can submit the related general change. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2 Gerrit-Change-Number: 23674 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 14: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 Wed Apr 7 14:54:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 14:54:22 +0000 Subject: Change in simtrace2[master]: firmware: qmod-dfu: disable stack protector In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23674 ) Change subject: firmware: qmod-dfu: disable stack protector ...................................................................... firmware: qmod-dfu: disable stack protector Prevent build failure on debian 9, ubuntu 20.04, 20.10, where bin/qmod-dfu-flash.elf does not fit the ROM. Fixes: OS#5081 Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2 --- M firmware/Makefile 1 file changed, 6 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/firmware/Makefile b/firmware/Makefile index 2d0f62c..b147b0d 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -59,6 +59,11 @@ BIN = bin OBJ = obj/$(BOARD) +# Disable stack protector for code in small ROM regions (OS#5081) +ifeq ($(BOARD)-$(APP), qmod-dfu) +CFLAGS_EXTRA ?= -fno-stack-protector +endif + #------------------------------------------------------------------------------- # Tools #------------------------------------------------------------------------------- @@ -178,6 +183,7 @@ CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" CFLAGS += -DBOARD=\"$(BOARD)\" -DBOARD_$(BOARD) CFLAGS += -DAPPLICATION=\"$(APP)\" -DAPPLICATION_$(APP) +CFLAGS += $(CFLAGS_EXTRA) ASFLAGS = -mcpu=cortex-m3 -mthumb -Wall -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -D__ASSEMBLY__ LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=ResetException -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--print-memory-usage -Wl,--no-undefined $(LIB) #LD_OPTIONAL=-Wl,--print-gc-sections -Wl,--stats -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2 Gerrit-Change-Number: 23674 Gerrit-PatchSet: 1 Gerrit-Owner: osmith 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 Wed Apr 7 14:54:42 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 7 Apr 2021 14:54:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: remove the initial SNS NSVC if it's not part In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23675 ) Change subject: gprs_ns2: sns: remove the initial SNS NSVC if it's not part ...................................................................... Patch Set 1: SNS-ADD/DEL/... can be done over any configured NSVC so these endpoints are not needed for this, right? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4045ac6c033ae084743b17a16eef4fcff76589b9 Gerrit-Change-Number: 23675 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 07 Apr 2021 14:54: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 Wed Apr 7 14:55:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 14:55:04 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: remove the initial SNS NSVC if it's not part In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23675 ) Change subject: gprs_ns2: sns: remove the initial SNS NSVC if it's not part ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4045ac6c033ae084743b17a16eef4fcff76589b9 Gerrit-Change-Number: 23675 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 14:55: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 Apr 7 14:55:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 14:55:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: remove the initial SNS NSVC if it's not part In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23675 ) Change subject: gprs_ns2: sns: remove the initial SNS NSVC if it's not part ...................................................................... gprs_ns2: sns: remove the initial SNS NSVC if it's not part A SNS configuration can be done over a NSVC, however this initial NSVC doesn't need to be part of the configuration. Those NSVC need to be removed when the configuration is done. This wrong behaviour can be seen in the vty `show ns` on NSEI 00001: UDP, ALIVE FSM Instance Name: 'GPRS-NS2-SNS-BSS(NSE00001-SNS)[0x55c72c09b420]', ID: 'NSE00001-SNS' Log-Level: 'DEBUG', State: 'CONFIGURED' Maximum number of remote NS-VCs: 8192, IPv4 Endpoints: 8192, IPv6 Endpoints: 8192 Local IPv4 Endpoints: 10.0.0.1:23000, Signalling Weight: 1, Data Weight: 1 Remote IPv4 Endpoints: 10.0.2.2:23000, Signalling Weight: 1, Data Weight: 0 10.0.2.2:23001, Signalling Weight: 0, Data Weight: 1 3 NS-VC: NSVCI none: UNBLOCKED DYNAMIC data_weight=1 sig_weight=0 udp)[10.0.0.1]:23000<>[10.0.2.2]:23000 NSVCI none: UNBLOCKED DYNAMIC data_weight=0 sig_weight=1 udp)[10.0.0.1]:23000<>[10.0.2.2]:23001 NSVCI none: UNCONFIGURED DYNAMIC data_weight=1 sig_weight=1 udp)[10.0.0.1]:23000<>[10.0.2.2]:8888 The UNCONFIGURED NSVC should not be present in when SNS is in CONFIGURED. Related: SYS#5416 Change-Id: I4045ac6c033ae084743b17a16eef4fcff76589b9 --- M src/gb/gprs_ns2_sns.c 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 552e4b8..18f388d 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1368,6 +1368,10 @@ } } + /* remove the initial NSVC if the NSVC isn't part of the configuration */ + if (gss->sns_nsvc->sns_only) + gprs_ns2_free_nsvc(gss->sns_nsvc); + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4045ac6c033ae084743b17a16eef4fcff76589b9 Gerrit-Change-Number: 23675 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 15:02:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 15:02:44 +0000 Subject: Change in pysim[master]: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... Patch Set 8: Code-Review+1 > I fully agree going the more generic way. > Nevertheless, I think it is useful to have that option in pySim-prog. > We use pySim-prog to conveniently batch-(re)program the Sysmocom uSIMs (the green and black ones) according to configuration in CSV files. Thereby we add "NAME" for SPN and "OPMODE" in additional columns. It would be great to work out some strategy for such batch-reprogramming uses cases basd on the new pySim-shell / filesystem.py infrastructure. pySim-shell is of course highly scriptable. Particularly with https://gerrit.osmocom.org/c/pysim/+/23661 and its jsonpath support we can now have a very elegant way to modify only certain logical bits/fields in larger binary files. scripting pySim-shell from external scripts however doesn't currently have any kind of CSV import or the capability to wait for another card, etc. If you have any ideas on how this could/should happen, you now have the chance ot shape the implementation. I haven't really done much planning that way yet. > I will rebase the current code for now. Shall we update to use your new code as well? I don't currently see how you would use the filesystem/pySim-shell code from pySim-prog. not sure what you meant? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 8 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 15:02: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 Apr 7 16:19:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:19:05 +0000 Subject: Change in osmo-bts[master]: l1sap: use the passed 'trx' pointer in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23670 ) Change subject: l1sap: use the passed 'trx' pointer in l1sap_chan_act() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id94363f2a22eb905ae01e68ddfdf48fc8c646aaf Gerrit-Change-Number: 23670 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:19: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 Apr 7 16:19:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:19:12 +0000 Subject: Change in osmo-bts[master]: l1sap: use TLVP_PRES_LEN() macro in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23671 ) Change subject: l1sap: use TLVP_PRES_LEN() macro in l1sap_chan_act() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6793623622fd7303d7dc22117a163a6990497c28 Gerrit-Change-Number: 23671 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:19: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 Apr 7 16:19:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:19:29 +0000 Subject: Change in osmo-bts[master]: l1sap: check BTS_FEAT_MULTI_TSC in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23672 ) Change subject: l1sap: check BTS_FEAT_MULTI_TSC in l1sap_chan_act() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I699cdddbfab111855998853548d9cfe956f7c60c Gerrit-Change-Number: 23672 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:19:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:19:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:19:32 +0000 Subject: Change in osmo-bts[master]: l1sap: use the passed 'trx' pointer in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23670 ) Change subject: l1sap: use the passed 'trx' pointer in l1sap_chan_act() ...................................................................... l1sap: use the passed 'trx' pointer in l1sap_chan_act() Change-Id: Id94363f2a22eb905ae01e68ddfdf48fc8c646aaf Related: SYS#4895, OS#4941 --- M src/common/l1sap.c 1 file changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 9bb8be3..aee4717 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1977,14 +1977,14 @@ /* our L1 only supports one global TSC for all channels * one one TRX, so we need to make sure not to activate * channels with a different TSC!! */ - if (cd->h0.tsc != (lchan->ts->trx->bts->bsic & 7)) { + if (cd->h0.tsc != (trx->bts->bsic & 7)) { LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "lchan TSC %u != BSIC-TSC %u\n", - cd->h0.tsc, lchan->ts->trx->bts->bsic & 7); + cd->h0.tsc, trx->bts->bsic & 7); return -RSL_ERR_SERV_OPT_UNIMPL; } } - lchan->s = lchan->ts->trx->bts->radio_link_timeout.current; + lchan->s = trx->bts->radio_link_timeout.current; rc = l1sap_chan_act_dact_modify(trx, chan_nr, PRIM_INFO_ACTIVATE, 0); if (rc) @@ -1993,8 +1993,8 @@ /* Init DTX DL FSM if necessary */ if (trx->bts->dtxd && lchan->type != GSM_LCHAN_SDCCH) { char name[32]; - snprintf(name, sizeof(name), "bts%u-trx%u-ts%u-ss%u", lchan->ts->trx->bts->nr, - lchan->ts->trx->nr, lchan->ts->nr, lchan->nr); + snprintf(name, sizeof(name), "bts%u-trx%u-ts%u-ss%u", + trx->bts->nr, trx->nr, lchan->ts->nr, lchan->nr); lchan->tch.dtx.dl_amr_fsm = osmo_fsm_inst_alloc(&dtx_dl_amr_fsm, tall_bts_ctx, lchan, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id94363f2a22eb905ae01e68ddfdf48fc8c646aaf Gerrit-Change-Number: 23670 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 Wed Apr 7 16:19:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:19:32 +0000 Subject: Change in osmo-bts[master]: l1sap: use TLVP_PRES_LEN() macro in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23671 ) Change subject: l1sap: use TLVP_PRES_LEN() macro in l1sap_chan_act() ...................................................................... l1sap: use TLVP_PRES_LEN() macro in l1sap_chan_act() Change-Id: I6793623622fd7303d7dc22117a163a6990497c28 Related: SYS#4895, OS#4941 --- M src/common/l1sap.c 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index aee4717..3ebe8e1 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1969,8 +1969,7 @@ /* osmo-pcu calls this without a valid 'tp' parameter, so we * need to make sure ew don't crash here */ - if (tp && TLVP_PRESENT(tp, GSM48_IE_CHANDESC_2) && - TLVP_LEN(tp, GSM48_IE_CHANDESC_2) >= sizeof(*cd)) { + if (tp && TLVP_PRES_LEN(tp, GSM48_IE_CHANDESC_2, sizeof(*cd))) { cd = (struct gsm48_chan_desc *) TLVP_VAL(tp, GSM48_IE_CHANDESC_2); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6793623622fd7303d7dc22117a163a6990497c28 Gerrit-Change-Number: 23671 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 Wed Apr 7 16:20:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:20:10 +0000 Subject: Change in osmo-bts[master]: l1sap: fix wrong IEI and parsing in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23673 ) Change subject: l1sap: fix wrong IEI and parsing in l1sap_chan_act() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id100f4c56fd5c1adad5d925d97240bed82981b9b Gerrit-Change-Number: 23673 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16: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 Wed Apr 7 16:21:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:21:12 +0000 Subject: Change in pysim[master]: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23652 ) Change subject: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d Gerrit-Change-Number: 23652 Gerrit-PatchSet: 3 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 07 Apr 2021 16:21:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:21:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:21:15 +0000 Subject: Change in pysim[master]: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23652 ) Change subject: SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) ...................................................................... SysmoISIM-SJA2: Add option to set Service Provider Name (SPN) Same implementation as for sysmoUSIM-SJS1 Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d --- M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 8 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/pySim/cards.py b/pySim/cards.py index 5eb2884..ad6ddbc 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1266,6 +1266,11 @@ # select DF_GSM self._scc.select_path(['7f20']) + # set Service Provider Name + if p.get('name') is not None: + content = enc_spn(p['name'], True, True) + data, sw = self._scc.update_binary('6F46', rpad(content, 32)) + # write EF.IMSI if p.get('imsi'): self._scc.update_binary('6f07', enc_imsi(p['imsi'])) diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index b2de818..ae332a8 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -6,9 +6,9 @@ GID1: ffffffffffffffffffff GID2: ffffffffffffffffffff SMSP: ffffffffffffffffffffffffffffffffffffffffffffffffe1ffffffffffffffffffffffff0581005155f5ffffffffffff000000 -SPN: Not available -Display HPLMN: False -Display OPLMN: False +SPN: Magic +Display HPLMN: True +Display OPLMN: True PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff PLMNwAcT: 00f110ffff # MCC: 001 MNC: 001 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a9dd2fe85126584758ea4cfa127f9cd14ab0c7d Gerrit-Change-Number: 23652 Gerrit-PatchSet: 3 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:21:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:21:49 +0000 Subject: Change in pysim[master]: ts_102_221.py: fix fixup_fcp_proprietary_tlv_map() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23665 ) Change subject: ts_102_221.py: fix fixup_fcp_proprietary_tlv_map() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8359527c9ff303b257b181b87dc440f27735ece9 Gerrit-Change-Number: 23665 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 16: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 Wed Apr 7 16:21:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:21:52 +0000 Subject: Change in pysim[master]: ts_102_221.py: fix fixup_fcp_proprietary_tlv_map() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23665 ) Change subject: ts_102_221.py: fix fixup_fcp_proprietary_tlv_map() ...................................................................... ts_102_221.py: fix fixup_fcp_proprietary_tlv_map() The function fixup_fcp_proprietary_tlv_map() addes propritary TLV tags in the range of d0 to ff to the TLV map. However, the spec defines this range as b7 and b8 of the first tag byte set to 1. This results in a range from c0 to ff. See also ETSI TS 102 221, section 11.1.1.4.6.0 Change-Id: I8359527c9ff303b257b181b87dc440f27735ece9 Related: OS#4963 --- M pySim/ts_102_221.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/pySim/ts_102_221.py b/pySim/ts_102_221.py index b8fce1b..88a36a1 100644 --- a/pySim/ts_102_221.py +++ b/pySim/ts_102_221.py @@ -129,7 +129,7 @@ def fixup_fcp_proprietary_tlv_map(tlv_map): if 'D0' in tlv_map: return - for i in range(0xd0, 0xff): + for i in range(0xc0, 0xff): i_hex = i2h([i]).upper() tlv_map[i_hex] = 'proprietary_' + i_hex -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8359527c9ff303b257b181b87dc440f27735ece9 Gerrit-Change-Number: 23665 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:22:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:22:08 +0000 Subject: Change in pysim[master]: pySim-shell: fix wrong reference to iccid. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23668 ) Change subject: pySim-shell: fix wrong reference to iccid. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icb7378929187a4fc39a8f1ddbaa18291f16caf79 Gerrit-Change-Number: 23668 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16: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 Wed Apr 7 16:22:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:22:34 +0000 Subject: Change in pysim[master]: tests: remove .example files for simcard tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23669 ) Change subject: tests: remove .example files for simcard tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee34cad74b50755e1007506f909da9766fa8412e Gerrit-Change-Number: 23669 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:22: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 Apr 7 16:23:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:23:08 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23631 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 3 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 07 Apr 2021 16:23:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:23:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:23:11 +0000 Subject: Change in pysim[master]: Use zero padding for EF['ACC'] field In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23631 ) Change subject: Use zero padding for EF['ACC'] field ...................................................................... Use zero padding for EF['ACC'] field The ``EF_ACC`` field defines the access control class (ACC) for a subscriber. Without this patch, the implementation adds padding 1 towards the most significant bits if the input is shorter than 2 bytes. However, it should be padded with 0, otherwise additional ACCs are allocated to the subscriber. (Probably only a single bit shall be set to 1) Excerpt from [ETSI TS 131 102, 4.2.15](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` EF_ACC: Two bytes: B1, B2 B1.b8...B1.b4: high priority users (class 15...11) B1.b3: always 0 B1.b2...B1.b2 and B2.b7...B2.b0: normal priority users (class 9...0) - to be evenly distributed across subscribers ``` **Legend:** Byte X, bit Y: BX.bY Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 --- M pySim/cards.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/pySim/cards.py b/pySim/cards.py index ad6ddbc..8ac80bf 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -76,7 +76,7 @@ return sw def update_acc(self, acc): - data, sw = self._scc.update_binary(EF['ACC'], lpad(acc, 4)) + data, sw = self._scc.update_binary(EF['ACC'], lpad(acc, 4, c='0')) return sw def read_hplmn_act(self): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b8dc01a6c48adad1ed8158de59b12519ed688e9 Gerrit-Change-Number: 23631 Gerrit-PatchSet: 4 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:23:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:23:31 +0000 Subject: Change in pysim[master]: commands, ts_102_221: replace pytlv with uttlv In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/23483 ) Change subject: commands, ts_102_221: replace pytlv with uttlv ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I971b818836aff2fbeb6769f819d496cee4bfa7cf Gerrit-Change-Number: 23483 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: merlinchlosta Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:23:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:23:55 +0000 Subject: Change in docker-playground[master]: docker_images_require: list installed Osmocom pkgs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23664 ) Change subject: docker_images_require: list installed Osmocom pkgs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23664 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I62670017d790fd67c6a0d8d464386c0f8e94c1a8 Gerrit-Change-Number: 23664 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 07 Apr 2021 16:23: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 Apr 7 16:25:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:25:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|re... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23455 ) Change subject: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset) ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idbb83ea319bbdc94177febdd66e79c49fce7fdd2 Gerrit-Change-Number: 23455 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 16:25:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:25:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:25:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|re... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23455 ) Change subject: gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset) ...................................................................... gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset) The vty wasn't printing anything to the user if it was a success or not Change-Id: Idbb83ea319bbdc94177febdd66e79c49fce7fdd2 --- M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c 2 files changed, 34 insertions(+), 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_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 85cd2ad..9a6bfc2 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -784,6 +784,10 @@ * \return 0 on success; negative on error */ int ns2_vc_block(struct gprs_ns2_vc *nsvc) { + struct gprs_ns2_vc_priv *priv = nsvc->fi->priv; + if (priv->initiate_block) + return -EALREADY; + return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_OM_BLOCK, NULL); } @@ -792,6 +796,10 @@ * \return 0 on success; negative on error */ int ns2_vc_unblock(struct gprs_ns2_vc *nsvc) { + struct gprs_ns2_vc_priv *priv = nsvc->fi->priv; + if (!priv->initiate_block) + return -EALREADY; + return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_OM_UNBLOCK, NULL); } diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index fc060ae..b678db4 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -2044,6 +2044,7 @@ { struct gprs_ns2_inst *nsi = vty_nsi; struct gprs_ns2_vc *nsvc; + int rc; uint16_t id = atoi(argv[0]); @@ -2054,11 +2055,34 @@ } if (!strcmp(argv[1], "block")) { - ns2_vc_block(nsvc); + rc = ns2_vc_block(nsvc); + switch (rc) { + case 0: + vty_out(vty, "The NS-VC %05u will be blocked.%s", id, VTY_NEWLINE); + return CMD_SUCCESS; + case -EALREADY: + vty_out(vty, "The NS-VC %05u is already blocked.%s", id, VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + default: + vty_out(vty, "An unknown error %d happend on NS-VC %05u.%s", rc, id, VTY_NEWLINE); + return CMD_WARNING; + } } else if (!strcmp(argv[1], "unblock")) { - ns2_vc_unblock(nsvc); + rc = ns2_vc_unblock(nsvc); + switch (rc) { + case 0: + vty_out(vty, "The NS-VC %05u will be unblocked.%s", id, VTY_NEWLINE); + return CMD_SUCCESS; + case -EALREADY: + vty_out(vty, "The NS-VC %05u is already unblocked.%s", id, VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + default: + vty_out(vty, "An unknown error %d happend on NS-VC %05u.%s", rc, id, VTY_NEWLINE); + return CMD_WARNING; + } } else { ns2_vc_reset(nsvc); + vty_out(vty, "The NS-VC %05u has been resetted.%s", id, VTY_NEWLINE); } return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idbb83ea319bbdc94177febdd66e79c49fce7fdd2 Gerrit-Change-Number: 23455 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:26:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:26:36 +0000 Subject: Change in osmo-bsc[master]: [hopping] vty: ensure no duplicate hopping ARFCN entries In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23645 ) Change subject: [hopping] vty: ensure no duplicate hopping ARFCN entries ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie27c859e3f16ada08a5cdc8ab4ac6e20a885a378 Gerrit-Change-Number: 23645 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:26:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:26:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:26:45 +0000 Subject: Change in osmo-bsc[master]: [hopping] generate_cell_chan_list(): make some pointers const In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23646 ) Change subject: [hopping] generate_cell_chan_list(): make some pointers const ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ied4ee60224d71567ec613942ba1c03088e9b02f3 Gerrit-Change-Number: 23646 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:26:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:27:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:27:12 +0000 Subject: Change in osmo-bsc[master]: [hopping] gsm48_send_rr_ass_cmd(): use Cell Channel Description from SI1 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23647 ) Change subject: [hopping] gsm48_send_rr_ass_cmd(): use Cell Channel Description from SI1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9c8c5ae9059ff096765412b3f3c7181a94163afc Gerrit-Change-Number: 23647 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:27: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 Apr 7 16:27:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:27:28 +0000 Subject: Change in osmo-bsc[master]: [hopping] generate_ma_for_ts() returns no meaningful value In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23648 ) Change subject: [hopping] generate_ma_for_ts() returns no meaningful value ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic3ba3323459bba1336adb1f902cb2371edea1f71 Gerrit-Change-Number: 23648 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:27:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:27:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:27:33 +0000 Subject: Change in osmo-bsc[master]: [hopping] vty: ensure no duplicate hopping ARFCN entries In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23645 ) Change subject: [hopping] vty: ensure no duplicate hopping ARFCN entries ...................................................................... [hopping] vty: ensure no duplicate hopping ARFCN entries Change-Id: Ie27c859e3f16ada08a5cdc8ab4ac6e20a885a378 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 10 insertions(+), 0 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 91eaee0..6a6411f 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -5597,6 +5597,11 @@ return CMD_WARNING; } + if (bitvec_get_bit_pos(&ts->hopping.arfcns, arfcn) == ONE) { + vty_out(vty, "%% ARFCN %" PRIu16 " is already set%s", arfcn, VTY_NEWLINE); + return CMD_WARNING; + } + bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, 1); return CMD_SUCCESS; @@ -5618,6 +5623,11 @@ return CMD_WARNING; } + if (bitvec_get_bit_pos(&ts->hopping.arfcns, arfcn) != ONE) { + vty_out(vty, "%% ARFCN %" PRIu16 " is not set%s", arfcn, VTY_NEWLINE); + return CMD_WARNING; + } + bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, 0); return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie27c859e3f16ada08a5cdc8ab4ac6e20a885a378 Gerrit-Change-Number: 23645 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 Wed Apr 7 16:27:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:27:34 +0000 Subject: Change in osmo-bsc[master]: [hopping] generate_cell_chan_list(): make some pointers const In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23646 ) Change subject: [hopping] generate_cell_chan_list(): make some pointers const ...................................................................... [hopping] generate_cell_chan_list(): make some pointers const Change-Id: Ied4ee60224d71567ec613942ba1c03088e9b02f3 --- M src/osmo-bsc/system_information.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index 5357d20..e2ac04d 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -577,8 +577,8 @@ /* generate a cell channel list as per Section 10.5.2.1b of 04.08 */ int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts) { - struct gsm_bts_trx *trx; struct bitvec *bv = &bts->si_common.cell_alloc; + const struct gsm_bts_trx *trx; /* Zero-initialize the bit-vector */ memset(bv->data, 0, bv->data_len); @@ -589,7 +589,7 @@ /* Always add the TRX's ARFCN */ bitvec_set_bit_pos(bv, trx->arfcn, 1); for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { - struct gsm_bts_trx_ts *ts = &trx->ts[i]; + const struct gsm_bts_trx_ts *ts = &trx->ts[i]; /* Add any ARFCNs present in hopping channels */ for (j = 0; j < 1024; j++) { if (bitvec_get_bit_pos(&ts->hopping.arfcns, j)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ied4ee60224d71567ec613942ba1c03088e9b02f3 Gerrit-Change-Number: 23646 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 Wed Apr 7 16:27:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:27:35 +0000 Subject: Change in osmo-bsc[master]: [hopping] gsm48_send_rr_ass_cmd(): use Cell Channel Description from SI1 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23647 ) Change subject: [hopping] gsm48_send_rr_ass_cmd(): use Cell Channel Description from SI1 ...................................................................... [hopping] gsm48_send_rr_ass_cmd(): use Cell Channel Description from SI1 Calling generate_cell_chan_list() on each Assignment Command is quite expensive, because this function basically re-constructs the Cell Allocation (using bitvec API) and the Frequency List from scratch. This IE can be borrowed from pre-calculated SI1 message, so let's do this. Change-Id: I9c8c5ae9059ff096765412b3f3c7181a94163afc --- M src/osmo-bsc/gsm_04_08_rr.c 1 file changed, 5 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index a448126..4a47c66 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -592,9 +592,11 @@ /* Cell Channel Description (freq. hopping), TV (see 3GPP TS 44.018, 10.5.2.1b) */ if (lchan->ts->hopping.enabled) { - uint8_t *chan_desc = msgb_put(msg, 1 + 16); /* tag + fixed length */ - generate_cell_chan_list(chan_desc + 1, dest_lchan->ts->trx->bts); - chan_desc[0] = GSM48_IE_CELL_CH_DESC; + const struct gsm48_system_information_type_1 *si1 = \ + GSM_BTS_SI(lchan->ts->trx->bts, 1); + msgb_tv_fixed_put(msg, GSM48_IE_CELL_CH_DESC, + sizeof(si1->cell_channel_description), + si1->cell_channel_description); } msgb_tv_put(msg, GSM48_IE_CHANMODE_1, lchan->tch_mode); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9c8c5ae9059ff096765412b3f3c7181a94163afc Gerrit-Change-Number: 23647 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 Wed Apr 7 16:27:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:27:35 +0000 Subject: Change in osmo-bsc[master]: [hopping] generate_ma_for_ts() returns no meaningful value In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23648 ) Change subject: [hopping] generate_ma_for_ts() returns no meaningful value ...................................................................... [hopping] generate_ma_for_ts() returns no meaningful value Change-Id: Ic3ba3323459bba1336adb1f902cb2371edea1f71 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 2 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index ec07410..6c7c275 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -256,7 +256,7 @@ } /* Produce a MA as specified in 10.5.2.21 */ -static int generate_ma_for_ts(struct gsm_bts_trx_ts *ts) +static void generate_ma_for_ts(struct gsm_bts_trx_ts *ts) { /* we have three bitvecs: the per-timeslot ARFCNs, the cell chan ARFCNs * and the MA */ @@ -271,7 +271,7 @@ memset(ma->data, 0, ma->data_len); if (!ts->hopping.enabled) - return 0; + return; /* count the number of ARFCNs in the cell channel allocation */ num_cell_arfcns = 0; @@ -303,8 +303,6 @@ else bitvec_set_bit_pos(ma, ma->cur_bit, 0); } - - return 0; } static void bootstrap_rsl(struct gsm_bts_trx *trx) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic3ba3323459bba1336adb1f902cb2371edea1f71 Gerrit-Change-Number: 23648 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 Wed Apr 7 16:28:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:28:43 +0000 Subject: Change in osmo-bsc[master]: [hopping] Rework generation of Cell/Mobile Allocation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23649 ) Change subject: [hopping] Rework generation of Cell/Mobile Allocation ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I98211fb0684a973239f5760e1de52a24a1f4c33c Gerrit-Change-Number: 23649 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 16: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 Wed Apr 7 16:29:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:29:46 +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 4: Code-Review+1 -- 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: 4 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 16:29:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:30:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:30:54 +0000 Subject: Change in ...osmo-python-tests[master]: Use proper python3 shebang in all modules In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/python/osmo-python-tests/+/23626 ) Change subject: Use proper python3 shebang in all modules ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/python/osmo-python-tests/+/23626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-Change-Id: I1295be505f4ec30e809297a474b689e6c0cdf505 Gerrit-Change-Number: 23626 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 07 Apr 2021 16:30:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:30:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:30:56 +0000 Subject: Change in ...osmo-python-tests[master]: Use proper python3 shebang in all modules In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/python/osmo-python-tests/+/23626 ) Change subject: Use proper python3 shebang in all modules ...................................................................... Use proper python3 shebang in all modules Change-Id: I1295be505f4ec30e809297a474b689e6c0cdf505 --- M osmopy/osmo_ipa.py M osmopy/trap_helper.py M osmopy/twisted_ipa.py M scripts/ctrl2cgi.py M scripts/osmo_rate_ctr2csv.py M scripts/osmo_trap2cgi.py M scripts/soap.py M setup.py 8 files changed, 8 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/osmopy/osmo_ipa.py b/osmopy/osmo_ipa.py index f957f41..5538d27 100755 --- a/osmopy/osmo_ipa.py +++ b/osmopy/osmo_ipa.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/osmopy/trap_helper.py b/osmopy/trap_helper.py index d942cd2..a48770b 100644 --- a/osmopy/trap_helper.py +++ b/osmopy/trap_helper.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/osmopy/twisted_ipa.py b/osmopy/twisted_ipa.py index 5b65f12..f39bc5c 100755 --- a/osmopy/twisted_ipa.py +++ b/osmopy/twisted_ipa.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/scripts/ctrl2cgi.py b/scripts/ctrl2cgi.py index 95ff788..3e8f87d 100755 --- a/scripts/ctrl2cgi.py +++ b/scripts/ctrl2cgi.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/scripts/osmo_rate_ctr2csv.py b/scripts/osmo_rate_ctr2csv.py index 1e3fc9f..a66fb01 100755 --- a/scripts/osmo_rate_ctr2csv.py +++ b/scripts/osmo_rate_ctr2csv.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/scripts/osmo_trap2cgi.py b/scripts/osmo_trap2cgi.py index ca73fa8..a03fd2b 100755 --- a/scripts/osmo_trap2cgi.py +++ b/scripts/osmo_trap2cgi.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/scripts/soap.py b/scripts/soap.py index 0cb2184..8a5f514 100755 --- a/scripts/soap.py +++ b/scripts/soap.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # -*- mode: python-mode; py-indent-tabs-mode: nil -*- """ /* diff --git a/setup.py b/setup.py index ab604ce..301420a 100755 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Osmopython: test utilities for osmocom programs # Copyright (C) 2013 Katerina Barone-Adesi kat.obsc at gmail.com -- To view, visit https://gerrit.osmocom.org/c/python/osmo-python-tests/+/23626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-Change-Id: I1295be505f4ec30e809297a474b689e6c0cdf505 Gerrit-Change-Number: 23626 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:32:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:32:01 +0000 Subject: Change in libosmocore[master]: vty/logging: use consistent quiting in warning messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23628 ) Change subject: vty/logging: use consistent quiting in warning messages ...................................................................... Patch Set 1: Code-Review+2 heh, I always used the backticks as this is what we used in iptables error messages ;) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifded63a38caac26e174fc6cb69dead7bc83db344 Gerrit-Change-Number: 23628 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16: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 Wed Apr 7 16:32:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:32:11 +0000 Subject: Change in libosmocore[master]: vty/logging: ensure consistent '%' prefix for warnings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23629 ) Change subject: vty/logging: ensure consistent '%' prefix for warnings ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2b2bab61e46668c3b4b0ccad88d02b6d00a83544 Gerrit-Change-Number: 23629 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:32: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 Apr 7 16:33:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:33:14 +0000 Subject: Change in libosmocore[master]: vty/logging: logp: properly handle library specific sub-systems In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23630 ) Change subject: vty/logging: logp: properly handle library specific sub-systems ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If86563e169fe1243adfa7b09c9d65d9f88c8a99e Gerrit-Change-Number: 23630 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:33: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 Apr 7 16:33:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:33:18 +0000 Subject: Change in libosmocore[master]: vty/logging: use consistent quiting in warning messages In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23628 ) Change subject: vty/logging: use consistent quiting in warning messages ...................................................................... vty/logging: use consistent quiting in warning messages Change-Id: Ifded63a38caac26e174fc6cb69dead7bc83db344 --- M src/vty/logging_vty.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 48b039b..cc250c0 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -372,12 +372,12 @@ int level = log_parse_level(argv[1]); if (level < 0) { - vty_out(vty, "Invalid level `%s'%s", argv[1], VTY_NEWLINE); + vty_out(vty, "Invalid level '%s'%s", argv[1], VTY_NEWLINE); return CMD_WARNING; } if (category < 0) { - vty_out(vty, "Invalid category `%s'%s", argv[0], VTY_NEWLINE); + vty_out(vty, "Invalid category '%s'%s", argv[0], VTY_NEWLINE); return CMD_WARNING; } @@ -889,7 +889,7 @@ if (!tgt) { tgt = log_target_create_file(fname); if (!tgt) { - vty_out(vty, "%% Unable to create file `%s'%s", + vty_out(vty, "%% Unable to create file '%s'%s", fname, VTY_NEWLINE); RET_WITH_UNLOCK(CMD_WARNING); } @@ -913,7 +913,7 @@ log_tgt_mutex_lock(); tgt = log_target_find(LOG_TGT_TYPE_FILE, fname); if (!tgt) { - vty_out(vty, "%% No such log file `%s'%s", + vty_out(vty, "%% No such log file '%s'%s", fname, VTY_NEWLINE); RET_WITH_UNLOCK(CMD_WARNING); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifded63a38caac26e174fc6cb69dead7bc83db344 Gerrit-Change-Number: 23628 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:33:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:33:18 +0000 Subject: Change in libosmocore[master]: vty/logging: ensure consistent '%' prefix for warnings In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23629 ) Change subject: vty/logging: ensure consistent '%' prefix for warnings ...................................................................... vty/logging: ensure consistent '%' prefix for warnings Change-Id: I2b2bab61e46668c3b4b0ccad88d02b6d00a83544 --- M src/vty/logging_vty.c M tests/logging/logging_vty_test.vty 2 files changed, 7 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index cc250c0..5f31b39 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -131,7 +131,7 @@ conn = (struct telnet_connection *) vty->priv; if (conn->dbg) { - vty_out(vty, "Logging already enabled.%s", VTY_NEWLINE); + vty_out(vty, "%% Logging already enabled.%s", VTY_NEWLINE); return CMD_WARNING; } @@ -158,7 +158,7 @@ conn = (struct telnet_connection *) vty->priv; if (!conn->dbg) - vty_out(vty, "Logging was not enabled.%s", VTY_NEWLINE); + vty_out(vty, "%% Logging was not enabled.%s", VTY_NEWLINE); return conn->dbg; } @@ -372,12 +372,12 @@ int level = log_parse_level(argv[1]); if (level < 0) { - vty_out(vty, "Invalid level '%s'%s", argv[1], VTY_NEWLINE); + vty_out(vty, "%% Invalid level '%s'%s", argv[1], VTY_NEWLINE); return CMD_WARNING; } if (category < 0) { - vty_out(vty, "Invalid category '%s'%s", argv[0], VTY_NEWLINE); + vty_out(vty, "%% Invalid category '%s'%s", argv[0], VTY_NEWLINE); return CMD_WARNING; } @@ -595,7 +595,7 @@ char **dptr = vty->index_sub; if (!dptr) { - vty_out(vty, "vty->index_sub == NULL%s", VTY_NEWLINE); + vty_out(vty, "%% vty->index_sub == NULL%s", VTY_NEWLINE); return CMD_WARNING; } @@ -616,7 +616,7 @@ char **dptr = vty->index_sub; if (!dptr) { - vty_out(vty, "vty->index_sub == NULL%s", VTY_NEWLINE); + vty_out(vty, "%% vty->index_sub == NULL%s", VTY_NEWLINE); return CMD_WARNING; } diff --git a/tests/logging/logging_vty_test.vty b/tests/logging/logging_vty_test.vty index 91c2a48..30e73ab 100644 --- a/tests/logging/logging_vty_test.vty +++ b/tests/logging/logging_vty_test.vty @@ -29,7 +29,7 @@ logging_vty_test(config)# exit logging_vty_test# logging level force-all notice -Logging was not enabled. +% Logging was not enabled. logging_vty_test# logging enable logging_vty_test# logging filter all 1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2b2bab61e46668c3b4b0ccad88d02b6d00a83544 Gerrit-Change-Number: 23629 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 Wed Apr 7 16:36:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:36:29 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... Patch Set 1: Code-Review+1 we might want to keep one config file with 'sysmobts' around for a related unit test to ensure that the backwards compatibility works? just an idea. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 16:36: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 Apr 7 16:41:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:41:07 +0000 Subject: Change in osmo-bsc[master]: abis_nm: rework warnings about unknown / not supported features In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18599 ) Change subject: abis_nm: rework warnings about unknown / not supported features ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b Gerrit-Change-Number: 18599 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:41:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:41:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:41:19 +0000 Subject: Change in osmo-bsc[master]: abis_nm: cosmetic: use osmo_bts_feature_name() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18604 ) Change subject: abis_nm: cosmetic: use osmo_bts_feature_name() ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I15078ac030b0b824a554239b19bc501c624e2a87 Gerrit-Change-Number: 18604 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16: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 Apr 7 16:41:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:41:22 +0000 Subject: Change in osmo-bsc[master]: abis_nm: rework warnings about unknown / not supported features In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18599 ) Change subject: abis_nm: rework warnings about unknown / not supported features ...................................................................... abis_nm: rework warnings about unknown / not supported features The reported feature vector may contain new features the BSC is not aware of. Report each of them individually as NOTICE. It's normal when some BTS feature is considered as not supported by the BSC, but a BTS reports that it is - do not log this. Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b --- M src/osmo-bsc/abis_nm.c 1 file changed, 14 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index b377c4a..30d6fa3 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -594,11 +594,20 @@ memcpy(bts->_features_data, TLVP_VAL(tp, NM_ATT_MANUF_ID), len); - for (i = 0; i < _NUM_BTS_FEAT; i++) { - if (osmo_bts_has_feature(&bts->features, i) != osmo_bts_has_feature(&bts->model->features, i)) { - LOGPMO(&bts->mo, DNM, LOGL_NOTICE, "Feature '%s' reported via OML does not match statically " - "set feature: %u != %u. Please fix.\n", get_value_string(osmo_bts_features_descs, i), - osmo_bts_has_feature(&bts->features, i), osmo_bts_has_feature(&bts->model->features, i)); + /* Check each BTS feature in the reported vector */ + for (i = 0; i < len * 8; i++) { + bool Frep = osmo_bts_has_feature(&bts->features, i); + if (i >= _NUM_BTS_FEAT && Frep) { + LOGPMO(&bts->mo, DNM, LOGL_NOTICE, "Get Attributes Response: " + "unknown feature 0x%02x. Consider upgrading osmo-bsc.\n", i); + continue; + } + + bool Fexp = osmo_bts_has_feature(&bts->model->features, i); + if (!Frep && Fexp) { + LOGPMO(&bts->mo, DNM, LOGL_NOTICE, "Get Attributes Response: " + "reported feature '%s' is not supported, while we thought it is.\n", + get_value_string(osmo_bts_features_descs, i)); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2f925bcdb010cb10d074bf7c82619e3ae1f8818b Gerrit-Change-Number: 18599 Gerrit-PatchSet: 8 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:41:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:41:23 +0000 Subject: Change in osmo-bsc[master]: abis_nm: cosmetic: use osmo_bts_feature_name() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18604 ) Change subject: abis_nm: cosmetic: use osmo_bts_feature_name() ...................................................................... abis_nm: cosmetic: use osmo_bts_feature_name() Change-Id: I15078ac030b0b824a554239b19bc501c624e2a87 --- M src/osmo-bsc/abis_nm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 30d6fa3..3eab14e 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -607,7 +607,7 @@ if (!Frep && Fexp) { LOGPMO(&bts->mo, DNM, LOGL_NOTICE, "Get Attributes Response: " "reported feature '%s' is not supported, while we thought it is.\n", - get_value_string(osmo_bts_features_descs, i)); + osmo_bts_feature_name(i)); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I15078ac030b0b824a554239b19bc501c624e2a87 Gerrit-Change-Number: 18604 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:42:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:42:44 +0000 Subject: Change in docker-playground[master]: Check in GCC 4.8.2 based cross compiler for ARM EABI target In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23518 ) Change subject: Check in GCC 4.8.2 based cross compiler for ARM EABI target ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ide93843836f059a3750e92a973d0a6d9cf9a5638 Gerrit-Change-Number: 23518 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 16:42: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 Apr 7 16:42:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:42:46 +0000 Subject: Change in docker-playground[master]: Check in GCC 4.8.2 based cross compiler for ARM EABI target In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23518 ) Change subject: Check in GCC 4.8.2 based cross compiler for ARM EABI target ...................................................................... Check in GCC 4.8.2 based cross compiler for ARM EABI target I used this one for building old OsmocomBB branches, which do not compile with modern arm-none-eabi-{gcc,binutils,newlib} toolchain. Change-Id: Ide93843836f059a3750e92a973d0a6d9cf9a5638 --- A arm-none-eabi-gcc-4.8.2/Dockerfile A arm-none-eabi-gcc-4.8.2/Makefile A arm-none-eabi-gcc-4.8.2/patches/gcc-fix-inline.patch A arm-none-eabi-gcc-4.8.2/patches/gcc-fix-texi.patch A arm-none-eabi-gcc-4.8.2/patches/gcc-multilib-config.patch 5 files changed, 132 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve diff --git a/arm-none-eabi-gcc-4.8.2/Dockerfile b/arm-none-eabi-gcc-4.8.2/Dockerfile new file mode 100644 index 0000000..8794a95 --- /dev/null +++ b/arm-none-eabi-gcc-4.8.2/Dockerfile @@ -0,0 +1,79 @@ +FROM debian:stretch + +MAINTAINER Vadim Yanitskiy + +ENV BINUTILS_SRC=http://ftp.gnu.org/gnu/binutils/binutils-2.21.1a.tar.bz2 +ENV NEWLIB_SRC=https://sourceware.org/pub/newlib/newlib-1.19.0.tar.gz +ENV GCC_SRC=http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2 +ENV PREFIX=/usr/local + +# Install build tools and dependencies +RUN apt update && apt install -y \ + build-essential \ + libmpfr-dev \ + libmpc-dev \ + libgmp3-dev \ + zlib1g-dev \ + zlibc \ + texinfo \ + bison \ + flex \ + curl \ + patch \ + file + +# Stage 0: Download and patch the source code +RUN curl -SL ${BINUTILS_SRC} | tar -xj -C /usr/src && \ + curl -SL ${NEWLIB_SRC} | tar -xz -C /usr/src && \ + curl -SL ${GCC_SRC} | tar -xj -C /usr/src + +COPY patches/ /usr/src/patches +RUN for patch in /usr/src/patches/gcc-*.patch; do \ + patch -d /usr/src/gcc-* -p1 < $patch; \ + done + +# Stage 1: Build and install binutils +RUN mkdir -p /home/build/binutils && cd /home/build/binutils \ + && /usr/src/binutils-*/configure \ + CFLAGS="-w" \ + --prefix=${PREFIX} \ + --disable-werror \ + --target=arm-none-eabi \ + --enable-interwork \ + --enable-threads=posix \ + --enable-multilib \ + --with-float=soft \ + && make all install + +# Stage 2: Build and install GCC (compiler only) +RUN mkdir -p /home/build/gcc && cd /home/build/gcc \ + && HDR_PATH=$(realpath /usr/src/newlib-*/newlib/libc/include) \ + && /usr/src/gcc-*/configure \ + CFLAGS="-w" \ + --prefix=${PREFIX} \ + --disable-shared \ + --disable-werror \ + --target=arm-none-eabi \ + --enable-interwork \ + --enable-multilib \ + --with-float=soft \ + --enable-languages="c,c++" \ + --with-newlib \ + --with-headers=$HDR_PATH \ + --with-system-zlib \ + && make all-gcc install-gcc + +# Stage 3: Build and install newlib +RUN mkdir -p /home/build/newlib && cd /home/build/newlib \ + && /usr/src/newlib-*/configure \ + CFLAGS="-w" \ + --prefix=${PREFIX} \ + --disable-werror \ + --target=arm-none-eabi \ + --enable-interwork \ + --enable-multilib \ + --with-float=soft \ + && make all install + +# Stage 4: Build and install the rest of GCC +RUN cd /home/build/gcc && make all install diff --git a/arm-none-eabi-gcc-4.8.2/Makefile b/arm-none-eabi-gcc-4.8.2/Makefile new file mode 100644 index 0000000..0895788 --- /dev/null +++ b/arm-none-eabi-gcc-4.8.2/Makefile @@ -0,0 +1,2 @@ + +include ../make/Makefile diff --git a/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-inline.patch b/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-inline.patch new file mode 100644 index 0000000..5c4307f --- /dev/null +++ b/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-inline.patch @@ -0,0 +1,14 @@ +diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h +index 42dd3cf..ba48bbd 100644 +--- a/gcc/cp/cfns.h ++++ b/gcc/cp/cfns.h +@@ -124,9 +124,6 @@ hash (register const char *str, register unsigned int len) + + #ifdef __GNUC__ + __inline +-#ifdef __GNUC_STDC_INLINE__ +-__attribute__ ((__gnu_inline__)) +-#endif + #endif + const char * + libc_name_p (register const char *str, register unsigned int len) diff --git a/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-texi.patch b/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-texi.patch new file mode 100644 index 0000000..c500d08 --- /dev/null +++ b/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-texi.patch @@ -0,0 +1,22 @@ +diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi +index 02b81cf..5166abf 100644 +--- a/gcc/doc/gcc.texi ++++ b/gcc/doc/gcc.texi +@@ -85,9 +85,15 @@ Published by: + @item GNU Press + @tab Website: www.gnupress.org + @item a division of the +- at tab General: @tex press@@gnu.org @end tex ++ at tab General: ++ at tex ++press@@gnu.org ++ at end tex + @item Free Software Foundation +- at tab Orders: @tex sales@@gnu.org @end tex ++ at tab Orders: ++ at tex ++sales@@gnu.org ++ at end tex + @item 51 Franklin Street, Fifth Floor + @tab Tel 617-542-5942 + @item Boston, MA 02110-1301 USA diff --git a/arm-none-eabi-gcc-4.8.2/patches/gcc-multilib-config.patch b/arm-none-eabi-gcc-4.8.2/patches/gcc-multilib-config.patch new file mode 100644 index 0000000..9e27979 --- /dev/null +++ b/arm-none-eabi-gcc-4.8.2/patches/gcc-multilib-config.patch @@ -0,0 +1,15 @@ +diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf +index 60747d3..3427939 100644 +--- a/gcc/config/arm/t-arm-elf ++++ b/gcc/config/arm/t-arm-elf +@@ -56,8 +56,8 @@ MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* + # MULTILIB_DIRNAMES += fpu soft + # MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* + # +-# MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork +-# MULTILIB_DIRNAMES += normal interwork ++MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork ++MULTILIB_DIRNAMES += normal interwork + # + # MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore + # MULTILIB_DIRNAMES += elf under -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ide93843836f059a3750e92a973d0a6d9cf9a5638 Gerrit-Change-Number: 23518 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:43:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:43:19 +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 5: Code-Review+2 -- 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: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:43: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 Apr 7 16:43:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:43:22 +0000 Subject: Change in osmo-msc[master]: SMS-over-GSUP: notify sender if no transaction found In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/17876 ) Change subject: SMS-over-GSUP: notify sender if no transaction found ...................................................................... SMS-over-GSUP: notify sender if no transaction found Change-Id: I4f564610fadbfdbbc33de267786534a5405319f6 --- M src/libmsc/gsm_04_11_gsup.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/libmsc/gsm_04_11_gsup.c b/src/libmsc/gsm_04_11_gsup.c index 1f500d0..7a47e93 100644 --- a/src/libmsc/gsm_04_11_gsup.c +++ b/src/libmsc/gsm_04_11_gsup.c @@ -161,7 +161,8 @@ LOGP(DLSMS, LOGL_NOTICE, "No transaction found for %s, " "ignoring %s-%s message...\n", vlr_subscr_name(vsub), msg_name, msg_is_err ? "Err" : "Res"); - return -EIO; /* TODO: notify sender about that? */ + gsup_client_mux_tx_error_reply(net->gcm, gsup_msg, GMM_CAUSE_NO_PDP_ACTIVATED); + return -EIO; } LOG_TRANS(trans, LOGL_DEBUG, "RX %s-%s\n", msg_name, msg_is_err ? "Err" : "Res"); -- 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: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:44:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:44:06 +0000 Subject: Change in osmo-bsc[master]: Replace all references to 'sysmobts' with 'osmo-bts' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23627 ) Change subject: Replace all references to 'sysmobts' with 'osmo-bts' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I93ab4dbf483e0786c35685b75ee4ea83bd591f7b Gerrit-Change-Number: 23627 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 16:44: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 Apr 7 16:45:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:45:07 +0000 Subject: Change in pysim[master]: pySim-shell: JSONpath support for updating files/records In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23661 ) Change subject: pySim-shell: JSONpath support for updating files/records ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa Gerrit-Change-Number: 23661 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:45: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 Apr 7 16:45:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:45:10 +0000 Subject: Change in pysim[master]: shell: New 'read_records' and 'read_records_decoded' commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23663 ) Change subject: shell: New 'read_records' and 'read_records_decoded' commands ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If457b4e02bde8aa6db8cc329411f94411c100bc9 Gerrit-Change-Number: 23663 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 16:45:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:45:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:45:12 +0000 Subject: Change in pysim[master]: pySim-shell: JSONpath support for updating files/records In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23661 ) Change subject: pySim-shell: JSONpath support for updating files/records ...................................................................... pySim-shell: JSONpath support for updating files/records Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa --- M contrib/jenkins.sh M docs/shell.rst M pySim/filesystem.py A pySim/jsonpath.py M requirements.txt M setup.py 6 files changed, 94 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 60061e3..f83e6a5 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -14,6 +14,7 @@ pip install pytlv pip install pyyaml pip install cmd2 +pip install jsonpath-ng # Execute automatically discovered unit tests first python -m unittest discover -v -s tests/ diff --git a/docs/shell.rst b/docs/shell.rst index 2edebbf..3cfc849 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -226,6 +226,33 @@ :module: pySim.filesystem :func: TransparentEF.ShellCommands.upd_bin_dec_parser +In normal operation, update_binary_decoded needs a JSON document representing the entire file contents as +input. This can be inconvenient if you want to keep 99% of the content but just toggle one specific +parameter. That's where the JSONpath support comes in handy: You can specify a JSONpath to an element +inside the document as well as a new value for tat field: + +Th below example demonstrates this by modifying the ofm field within EF.AD: + +:: + + pySIM-shell (MF/ADF.USIM/EF.AD)> read_binary_decoded + { + "ms_operation_mode": "normal", + "specific_facilities": { + "ofm": true + }, + "len_of_mnc_in_imsi": 2 + } + pySIM-shell (MF/ADF.USIM/EF.AD)> update_binary_decoded --json-path specific_facilities.ofm false + pySIM-shell (MF/ADF.USIM/EF.AD)> read_binary_decoded + { + "ms_operation_mode": "normal", + "specific_facilities": { + "ofm": false + }, + "len_of_mnc_in_imsi": 2 + } + cmd2 settable parameters diff --git a/pySim/filesystem.py b/pySim/filesystem.py index a65a764..f8443f3 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -35,6 +35,7 @@ from pySim.utils import sw_match, h2b, b2h, is_hex from pySim.exceptions import * +from pySim.jsonpath import js_path_find, js_path_modify class CardFile(object): """Base class for all objects in the smart card filesystem. @@ -418,10 +419,16 @@ upd_bin_dec_parser = argparse.ArgumentParser() upd_bin_dec_parser.add_argument('data', help='Abstract data (JSON format) to write') + upd_bin_dec_parser.add_argument('--json-path', type=str, + help='JSON path to modify specific element of file only') @cmd2.with_argparser(upd_bin_dec_parser) def do_update_binary_decoded(self, opts): """Encode + Update (Write) data of a transparent EF""" - data_json = json.loads(opts.data) + if opts.json_path: + (data_json, sw) = self._cmd.rs.read_binary_dec() + js_path_modify(data_json, opts.json_path, json.loads(opts.data)) + else: + data_json = json.loads(opts.data) (data, sw) = self._cmd.rs.update_binary_dec(data_json) if data: self._cmd.poutput_json(data) @@ -574,10 +581,17 @@ upd_rec_dec_parser = argparse.ArgumentParser() upd_rec_dec_parser.add_argument('record_nr', type=int, help='Number of record to be read') upd_rec_dec_parser.add_argument('data', help='Data bytes (hex format) to write') + upd_rec_dec_parser.add_argument('--json-path', type=str, + help='JSON path to modify specific element of record only') @cmd2.with_argparser(upd_rec_dec_parser) def do_update_record_decoded(self, opts): """Encode + Update (write) data to a record-oriented EF""" - (data, sw) = self._cmd.rs.update_record_dec(opts.record_nr, opts.data) + if opts.json_path: + (data_json, sw) = self._cmd.rs.read_record_dec(opts.record_nr) + js_path_modify(data_json, opts.json_path, json.loads(opts.data)) + else: + data_json = json.loads(opts.data) + (data, sw) = self._cmd.rs.update_record_dec(opts.record_nr, data_json) if data: self._cmd.poutput(data) diff --git a/pySim/jsonpath.py b/pySim/jsonpath.py new file mode 100644 index 0000000..98dbd75 --- /dev/null +++ b/pySim/jsonpath.py @@ -0,0 +1,48 @@ +# coding=utf-8 +import json +import pprint +import jsonpath_ng + +"""JSONpath utility functions as needed within pysim. + +As pySim-sell has the ability to represent SIM files as JSON strings, +adding JSONpath allows us to conveniently modify individual sub-fields +of a file or record in its JSON representation. +""" + +# (C) 2021 by Harald Welte +# +# 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 . + +def js_path_find(js_dict, js_path): + """Find/Match a JSON path within a given JSON-serializable dict. + Args: + js_dict : JSON-serializable dict to operate on + js_path : JSONpath string + Returns: Result of the JSONpath expression + """ + jsonpath_expr = jsonpath_ng.parse(js_path) + return jsonpath_expr.find(js_dict) + +def js_path_modify(js_dict, js_path, new_val): + """Find/Match a JSON path within a given JSON-serializable dict. + Args: + js_dict : JSON-serializable dict to operate on + js_path : JSONpath string + new_val : New value for field in js_dict at js_path + """ + jsonpath_expr = jsonpath_ng.parse(js_path) + jsonpath_expr.find(js_dict) + jsonpath_expr.update(js_dict, new_val) + diff --git a/requirements.txt b/requirements.txt index 978a3db..f203ed1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ serial pytlv cmd2 +jsonpath-ng diff --git a/setup.py b/setup.py index d9f742c..a02e327 100644 --- a/setup.py +++ b/setup.py @@ -13,6 +13,7 @@ "serial", "pytlv", "cmd2" + "jsonpath-ng" ], scripts=[ 'pySim-prog.py', -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad09b3d878b8b58ad34cb549c80f8a6eb3149faa Gerrit-Change-Number: 23661 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 16:45:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 16:45:13 +0000 Subject: Change in pysim[master]: shell: New 'read_records' and 'read_records_decoded' commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23663 ) Change subject: shell: New 'read_records' and 'read_records_decoded' commands ...................................................................... shell: New 'read_records' and 'read_records_decoded' commands Those commands can be used to read all the records available in the selected file. Change-Id: If457b4e02bde8aa6db8cc329411f94411c100bc9 --- M docs/shell.rst M pySim/filesystem.py 2 files changed, 43 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/docs/shell.rst b/docs/shell.rst index 3cfc849..652e572 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -178,6 +178,20 @@ :func: LinFixedEF.ShellCommands.read_rec_dec_parser +read_records +~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.read_recs_parser + + +read_records_decoded +~~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.read_recs_dec_parser + + update_record ~~~~~~~~~~~~~ .. argparse:: diff --git a/pySim/filesystem.py b/pySim/filesystem.py index f8443f3..e97fbf6 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -568,6 +568,33 @@ (data, sw) = self._cmd.rs.read_record_dec(opts.record_nr) self._cmd.poutput_json(data, opts.oneline) + read_recs_parser = argparse.ArgumentParser() + @cmd2.with_argparser(read_recs_parser) + def do_read_records(self, opts): + """Read all records from a record-oriented EF""" + num_of_rec = self._cmd.rs.selected_file_fcp['file_descriptor']['num_of_rec'] + for recnr in range(1, 1 + num_of_rec): + (data, sw) = self._cmd.rs.read_record(recnr) + if (len(data) > 0): + recstr = str(data) + else: + recstr = "(empty)" + self._cmd.poutput("%03d %s" % (recnr, recstr)) + + read_recs_dec_parser = argparse.ArgumentParser() + read_recs_dec_parser.add_argument('--oneline', action='store_true', + help='No JSON pretty-printing, dump as a single line') + @cmd2.with_argparser(read_recs_dec_parser) + def do_read_records_decoded(self, opts): + """Read + decode all records from a record-oriented EF""" + num_of_rec = self._cmd.rs.selected_file_fcp['file_descriptor']['num_of_rec'] + # collect all results in list so they are rendered as JSON list when printing + data_list = [] + for recnr in range(1, 1 + num_of_rec): + (data, sw) = self._cmd.rs.read_record_dec(recnr) + data_list.append(data) + self._cmd.poutput_json(data_list, opts.oneline) + upd_rec_parser = argparse.ArgumentParser() upd_rec_parser.add_argument('record_nr', type=int, help='Number of record to be read') upd_rec_parser.add_argument('data', help='Data bytes (hex format) to write') @@ -965,6 +992,8 @@ select_resp = f.decode_select_response(data) else: select_resp = self.probe_file(name, cmd_app) + # store the decoded FCP for later reference + self.selected_file_fcp = select_resp # register commands of new file if cmd_app and self.selected_file.shell_commands: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If457b4e02bde8aa6db8cc329411f94411c100bc9 Gerrit-Change-Number: 23663 Gerrit-PatchSet: 5 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 Apr 7 18:38:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 18:38:43 +0000 Subject: Change in libosmocore[master]: stat_item: make value ids item specific In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23508 ) Change subject: stat_item: make value ids item specific ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f Gerrit-Change-Number: 23508 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 07 Apr 2021 18:38: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 Apr 7 18:38:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 18:38:54 +0000 Subject: Change in libosmocore[master]: stat_item: make value ids item specific In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23508 ) Change subject: stat_item: make value ids item specific ...................................................................... stat_item: make value ids item specific Fix counting of values missed because of FIFO overflow in osmo_stat_item_get_next(), by assigning a new item value id effectively as item->value[n + 1].id = item->value[n].id + 1, instead of increasing a global_value_id that is shared between all items and groups. With global_value_id, the count of values missed was wrong for one item, as soon as a new value was added to another item. This partially reverts b27b352e ("stats: Use a global index for stat item values") from 2015, right after stats was added to libosmocore. It was supposed to make multiple readers (reporters) possible, which could read independently from stat_item (and later added comments explain it like that). But this remained unused, stats has implemented multiple reporters by reading all stat_items once and sending the same data to all enabled reporters. The patch caused last_value_index in struct osmo_stat_item to always remain at -1. Replace this unused last_value_index with stats_next_id, so stats can store the item-specific next_id in the struct again. It appears that stats is the only direct user of osmo_stat_item, but if there are others, they can bring their own item-specific next_id: functions in stat_item.c still accept a next_id argument. Related: OS#5088 Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f --- M include/osmocom/core/stat_item.h M src/stat_item.c M src/stats.c M tests/stats/stats_test.c 4 files changed, 44 insertions(+), 44 deletions(-) Approvals: laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/core/stat_item.h b/include/osmocom/core/stat_item.h index 4a19465..29e35ef 100644 --- a/include/osmocom/core/stat_item.h +++ b/include/osmocom/core/stat_item.h @@ -6,6 +6,7 @@ #include +#include #include struct osmo_stat_item_desc; @@ -23,9 +24,11 @@ struct osmo_stat_item { /*! back-reference to the item description */ const struct osmo_stat_item_desc *desc; - /*! the index of the freshest value */ - int32_t last_value_index; - /*! offset to the freshest value in the value FIFO */ + /* internal use by stats API (stats.c): the id of the next value to + * be read from the FIFO. If accessing osmo_stat_item directly, without + * the stats API, store this value elsewhere. */ + int32_t stats_next_id; + /*! the index of the last value written to the FIFO */ int16_t last_offs; /*! value FIFO */ struct osmo_stat_item_value values[0]; @@ -98,7 +101,8 @@ int osmo_stat_item_discard(const struct osmo_stat_item *item, int32_t *next_id); -int osmo_stat_item_discard_all(int32_t *next_id); +int osmo_stat_item_discard_all(int32_t *next_id) + OSMO_DEPRECATED("Use osmo_stat_item_discard with item-specific next_id instead"); typedef int (*osmo_stat_item_handler_t)( struct osmo_stat_item_group *, struct osmo_stat_item *, void *); diff --git a/src/stat_item.c b/src/stat_item.c index d4f3b72..2d96444 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -37,14 +37,15 @@ * * The only supported value type is an int32_t. * - * Getting values from the osmo_stat_item does not modify its state to - * allow for multiple independent back-ends retrieving values (e.g. VTY - * and statd). + * Getting values from osmo_stat_item is usually done at a high level + * through the stats API (stats.c). It uses item->stats_next_id to + * store what has been sent to all enabled reporters. It is also + * possible to read from osmo_stat_item directly, without modifying + * its state, by storing next_id outside of osmo_stat_item. * * Each value stored in the FIFO of an osmo_stat_item has an associated - * value_id. The value_id is derived from an application-wide globally - * incrementing counter, so (until the counter wraps) more recent - * values will have higher values. + * value_id. The value_id is increased with each value, so (until the + * counter wraps) more recent values will have higher values. * * When a new value is set, the oldest value in the FIFO gets silently * overwritten. Lost values are skipped when getting values from the @@ -74,14 +75,13 @@ #include #include +#include #include #include #include /*! global list of stat_item groups */ static LLIST_HEAD(osmo_stat_item_groups); -/*! counter for assigning globally unique value identifiers */ -static int32_t global_value_id = 0; /*! talloc context from which we allocate */ static void *tall_stat_item_ctx; @@ -146,7 +146,7 @@ group->items[item_idx] = item; item->last_offs = desc->item_desc[item_idx].num_values - 1; - item->last_value_index = -1; + item->stats_next_id = 1; item->desc = &desc->item_desc[item_idx]; for (i = 0; i <= item->last_offs; i++) { @@ -199,16 +199,16 @@ */ void osmo_stat_item_set(struct osmo_stat_item *item, int32_t value) { + int32_t id = item->values[item->last_offs].id + 1; + if (id == OSMO_STAT_ITEM_NOVALUE_ID) + id++; + item->last_offs += 1; if (item->last_offs >= item->desc->num_values) item->last_offs = 0; - global_value_id += 1; - if (global_value_id == OSMO_STAT_ITEM_NOVALUE_ID) - global_value_id += 1; - item->values[item->last_offs].value = value; - item->values[item->last_offs].id = global_value_id; + item->values[item->last_offs].id = id; } /*! Retrieve the next value from the osmo_stat_item object. @@ -276,10 +276,8 @@ /*! Skip all values of all items and update \a next_id accordingly */ int osmo_stat_item_discard_all(int32_t *next_id) { - int discarded = global_value_id + 1 - *next_id; - *next_id = global_value_id + 1; - - return discarded; + LOGP(DLSTATS, LOGL_ERROR, "osmo_stat_item_discard_all is deprecated (no-op)\n"); + return 0; } /*! Initialize the stat item module. Call this once from your program. @@ -382,7 +380,7 @@ unsigned int i; item->last_offs = item->desc->num_values - 1; - item->last_value_index = -1; + item->stats_next_id = 1; for (i = 0; i <= item->last_offs; i++) { item->values[i].value = item->desc->default_value; diff --git a/src/stats.c b/src/stats.c index 88b733f..91cf839 100644 --- a/src/stats.c +++ b/src/stats.c @@ -107,7 +107,6 @@ static LLIST_HEAD(osmo_stats_reporter_list); static void *osmo_stats_ctx = NULL; static int is_initialised = 0; -static int32_t current_stat_item_next_id = 0; static struct osmo_stats_config s_stats_config = { .interval = STATS_DEFAULT_INTERVAL, @@ -236,12 +235,27 @@ talloc_free(srep); } +static int osmo_stats_discard_item(struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_) +{ + return osmo_stat_item_discard(item, &item->stats_next_id); +} + +static int osmo_stats_discard_group(struct osmo_stat_item_group *statg, void *sctx_) +{ + return osmo_stat_item_for_each_item(statg, &osmo_stats_discard_item, NULL); +} + +static int osmo_stats_discard_all() +{ + return osmo_stat_item_for_each_group(&osmo_stats_discard_group, NULL); +} + /*! Initilize the stats reporting module; call this once in your program * \param[in] ctx Talloc context from which stats related memory is allocated */ void osmo_stats_init(void *ctx) { osmo_stats_ctx = ctx; - osmo_stat_item_discard_all(¤t_stat_item_next_id); + osmo_stats_discard_all(); is_initialised = 1; start_timer(); @@ -694,18 +708,17 @@ struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_) { struct osmo_stats_reporter *srep; - int32_t next_id = current_stat_item_next_id; int32_t value; int have_value; - have_value = osmo_stat_item_get_next(item, &next_id, &value) > 0; + have_value = osmo_stat_item_get_next(item, &item->stats_next_id, &value) > 0; if (!have_value) { /* Send the last value in case a flush is requested */ value = osmo_stat_item_get_last(item); } else { int32_t next_val; /* If we have multiple values only send the max */ - while (osmo_stat_item_get_next(item, &next_id, &next_val) > 0) + while (osmo_stat_item_get_next(item, &item->stats_next_id, &next_val) > 0) value = OSMO_MAX(value, next_val); } @@ -798,7 +811,7 @@ osmo_stat_item_for_each_group(osmo_stat_item_group_handler, NULL); /* global actions */ - osmo_stat_item_discard_all(¤t_stat_item_next_id); + osmo_stats_discard_all(); flush_all_reporters(); TRACE(LIBOSMOCORE_STATS_DONE()); diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index e5f7f20..b6b4be9 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -234,21 +234,6 @@ rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc == 0); - /* Test Discard (all items) */ - osmo_stat_item_set(statg->items[TEST_A_ITEM], 99); - osmo_stat_item_set(statg->items[TEST_A_ITEM], 100); - osmo_stat_item_set(statg->items[TEST_A_ITEM], 101); - osmo_stat_item_set(statg->items[TEST_B_ITEM], 99); - osmo_stat_item_set(statg->items[TEST_B_ITEM], 100); - - rc = osmo_stat_item_discard_all(&next_id_a); - rc = osmo_stat_item_discard_all(&next_id_b); - - rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc == 0); - rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); - OSMO_ASSERT(rc == 0); - osmo_stat_item_group_free(statg); sgrp2 = osmo_stat_item_get_group_by_name_idx("test.one", 0); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie65dcdf52c8fc3d916e20d7f0455f6223be6b64f Gerrit-Change-Number: 23508 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 18:38:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 18:38:54 +0000 Subject: Change in libosmocore[master]: stats_test: restore stat_item_get_next asserts In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23509 ) Change subject: stats_test: restore stat_item_get_next asserts ...................................................................... stats_test: restore stat_item_get_next asserts This is a partial revert of b27b352e ("stats: Use a global index for stat item values"). Now that osmo_stat_item_get_next correctly returns how many values have been skipped, we can use the accurate asserts on its return value again. Fix the initial values of next_id_a,b (1 instead of 0), so we don't get a skipped value on the first read. This is needed, because b27b352e refactored osmo_stat_item_get_next to have the next id as parameter instead of the last read one, and the initial value was not adjusted in the tests. Related: OS#5088 Change-Id: I9d4cda2487a62f52361c24058363dfa90e502c63 --- M tests/stats/stats_test.c 1 file changed, 18 insertions(+), 18 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index b6b4be9..1d53aaa 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -90,8 +90,8 @@ const struct osmo_stat_item *sitem1, *sitem2; int rc; int32_t value; - int32_t next_id_a = 0; - int32_t next_id_b = 0; + int32_t next_id_a = 1; + int32_t next_id_b = 1; int i; OSMO_ASSERT(statg != NULL); @@ -129,7 +129,7 @@ OSMO_ASSERT(value == 1); rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == 1); rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); @@ -140,28 +140,28 @@ osmo_stat_item_set(statg->items[TEST_B_ITEM], 1000 + i); rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == i); rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == 1000 + i); } /* check if dec & inc is working */ osmo_stat_item_set(statg->items[TEST_A_ITEM], 42); rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == 42); osmo_stat_item_dec(statg->items[TEST_A_ITEM], 21); rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == 21); osmo_stat_item_inc(statg->items[TEST_A_ITEM], 21); rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == 42); /* Keep 2 in FIFO */ @@ -173,20 +173,20 @@ osmo_stat_item_set(statg->items[TEST_B_ITEM], 1000 + i); rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == i-1); rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == 1000 + i-1); } rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == 64); rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == 1000 + 64); /* Overrun FIFOs */ @@ -196,29 +196,29 @@ } rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 93 - 65 + 1); OSMO_ASSERT(value == 93); for (i = 94; i <= 96; i++) { rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == i); } rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 90 - 65 + 1); OSMO_ASSERT(value == 1000 + 90); for (i = 91; i <= 96; i++) { rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == 1000 + i); } /* Test Discard (single item) */ osmo_stat_item_set(statg->items[TEST_A_ITEM], 97); rc = osmo_stat_item_discard(statg->items[TEST_A_ITEM], &next_id_a); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); rc = osmo_stat_item_discard(statg->items[TEST_A_ITEM], &next_id_a); OSMO_ASSERT(rc == 0); @@ -228,7 +228,7 @@ osmo_stat_item_set(statg->items[TEST_A_ITEM], 98); rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); - OSMO_ASSERT(rc > 0); + OSMO_ASSERT(rc == 1); OSMO_ASSERT(value == 98); rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9d4cda2487a62f52361c24058363dfa90e502c63 Gerrit-Change-Number: 23509 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 18:38:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 18:38:55 +0000 Subject: Change in libosmocore[master]: stats: log error when missing stats values (v2) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23510 ) Change subject: stats: log error when missing stats values (v2) ...................................................................... stats: log error when missing stats values (v2) Related: SYS#4877 Change-Id: I5140d967c2f1d36dadf93b03e52b9bbd42e2a3a6 --- M src/stat_item.c M tests/stats/stats_test.c M tests/stats/stats_test.err 3 files changed, 10 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/stat_item.c b/src/stat_item.c index 2d96444..40374a7 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -261,6 +261,10 @@ *next_id = item_value->id + 1; + if (id_delta > 1) { + LOGP(DLSTATS, LOGL_ERROR, "%s: %d stats values skipped\n", item->desc->name, id_delta - 1); + } + return id_delta; } diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index 1d53aaa..a4aedd3 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -195,6 +195,7 @@ osmo_stat_item_set(statg->items[TEST_B_ITEM], 1000 + i); } + fprintf(stderr, "Skipping %d values\n", 93 - 65); rc = osmo_stat_item_get_next(statg->items[TEST_A_ITEM], &next_id_a, &value); OSMO_ASSERT(rc == 93 - 65 + 1); OSMO_ASSERT(value == 93); @@ -205,6 +206,7 @@ OSMO_ASSERT(value == i); } + fprintf(stderr, "Skipping %d values\n", 90 - 65); rc = osmo_stat_item_get_next(statg->items[TEST_B_ITEM], &next_id_b, &value); OSMO_ASSERT(rc == 90 - 65 + 1); OSMO_ASSERT(value == 1000 + 90); diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err index 3accf54..69104d9 100644 --- a/tests/stats/stats_test.err +++ b/tests/stats/stats_test.err @@ -1,3 +1,7 @@ +Skipping 28 values +DLSTATS ERROR item.a: 28 stats values skipped +Skipping 25 values +DLSTATS ERROR item.b: 25 stats values skipped Start test: test_reporting DLGLOBAL ERROR counter group 'ctr-test:one' already exists for index 2, instead using index 3. This is a software bug that needs fixing. DLGLOBAL ERROR 'ctr-test.one_dot' is not a valid counter group identifier -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5140d967c2f1d36dadf93b03e52b9bbd42e2a3a6 Gerrit-Change-Number: 23510 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 18:39:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 18:39:03 +0000 Subject: Change in libosmocore[master]: stats: have_value is a bool, not int In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23651 ) Change subject: stats: have_value is a bool, not int ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id92c63f4e54ec1bf3411205be1bd268e1d184b03 Gerrit-Change-Number: 23651 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 07 Apr 2021 18:39: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 Apr 7 18:39:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 18:39:05 +0000 Subject: Change in libosmocore[master]: stats: have_value is a bool, not int In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23651 ) Change subject: stats: have_value is a bool, not int ...................................................................... stats: have_value is a bool, not int Change-Id: Id92c63f4e54ec1bf3411205be1bd268e1d184b03 --- M src/stats.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/stats.c b/src/stats.c index 91cf839..411ecff 100644 --- a/src/stats.c +++ b/src/stats.c @@ -709,7 +709,7 @@ { struct osmo_stats_reporter *srep; int32_t value; - int have_value; + bool have_value; have_value = osmo_stat_item_get_next(item, &item->stats_next_id, &value) > 0; if (!have_value) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id92c63f4e54ec1bf3411205be1bd268e1d184b03 Gerrit-Change-Number: 23651 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 7 18:39:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 7 Apr 2021 18:39:19 +0000 Subject: Change in docker-playground[master]: docker_images_require: list installed Osmocom pkgs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23664 ) Change subject: docker_images_require: list installed Osmocom pkgs ...................................................................... docker_images_require: list installed Osmocom pkgs Display an overview of installed Osmocom packages at the start of each ttcn3-*/jenkins.sh script (and others making use of docker_images_require). Closes: OS#5091 Change-Id: I62670017d790fd67c6a0d8d464386c0f8e94c1a8 --- M jenkins-common.sh 1 file changed, 38 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved osmith: Verified diff --git a/jenkins-common.sh b/jenkins-common.sh index 6c27fae..67a467d 100644 --- a/jenkins-common.sh +++ b/jenkins-common.sh @@ -39,6 +39,40 @@ esac } +# $1: distro name, from docker_distro_from_image_name() +# $2: docker image name (without $REPO_USER/ prefix) +list_osmo_packages() { + local distro="$1" + local image="$2" + local docker_run_sh="docker run --rm --entrypoint=/bin/sh $REPO_USER/$image -c" + + # Don't run on all images + case "$image" in + osmo-*) ;; + *) return ;; + esac + + set +x + echo + echo "### Installed Osmocom packages in: $image ###" + echo + + case "$distro" in + centos*) + $docker_run_sh "rpm -qa | grep osmo" + ;; + debian*) + $docker_run_sh "dpkg -l | grep osmo" + ;; + *) + echo "ERROR: don't know how to list installed packages for distro=$distro" + ;; + esac + + echo + set -x +} + # 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 @@ -67,10 +101,11 @@ docker_images_require $depends fi + distro_arg="$(docker_distro_from_image_name "$i")" + # 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")" # Pull upstream base images @@ -94,6 +129,8 @@ echo "ERROR: missing image: $i" exit 1 fi + + list_osmo_packages "$distro_arg" "$i" done } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23664 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I62670017d790fd67c6a0d8d464386c0f8e94c1a8 Gerrit-Change-Number: 23664 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 01:22:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 01:22:24 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: check in simple declarative codec 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/osmocom-bb/+/23135 to look at the new patch set (#4). Change subject: trx_toolkit: check in simple declarative codec ...................................................................... trx_toolkit: check in simple declarative codec Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Related: OS#4006, SYS#4895 --- A src/target/trx_toolkit/codec.py A src/target/trx_toolkit/test_codec.py 2 files changed, 1,000 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/35/23135/4 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Gerrit-Change-Number: 23135 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 01:22:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 01:22:24 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv0/v1 PDUs using declarative codec 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/osmocom-bb/+/23137 to look at the new patch set (#4). Change subject: trx_toolkit: define TRXDv0/v1 PDUs using declarative codec ...................................................................... trx_toolkit: define TRXDv0/v1 PDUs using declarative codec Change-Id: I739ae5da22c603fb2cf1e84d3a79fb1a6e7343b6 Related: OS#4006, SYS#4895 --- A src/target/trx_toolkit/trxd_proto.py 1 file changed, 120 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/37/23137/4 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23137 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I739ae5da22c603fb2cf1e84d3a79fb1a6e7343b6 Gerrit-Change-Number: 23137 Gerrit-PatchSet: 4 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 Apr 8 01:22:25 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 01:22:25 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_msg.py: add type hints to static methods References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23676 ) Change subject: trx_toolkit/data_msg.py: add type hints to static methods ...................................................................... trx_toolkit/data_msg.py: add type hints to static methods Change-Id: I06fd8bc7418700de40467fd63a08da2bc2abcea2 --- M src/target/trx_toolkit/data_msg.py 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/76/23676/1 diff --git a/src/target/trx_toolkit/data_msg.py b/src/target/trx_toolkit/data_msg.py index 742dce4..f5d570f 100644 --- a/src/target/trx_toolkit/data_msg.py +++ b/src/target/trx_toolkit/data_msg.py @@ -25,6 +25,7 @@ import struct import abc +from typing import List from enum import Enum from gsm_shared import * @@ -187,22 +188,22 @@ return result @staticmethod - def usbit2sbit(bits): + def usbit2sbit(bits: List[int]) -> List[int]: ''' Convert unsigned soft-bits {254..0} to soft-bits {-127..127}. ''' return [-127 if (b == 0xff) else 127 - b for b in bits] @staticmethod - def sbit2usbit(bits): + def sbit2usbit(bits: List[int]) -> List[int]: ''' Convert soft-bits {-127..127} to unsigned soft-bits {254..0}. ''' return [127 - b for b in bits] @staticmethod - def sbit2ubit(bits): + def sbit2ubit(bits: List[int]) -> List[int]: ''' Convert soft-bits {-127..127} to bits {1..0}. ''' return [int(b < 0) for b in bits] @staticmethod - def ubit2sbit(bits): + def ubit2sbit(bits: List[int]) -> List[int]: ''' Convert bits {1..0} to soft-bits {-127..127}. ''' return [-127 if b else 127 for b in bits] -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I06fd8bc7418700de40467fd63a08da2bc2abcea2 Gerrit-Change-Number: 23676 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 Apr 8 01:22:25 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 01:22:25 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: make codec.py work with EOL Python 3.5 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23677 ) Change subject: trx_toolkit: make codec.py work with EOL Python 3.5 ...................................................................... trx_toolkit: make codec.py work with EOL Python 3.5 Our build system is based on Debian 9 and EOL Python 3.5, so we have to maintain backwards compatibility (sigh). Some type hints moved to comments, some had to be commented out completely. Hopefully, we can 'un-vandalize' the code by reverting this change once there will be no requirement to support EOL stuff. Change-Id: I7211cfbb7549b6e700aa3dd44464ff762fd51185 Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/codec.py 1 file changed, 12 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/77/23677/1 diff --git a/src/target/trx_toolkit/codec.py b/src/target/trx_toolkit/codec.py index 7a42c9b..9387592 100644 --- a/src/target/trx_toolkit/codec.py +++ b/src/target/trx_toolkit/codec.py @@ -55,17 +55,17 @@ ''' Base class representing one field in a Message. ''' # Default length (0 means the whole buffer) - DEF_LEN: int = 0 + DEF_LEN = 0 # type: int # Default parameters - DEF_PARAMS: dict = { } + DEF_PARAMS = { } # type: dict # Presence of a field during decoding and encoding - get_pres: Callable[[dict], bool] + ## get_pres: Callable[[dict], bool] # Length of a field for self.from_bytes() - get_len: Callable[[dict, bytes], int] + ## get_len: Callable[[dict, bytes], int] # Value of a field for self.to_bytes() - get_val: Callable[[dict], Any] + ## get_val: Callable[[dict], Any] def __init__(self, name: str, **kw) -> None: self.name = name @@ -201,7 +201,7 @@ } # To be defined by derived types - STRUCT: Tuple['BitField', ...] = () + STRUCT = () # type: Tuple['BitField', ...] def __init__(self, **kw) -> None: Field.__init__(self, self.__class__.__name__, **kw) @@ -248,8 +248,8 @@ ''' One field in a BitFieldSet. ''' # Special fields for BitFieldSet - offset: int = 0 - mask: int = 0 + offset = 0 # type: int + mask = 0 # type: int class Spare: ''' Spare filling in a BitFieldSet. ''' @@ -272,7 +272,7 @@ self.bl = bl # (Optional) fixed value for encoding and decoding - self.val: Optional[int] = kw.get('val', None) + self.val = kw.get('val', None) # type: Optional[int] def enc_val(self, vals: dict) -> int: if self.val is None: @@ -291,11 +291,11 @@ class Envelope: ''' A group of related fields. ''' - STRUCT: Tuple[Codec, ...] = () + STRUCT = () # type: Tuple[Codec, ...] def __init__(self, check_len: bool = True): # TODO: ensure uniqueue field names in self.STRUCT - self.c: dict = { } + self.c = { } # type: dict self.check_len = check_len def __getitem__(self, key: str) -> Any: @@ -368,7 +368,7 @@ ''' A sequence of repeating elements (e.g. TLVs). ''' # The item of sequence - ITEM: Optional[Envelope] = None + ITEM = None # type: Optional[Envelope] def __init__(self, **kw) -> None: if (self.ITEM is None) and ('item' not in kw): -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7211cfbb7549b6e700aa3dd44464ff762fd51185 Gerrit-Change-Number: 23677 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 Apr 8 01:22:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 01:22:26 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv2 PDUs using declarative codec References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23678 ) Change subject: trx_toolkit: define TRXDv2 PDUs using declarative codec ...................................................................... trx_toolkit: define TRXDv2 PDUs using declarative codec Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/trxd_proto.py 1 file changed, 85 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/78/23678/1 diff --git a/src/target/trx_toolkit/trxd_proto.py b/src/target/trx_toolkit/trxd_proto.py index aef3351..dbce2be 100644 --- a/src/target/trx_toolkit/trxd_proto.py +++ b/src/target/trx_toolkit/trxd_proto.py @@ -30,12 +30,20 @@ class Header(codec.BitFieldSet): ''' Header constructor for TRXD PDUs. ''' - def __init__(self, ver: int): - codec.BitFieldSet.__init__(self, len=1, set=( - codec.BitField('ver', bl=4, val=ver), - codec.BitField.Pad(bl=1), # RFU + def __init__(self, ver: int, batched: bool = False): + f = [ # Dynamically generated field list + codec.BitField('ver', bl=4, val=ver) if not batched + else codec.BitField.Spare(bl=4), # RFU + codec.BitField.Spare(bl=1), codec.BitField('tn', bl=3), - )) + ] + + if ver >= 2: # TRXDv2 and higher + f.append(codec.BitField('batch', bl=1)) + f.append(codec.BitField.Spare(bl=1)) + f.append(codec.BitField('trx', bl=6)) + + codec.BitFieldSet.__init__(self, set=tuple(f)) class MTS(codec.BitFieldSet): ''' Modulation and Training Sequence. ''' @@ -65,6 +73,35 @@ return 1 * GMSK_BURST_LEN raise ValueError('Unknown modulation type') +class Power(codec.Codec): + ''' SCPIR and Tx power reduction (TRXDv2 and higher). + + +-----------------+---------------------------------+ + | 7 6 5 4 3 2 1 0 | Description | + +-----------------+---------------------------------+ + | . . . . x x x x | Power REDuction (in 2 dB steps) | + +-----------------+---------------------------------+ + | . x x x . . . . | SCPIR value (in 2 dB steps) | + +-----------------+---------------------------------+ + | x . . . . . . . | SCPIR sign indicator | + +-----------------+---------------------------------+ + + ''' + + def from_bytes(self, vals: dict, data: bytes) -> int: + blob = ord(data) # Convert a byte to an int + vals['red'] = (blob & 0b1111) * 2 + vals['scpir'] = ((blob >> 4) & 0b111) * 2 + if blob & (1 << 7): # negative sign + vals['scpir'] *= -1 + return 1 + + def to_bytes(self, vals: dict) -> bytes: + blob = (vals['red'] & 0b1111) \ + | (abs(vals['scpir']) << 4) // 2 \ + | (0x80 if (vals['scpir'] < 0) else 0x00) + return bytes((blob,)) + class BurstBits(codec.Buf): ''' Soft-/hard-bits with variable length. ''' @@ -118,3 +155,46 @@ def __init__(self, *args, **kw): PDUv0Tx.__init__(self, *args, **kw) self.STRUCT[0]._fields[0].val = 1 + + +class PDUv2Rx(codec.Envelope): + class BPDU(codec.Envelope): + ''' Batched PDU part. ''' + STRUCT = ( + Header(ver=2, batched=True), + MTS(), + codec.Uint('rssi', mult=-1), + codec.Int16BE('toa256'), + codec.Int16BE('cir'), + BurstBits('soft-bits'), + ) + + STRUCT = ( + Header(ver=2), + MTS(), + codec.Uint('rssi', mult=-1), + codec.Int16BE('toa256'), + codec.Int16BE('cir'), + codec.Uint32BE('fn'), + BurstBits('soft-bits'), + codec.Sequence(item=BPDU()).f('bpdu'), + ) + +class PDUv2Tx(codec.Envelope): + class BPDU(codec.Envelope): + ''' Batched PDU part. ''' + STRUCT = ( + Header(ver=2, batched=True), + MTS(), + Power(), + BurstBits('soft-bits'), + ) + + STRUCT = ( + Header(ver=2), + MTS(), + Power(), + codec.Uint32BE('fn'), + BurstBits('hard-bits'), + codec.Sequence(item=BPDU()).f('bpdu'), + ) -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Gerrit-Change-Number: 23678 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 Apr 8 01:26:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 01:26:31 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv2 PDUs using declarative codec In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmocom-bb/+/23678 to look at the new patch set (#2). Change subject: trx_toolkit: define TRXDv2 PDUs using declarative codec ...................................................................... trx_toolkit: define TRXDv2 PDUs using declarative codec Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/trxd_proto.py 1 file changed, 85 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/78/23678/2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Gerrit-Change-Number: 23678 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 01:33:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 01:33:29 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: check in simple declarative codec In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23135 ) Change subject: trx_toolkit: check in simple declarative codec ...................................................................... Patch Set 4: Can still merge it despite Jenkins adds V-1? I am asking because I would want to merge the patch adding Python 3.5 compatibility separately, so it can be easily reverted once we finally move to Debian 10. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Gerrit-Change-Number: 23135 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 01:33:29 +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 Apr 8 09:39:14 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 08 Apr 2021 09:39:14 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gbproxy in Debian_10/i586 In-Reply-To: References: Message-ID: <606ecf46ebcdc_56792adfa5a0a5f0835a3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gbproxy/Debian_10/i586 Package network:osmocom:nightly/osmo-gbproxy failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-gbproxy Last lines of build log: [ 276s] make[3]: Entering directory '/usr/src/packages/BUILD/doc' [ 276s] Making all in examples [ 276s] make[4]: Entering directory '/usr/src/packages/BUILD/doc/examples' [ 276s] make[4]: Nothing to be done for 'all'. [ 276s] make[4]: Leaving directory '/usr/src/packages/BUILD/doc/examples' [ 276s] Making all in manuals [ 276s] make[4]: Entering directory '/usr/src/packages/BUILD/doc/manuals' [ 276s] /bin/bash: git: command not found [ 276s] /bin/bash: git: command not found [ 276s] ln -s /usr/share/osmo-gsm-manuals/build build [ 276s] ln -s /usr/share/osmo-gsm-manuals/common common [ 276s] # a2x can't use a different output file. To support out-of-tree builds, [ 276s] # we create a symlink at ./srcfile.adoc pointing at [ 276s] # ./srcfile.adoc. osmogbproxy-usermanual.adoc is the ./srcfile.adoc, [ 276s] # is like basename from coreutils, and . is WD. [ 276s] if ! [ -f osmogbproxy-usermanual.adoc ]; then \ [ 276s] ln -s osmogbproxy-usermanual.adoc osmogbproxy-usermanual.adoc; \ [ 276s] fi [ 276s] # TEXINPUTS: find LaTeX includes like \includegraphics{./common/images/sysmocom.pdf} [ 276s] # in /usr/share/osmo-gsm-manuals. [ 276s] TEXINPUTS="/usr/share/osmo-gsm-manuals" \ [ 276s] a2x -vv -L --asciidoc-opts="-f /usr/share/osmo-gsm-manuals/build/mscgen-filter.conf -f /usr/share/osmo-gsm-manuals/build/diag-filter.conf -f /usr/share/osmo-gsm-manuals/build/docinfo-releaseinfo.conf -a srcdir='/usr/src/packages/BUILD/doc/manuals' -a commondir='/usr/share/osmo-gsm-manuals/common'" --dblatex-opts="-s /usr/share/osmo-gsm-manuals/build/custom-dblatex.sty -P draft.mode=yes -P draft.watermark=0" -a docinfo -a revnumber="DRAFT " -a revdate="unknown" osmogbproxy-usermanual.adoc [29085s] qemu-kvm: terminating on signal 15 from pid 18145 () Job seems to be stuck here, killed. (after 28800 seconds of inactivity) [29085s] ### VM INTERACTION END ### [29085s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [29085s] or the build host has a kernel or hardware problem... -- 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 Apr 8 10:06:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 8 Apr 2021 10:06:30 +0000 Subject: Change in simtrace2[master]: firmware: disable stack protector by default References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23679 ) Change subject: firmware: disable stack protector by default ...................................................................... firmware: disable stack protector by default Disable stack protector for all boards/apps by default, not only qmod-dfu. Use 'make STACK_PROTECTOR=1' to enable. This was recommened by Eric: "I'd argue that we do not want this in general, since it adds canaries to all functions that deal with buffers, and therefore impacts the overall timing in a non determinstic way depending on inlining and optimizations, while contributing nothing in non debug builds." Related: OS#5081 Change-Id: I30ad97f231ea5b401def650bc9adc7e9f2770df0 --- M firmware/Makefile 1 file changed, 8 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/79/23679/1 diff --git a/firmware/Makefile b/firmware/Makefile index b147b0d..684f223 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -59,11 +59,6 @@ BIN = bin OBJ = obj/$(BOARD) -# Disable stack protector for code in small ROM regions (OS#5081) -ifeq ($(BOARD)-$(APP), qmod-dfu) -CFLAGS_EXTRA ?= -fno-stack-protector -endif - #------------------------------------------------------------------------------- # Tools #------------------------------------------------------------------------------- @@ -183,7 +178,14 @@ CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" CFLAGS += -DBOARD=\"$(BOARD)\" -DBOARD_$(BOARD) CFLAGS += -DAPPLICATION=\"$(APP)\" -DAPPLICATION_$(APP) -CFLAGS += $(CFLAGS_EXTRA) + +# Disable stack protector by default (OS#5081) +ifeq ($(STACK_PROTECTOR), 1) +CFLAGS += -fstack-protector +else +CFLAGS += -fno-stack-protector +endif + ASFLAGS = -mcpu=cortex-m3 -mthumb -Wall -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -D__ASSEMBLY__ LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=ResetException -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--print-memory-usage -Wl,--no-undefined $(LIB) #LD_OPTIONAL=-Wl,--print-gc-sections -Wl,--stats -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I30ad97f231ea5b401def650bc9adc7e9f2770df0 Gerrit-Change-Number: 23679 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 10:07:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 8 Apr 2021 10:07:04 +0000 Subject: Change in simtrace2[master]: firmware: qmod-dfu: disable stack protector In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23674 ) Change subject: firmware: qmod-dfu: disable stack protector ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+2 > > merging this now to fix the builds, but hope that osmith can submit the related general change. => https://gerrit.osmocom.org/c/simtrace2/+/23679 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2 Gerrit-Change-Number: 23674 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 10:07: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 Thu Apr 8 12:47:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 12:47:12 +0000 Subject: Change in simtrace2[master]: firmware: disable stack protector by default In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23679 ) Change subject: firmware: disable stack protector by default ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I30ad97f231ea5b401def650bc9adc7e9f2770df0 Gerrit-Change-Number: 23679 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 08 Apr 2021 12:47:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 12:48:06 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 12:48:06 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/codec.py: implement check() API for Envelope In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23136 ) Change subject: trx_toolkit/codec.py: implement check() API for Envelope ...................................................................... Abandoned Squashed into I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23136 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I8258504493cf85c401677866fe8474de2e49786b Gerrit-Change-Number: 23136 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria 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 Thu Apr 8 13:18:24 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 8 Apr 2021 13:18:24 +0000 Subject: Change in pysim[master]: cards.py: unify card programming In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/15501 ) Change subject: cards.py: unify card programming ...................................................................... Patch Set 5: > Patch Set 5: > > ping? should we still get this mergd at some point? I think we should abandon this. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/15501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib757b1433c075c635fe43542103acae2167a1a15 Gerrit-Change-Number: 15501 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 13:18: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 Apr 8 13:24:44 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 8 Apr 2021 13:24:44 +0000 Subject: Change in pysim[master]: card_handler: clean-up In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23595 ) Change subject: card_handler: clean-up ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23595 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I7168506cbebb1ebb67f47453419b860824912051 Gerrit-Change-Number: 23595 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 08 Apr 2021 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 Thu Apr 8 13:36:27 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 8 Apr 2021 13:36:27 +0000 Subject: Change in simtrace2[master]: firmware: disable stack protector by default In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23679 ) Change subject: firmware: disable stack protector by default ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I30ad97f231ea5b401def650bc9adc7e9f2770df0 Gerrit-Change-Number: 23679 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 08 Apr 2021 13:36: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 Apr 8 13:42:02 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 8 Apr 2021 13:42:02 +0000 Subject: Change in libosmocore[master]: vty/logging: logp: properly handle library specific sub-systems In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23630 ) Change subject: vty/logging: logp: properly handle library specific sub-systems ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If86563e169fe1243adfa7b09c9d65d9f88c8a99e Gerrit-Change-Number: 23630 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 08 Apr 2021 13:42:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 13:46:28 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 8 Apr 2021 13:46:28 +0000 Subject: Change in osmo-bsc[master]: Replace all references to 'sysmobts' with 'osmo-bts' In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23627 ) Change subject: Replace all references to 'sysmobts' with 'osmo-bts' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I93ab4dbf483e0786c35685b75ee4ea83bd591f7b Gerrit-Change-Number: 23627 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 08 Apr 2021 13:46: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 Apr 8 13:59:35 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 8 Apr 2021 13:59:35 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... Patch Set 1: Verified+1 Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 08 Apr 2021 13: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 Thu Apr 8 14:12:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 14:12:04 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+1 > > we might want to keep one config file with 'sysmobts' around for a related unit test to ensure that the backwards compatibility works? just an idea. Our TTCN-3 test suites still have 'sysmobts' in the config files, so if there is a regression we will see it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 08 Apr 2021 14:12: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 Thu Apr 8 14:12:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 14:12:54 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... Patch Set 1: Verified+1 Of course, I did some [manual] testing to make sure that it still accepts the old variant. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 08 Apr 2021 14:12:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 15:37:08 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 8 Apr 2021 15:37:08 +0000 Subject: Change in pysim[master]: pySim-shell: fix wrong reference to iccid. In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23668 ) Change subject: pySim-shell: fix wrong reference to iccid. ...................................................................... pySim-shell: fix wrong reference to iccid. It should be self.iccid instead of self._cmd.iccid Change-Id: Icb7378929187a4fc39a8f1ddbaa18291f16caf79 Related: OS#4963 --- M pySim-shell.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim-shell.py b/pySim-shell.py index 7f48d58..f1060de 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -111,7 +111,7 @@ if pin_adm: self.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self.iccid)) else: - self.poutput("cannot find ADM-PIN for ICCID '%s'" % (self._cmd.iccid)) + self.poutput("cannot find ADM-PIN for ICCID '%s'" % (self.iccid)) return if pin_adm: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icb7378929187a4fc39a8f1ddbaa18291f16caf79 Gerrit-Change-Number: 23668 Gerrit-PatchSet: 3 Gerrit-Owner: dexter 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 Apr 8 15:37:32 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 8 Apr 2021 15:37:32 +0000 Subject: Change in pysim[master]: tests: remove .example files for simcard tests In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23669 ) Change subject: tests: remove .example files for simcard tests ...................................................................... tests: remove .example files for simcard tests The folder pysim-testdata already contains testdata that can also be used as examples. The .example files are from a time where the testdata was not kept inside the repository. Since we decided to keep the test data in the repository as well those file are redundant. Change-Id: Iee34cad74b50755e1007506f909da9766fa8412e --- D tests/Wavemobile-SIM.data.example D tests/fakemagicsim.data.example D tests/sysmoUSIM-SJS1.data.example D tests/sysmosim-gr1.data.example 4 files changed, 0 insertions(+), 26 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/Wavemobile-SIM.data.example b/tests/Wavemobile-SIM.data.example deleted file mode 100644 index bdf2d65..0000000 --- a/tests/Wavemobile-SIM.data.example +++ /dev/null @@ -1,5 +0,0 @@ -MCC=001 -MNC=01 -IMSI=001010000000102 -ADM_HEX=0123456789ABCDEF - diff --git a/tests/fakemagicsim.data.example b/tests/fakemagicsim.data.example deleted file mode 100644 index deab2f7..0000000 --- a/tests/fakemagicsim.data.example +++ /dev/null @@ -1,6 +0,0 @@ -MCC=001 -MNC=01 -ICCID=1122334455667788990 -KI=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -OPC=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -IMSI=001010000000102 \ No newline at end of file diff --git a/tests/sysmoUSIM-SJS1.data.example b/tests/sysmoUSIM-SJS1.data.example deleted file mode 100644 index 19efd15..0000000 --- a/tests/sysmoUSIM-SJS1.data.example +++ /dev/null @@ -1,8 +0,0 @@ -MCC=001 -MNC=01 -ICCID=1122334455667788990 -KI=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -OPC=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -IMSI=001010000000102 -MSISDN=+77776336143 -ADM=12345678 diff --git a/tests/sysmosim-gr1.data.example b/tests/sysmosim-gr1.data.example deleted file mode 100644 index 90d23f8..0000000 --- a/tests/sysmosim-gr1.data.example +++ /dev/null @@ -1,7 +0,0 @@ -MCC=001 -MNC=01 -ICCID=1122334455667788990 -KI=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -OPC=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -IMSI=001010000000102 -ADM=DDDDDDDD -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee34cad74b50755e1007506f909da9766fa8412e Gerrit-Change-Number: 23669 Gerrit-PatchSet: 2 Gerrit-Owner: dexter 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 Thu Apr 8 15:41:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 8 Apr 2021 15:41:53 +0000 Subject: Change in simtrace2[master]: firmware: disable stack protector by default In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23679 ) Change subject: firmware: disable stack protector by default ...................................................................... Patch Set 1: Verified+1 Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I30ad97f231ea5b401def650bc9adc7e9f2770df0 Gerrit-Change-Number: 23679 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 08 Apr 2021 15:41: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 Apr 8 15:41:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 8 Apr 2021 15:41:57 +0000 Subject: Change in simtrace2[master]: firmware: disable stack protector by default In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23679 ) Change subject: firmware: disable stack protector by default ...................................................................... firmware: disable stack protector by default Disable stack protector for all boards/apps by default, not only qmod-dfu. Use 'make STACK_PROTECTOR=1' to enable. This was recommened by Eric: "I'd argue that we do not want this in general, since it adds canaries to all functions that deal with buffers, and therefore impacts the overall timing in a non determinstic way depending on inlining and optimizations, while contributing nothing in non debug builds." Related: OS#5081 Change-Id: I30ad97f231ea5b401def650bc9adc7e9f2770df0 --- M firmware/Makefile 1 file changed, 8 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved; Verified fixeria: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve diff --git a/firmware/Makefile b/firmware/Makefile index b147b0d..684f223 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -59,11 +59,6 @@ BIN = bin OBJ = obj/$(BOARD) -# Disable stack protector for code in small ROM regions (OS#5081) -ifeq ($(BOARD)-$(APP), qmod-dfu) -CFLAGS_EXTRA ?= -fno-stack-protector -endif - #------------------------------------------------------------------------------- # Tools #------------------------------------------------------------------------------- @@ -183,7 +178,14 @@ CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" CFLAGS += -DBOARD=\"$(BOARD)\" -DBOARD_$(BOARD) CFLAGS += -DAPPLICATION=\"$(APP)\" -DAPPLICATION_$(APP) -CFLAGS += $(CFLAGS_EXTRA) + +# Disable stack protector by default (OS#5081) +ifeq ($(STACK_PROTECTOR), 1) +CFLAGS += -fstack-protector +else +CFLAGS += -fno-stack-protector +endif + ASFLAGS = -mcpu=cortex-m3 -mthumb -Wall -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -D__ASSEMBLY__ LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=ResetException -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--print-memory-usage -Wl,--no-undefined $(LIB) #LD_OPTIONAL=-Wl,--print-gc-sections -Wl,--stats -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I30ad97f231ea5b401def650bc9adc7e9f2770df0 Gerrit-Change-Number: 23679 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 15:52:40 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 8 Apr 2021 15:52:40 +0000 Subject: Change in pysim[master]: pySim-shell: be sure that startup script file exists References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23680 ) Change subject: pySim-shell: be sure that startup script file exists ...................................................................... pySim-shell: be sure that startup script file exists When a startup script file is specified that does not exists pySim-shell skips the script and starts normally. This is dangerous because if pySim-shell is called by a shellscript with a nonexisting script file the shellscript may hang forever because there is no script that exists pySim-shell again Change-Id: I4ff2226c8852727aa23357aa54d1e2d480bfaf2d Related: OS#4963 --- M pySim-shell.py 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/80/23680/1 diff --git a/pySim-shell.py b/pySim-shell.py index f1060de..53c8585 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -450,6 +450,12 @@ rs.mf.add_file(DF_TELECOM()) rs.mf.add_file(DF_GSM()) + # If a script file is specified, be sure that it actually exists + if opts.script: + if not os.path.exists(opts.script) or not os.path.isfile(opts.script): + print("Invalid script file!") + sys.exit(2) + app = PysimApp(card, rs, opts.script) rs.select('MF', app) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4ff2226c8852727aa23357aa54d1e2d480bfaf2d Gerrit-Change-Number: 23680 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 Apr 8 18:35:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 18:35:07 +0000 Subject: Change in pysim[master]: shell: add edit_{record, binary}_decoded shell commands References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23681 ) Change subject: shell: add edit_{record,binary}_decoded shell commands ...................................................................... shell: add edit_{record,binary}_decoded shell commands This allows the user to edit the file/record contents in its JSON representation inside the standard system text editor. Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 --- M docs/shell.rst M pySim/filesystem.py 2 files changed, 86 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/81/23681/1 diff --git a/docs/shell.rst b/docs/shell.rst index 652e572..3ea6c56 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -206,6 +206,24 @@ :func: LinFixedEF.ShellCommands.upd_rec_dec_parser +edit_record_decoded +~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.edit_rec_dec_parser + +This command will read the selected record, decode it to its JSON representation, save +that JSON to a temporary file on your computer, and launch your configured text editor. + +You may then perform whatever modifications to the JSON representation, save + leave your +text editor. + +Afterwards, the modified JSON will be re-encoded to the binary format, and the result written +back to the record on the SIM card. + +This allows for easy interactive modification of records. + + Transparent EF commands ----------------------- @@ -268,6 +286,23 @@ } +edit_binary_decoded +~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: TransparentEF.ShellCommands.edit_bin_dec_parser + +This command will read the selected binary EF, decode it to its JSON representation, save +that JSON to a temporary file on your computer, and launch your configured text editor. + +You may then perform whatever modifications to the JSON representation, save + leave your +text editor. + +Afterwards, the modified JSON will be re-encoded to the binary format, and the result written +to the SIM card. + +This allows for easy interactive modification of file contents. + cmd2 settable parameters ------------------------ diff --git a/pySim/filesystem.py b/pySim/filesystem.py index e97fbf6..ad93cff 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -25,6 +25,8 @@ # along with this program. If not, see . import code +import tempfile +import shutil import json import cmd2 @@ -433,6 +435,29 @@ if data: self._cmd.poutput_json(data) + def do_edit_binary_decoded(self, opts): + """Edit the JSON representation of the EF contents in an editor.""" + (orig_json, sw) = self._cmd.rs.read_binary_dec() + dirname = tempfile.mkdtemp(prefix='pysim_') + try: + filename = '%s/file' % dirname + # write existing data as JSON to file + with open(filename, 'w') as text_file: + json.dump(orig_json, text_file, indent=4) + # run a text editor + self._cmd._run_editor(filename) + with open(filename, 'r') as text_file: + edited_json = json.load(text_file) + if edited_json == orig_json: + self._cmd.poutput("Data not modified, skipping write") + else: + (data, sw) = self._cmd.rs.update_binary_dec(edited_json) + if data: + self._cmd.poutput_json(data) + finally: + shutil.rmtree(dirname) + + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None, size={1,None}): """ @@ -622,6 +647,32 @@ if data: self._cmd.poutput(data) + edit_rec_dec_parser = argparse.ArgumentParser() + edit_rec_dec_parser.add_argument('record_nr', type=int, help='Number of record to be edited') + @cmd2.with_argparser(edit_rec_dec_parser) + def do_edit_record_decoded(self, opts): + """Edit the JSON representation of one record in an editor.""" + (orig_json, sw) = self._cmd.rs.read_record_dec(opts.record_nr) + dirname = tempfile.mkdtemp(prefix='pysim_') + try: + filename = '%s/file' % dirname + # write existing data as JSON to file + with open(filename, 'w') as text_file: + json.dump(orig_json, text_file, indent=4) + # run a text editor + self._cmd._run_editor(filename) + with open(filename, 'r') as text_file: + edited_json = json.load(text_file) + if edited_json == orig_json: + self._cmd.poutput("Data not modified, skipping write") + else: + (data, sw) = self._cmd.rs.update_record_dec(opts.record_nr, edited_json) + if data: + self._cmd.poutput_json(data) + finally: + shutil.rmtree(dirname) + + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:Optional[CardDF]=None, rec_len={1,None}): """ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 Gerrit-Change-Number: 23681 Gerrit-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 Apr 8 18:44:55 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 18:44:55 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... Patch Set 3: the usual pattern we have is enum foobar { ... }; const char *foobar_name(); It's not really my fault that there was a mess previously, I think it sucks to deviate from the usual pattern just because some other name failed to be chosen right in the past. No other enum has "_short_" in its name function. I would really hate to have to do that. I put an API doc to the mis-named function. isn't that sufficient? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 18:44: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 Apr 8 18:45:55 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 18:45:55 +0000 Subject: Change in osmo-bts[master]: omldummy: add cmdline arg --features In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23589 ) Change subject: omldummy: add cmdline arg --features ...................................................................... Patch Set 1: > Given that omldummy already has some hard-coded features, we may want to allow disabling them too? Not sure what the syntax should look like, maybe: -f +VAMOS,-HOPPING. What do you think? sounds reasonable to me. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae Gerrit-Change-Number: 23589 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 08 Apr 2021 18:45: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 Apr 8 18:55:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 18:55:46 +0000 Subject: Change in osmo-bts[master]: omldummy: add cmdline arg --features In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23589 ) Change subject: omldummy: add cmdline arg --features ...................................................................... Patch Set 1: So I quickly wanted to implement a "-f -HOPPING" style and that's where you notice that a minus doesn't work so well -- it gets interpreted by getopt. So to disable precompiled features we'd need a separate cmdline arg like '--without-features', and hence I propose that we just add this feature enabling cmdline option now (i.e. leave this patch as it is), and in a separate patch add a feature-disabling cmdline option once we need it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae Gerrit-Change-Number: 23589 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 08 Apr 2021 18:55: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 Apr 8 18:57:35 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 18:57:35 +0000 Subject: Change in osmo-bts[master]: omldummy: introduce using getopt_long In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/23588 to look at the new patch set (#2). Change subject: omldummy: introduce using getopt_long ...................................................................... omldummy: introduce using getopt_long Prepare for adding the --features cmdline arg following in a subsequent patch. Related: SYS#4895 Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc --- M src/osmo-bts-omldummy/main.c 1 file changed, 68 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/88/23588/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc Gerrit-Change-Number: 23588 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 18:57:35 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 18:57:35 +0000 Subject: Change in osmo-bts[master]: omldummy: add cmdline arg --features 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/+/23589 to look at the new patch set (#2). Change subject: omldummy: add cmdline arg --features ...................................................................... omldummy: add cmdline arg --features The current usage is to make osmo-bts-omldummy indicate BTS_FEAT_VAMOS on OML, so that we can test osmo-bsc's behavior when VAMOS is enabled. Related: SYS#4895 Depends: I699cd27512887d64d824be680303e70fff3677c1 (libosmocore) Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae --- M src/osmo-bts-omldummy/main.c 1 file changed, 37 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/89/23589/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae Gerrit-Change-Number: 23589 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 19:00:28 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 19:00:28 +0000 Subject: Change in osmo-bts[master]: omldummy: introduce using getopt_long In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23588 ) Change subject: omldummy: introduce using getopt_long ...................................................................... Patch Set 2: Code-Review+2 re-add previous +2 after trivial fix -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc Gerrit-Change-Number: 23588 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 08 Apr 2021 19:00:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 19:03:03 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 19:03:03 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... Patch Set 3: I would rather add a new properly named function for the "desc" strings, deprecate the badly named one, and keep this patch as it is with a proper name for the "name" strings -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 19:03:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 19:17:06 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 19:17:06 +0000 Subject: Change in libosmocore[master]: deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23682 ) Change subject: deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() ...................................................................... deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() The function osmo_bts_feature_name() is ill-named for two reasons: - it returns descriptive text instead of just a string representation of the name. - The enum is named "osmo_bts_features", so the function name lacks the "s" for "features". Rationale: An upcoming patch adds a function to return just the name, properly called osmo_bts_features_name(), so deprecate the weirdly named one first. Change-Id: I9dfdb5e81037b6000effbd340af4e5db0dcfd69c --- M include/osmocom/gsm/bts_features.h 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/82/23682/1 diff --git a/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h index ac2c760..1c9fa03 100644 --- a/include/osmocom/gsm/bts_features.h +++ b/include/osmocom/gsm/bts_features.h @@ -34,7 +34,11 @@ extern const struct value_string osmo_bts_features_descs[]; -const char *osmo_bts_feature_name(enum osmo_bts_features feature); +static const char *osmo_bts_features_desc(enum osmo_bts_features val) +{ return get_value_string(osmo_bts_features_descs, val); } + +const char *osmo_bts_feature_name(enum osmo_bts_features feature) + OSMO_DEPRECATED("Use osmo_bts_features_desc() instead"); static inline int osmo_bts_set_feature(struct bitvec *features, enum osmo_bts_features feature) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9dfdb5e81037b6000effbd340af4e5db0dcfd69c Gerrit-Change-Number: 23682 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 Apr 8 19:17:49 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 19:17:49 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... Patch Set 4: I "prepended" a patch to deprecate the ill named function, is that acceptable now? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 19:17: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 Thu Apr 8 19:20:05 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 19:20:05 +0000 Subject: Change in libosmocore[master]: deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() 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/+/23682 to look at the new patch set (#2). Change subject: deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() ...................................................................... deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() The function osmo_bts_feature_name() is ill-named for two reasons: - it returns descriptive text instead of just a string representation of the name. - The enum is named "osmo_bts_features", so the function name lacks the "s" for "features". Rationale: An upcoming patch adds a function to return just the name, properly called osmo_bts_features_name(), so deprecate the weirdly named one first. Change-Id: I9dfdb5e81037b6000effbd340af4e5db0dcfd69c --- M include/osmocom/gsm/bts_features.h 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/82/23682/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9dfdb5e81037b6000effbd340af4e5db0dcfd69c Gerrit-Change-Number: 23682 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 20:19:46 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 20:19:46 +0000 Subject: Change in libosmocore[master]: deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23682 ) Change subject: deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23682/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/23682/2//COMMIT_MSG at 12 PS2, Line 12: - The enum is named "osmo_bts_features", so the function name lacks the Well, it's debatable. The enum contains _multiple_ features, while the function returns desc for a single (the given) feature. Not going to block you, just my view on the naming. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9dfdb5e81037b6000effbd340af4e5db0dcfd69c Gerrit-Change-Number: 23682 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 08 Apr 2021 20:19:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 20:25:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 20:25:31 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... Patch Set 5: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/23587/5/src/gsm/bts_features.c File src/gsm/bts_features.c: https://gerrit.osmocom.org/c/libosmocore/+/23587/5/src/gsm/bts_features.c at 57 PS5, Line 57: const struct value_string osmo_bts_features_names[] = { I would love to see this block consistent with 'osmo_bts_features_descs', i.e. using tabs and '{ 0, NULL }', but again, don't want to block this simple part of the complex task any further. https://gerrit.osmocom.org/c/libosmocore/+/23587/5/src/gsm/libosmogsm.map File src/gsm/libosmogsm.map: https://gerrit.osmocom.org/c/libosmocore/+/23587/5/src/gsm/libosmogsm.map at 400 PS5, Line 400: osmo_bts_features_name Do we really need to expose a 'static inline' symbol that is in the header file? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 20:25:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:12:49 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 21:12:49 +0000 Subject: Change in osmo-bsc[master]: fixup for neighbor config for coverity In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23524 ) Change subject: fixup for neighbor config for coverity ...................................................................... fixup for neighbor config for coverity Check against NULL pointers to allow only resolving local or only remote neighbors in resolve_neighbors(). (Though no caller exists currently that would need this feature, it is trivial and more future-safe.) Related: CID#220459 CID#220460 Change-Id: I8c2046335ec6f8a5d6b757446c98d8e630ee015f --- M src/osmo-bsc/neighbor_ident.c 1 file changed, 4 insertions(+), 2 deletions(-) Approvals: dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/neighbor_ident.c b/src/osmo-bsc/neighbor_ident.c index 263d410..6e70625 100644 --- a/src/osmo-bsc/neighbor_ident.c +++ b/src/osmo-bsc/neighbor_ident.c @@ -130,8 +130,10 @@ struct gsm_bts *local_neighbor = NULL; struct gsm0808_cell_id_list2 remotes = {}; - *local_neighbor_p = NULL; - *remote_neighbors = (struct gsm0808_cell_id_list2){ 0 }; + if (local_neighbor_p) + *local_neighbor_p = NULL; + if (remote_neighbors) + *remote_neighbors = (struct gsm0808_cell_id_list2){ 0 }; llist_for_each_entry(n, &from_bts->neighbors, entry) { struct gsm_bts *neigh_bts; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23524 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8c2046335ec6f8a5d6b757446c98d8e630ee015f Gerrit-Change-Number: 23524 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Apr 8 21:13:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:13:47 +0000 Subject: Change in pysim[master]: pySim-shell: be sure that startup script file exists In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23680 ) Change subject: pySim-shell: be sure that startup script file exists ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23680/1/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/23680/1/pySim-shell.py at 455 PS1, Line 455: if not o I guess you actually want to try to open and read it. AFter all, the file could exist and be a file but not be readable by the current user. And then again you run into the behavior you're trying to avoid (no error message but not terminating due to hidden error) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4ff2226c8852727aa23357aa54d1e2d480bfaf2d Gerrit-Change-Number: 23680 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 21:13:47 +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 Apr 8 21:14:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:14:26 +0000 Subject: Change in pysim[master]: pySim-shell: be sure that startup script file exists In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23680 ) Change subject: pySim-shell: be sure that startup script file exists ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23680/1/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/23680/1/pySim-shell.py at 455 PS1, Line 455: if not o > I guess you actually want to try to open and read it. [?] if there's an os.path.isreadable() then of course something like that could also be used instead of actually opening and reading it. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4ff2226c8852727aa23357aa54d1e2d480bfaf2d Gerrit-Change-Number: 23680 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 21:14:26 +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 Apr 8 21:17:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:17:11 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/23587/5/src/gsm/bts_features.c File src/gsm/bts_features.c: https://gerrit.osmocom.org/c/libosmocore/+/23587/5/src/gsm/bts_features.c at 57 PS5, Line 57: const struct value_string osmo_bts_features_names[] = { > I would love to see this block consistent with 'osmo_bts_features_descs', i.e. [?] yes, please let's not take everyone's aesthetics too far. There's nothing in our coding style requirements about the use of tab-aligend value_string memmbers. https://gerrit.osmocom.org/c/libosmocore/+/23587/5/src/gsm/libosmogsm.map File src/gsm/libosmogsm.map: https://gerrit.osmocom.org/c/libosmocore/+/23587/5/src/gsm/libosmogsm.map at 400 PS5, Line 400: osmo_bts_features_name > Do we really need to expose a 'static inline' symbol that is in the header file? no, because it actually is not a symbol at all. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 21:17:11 +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 Apr 8 21:27:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:27:52 +0000 Subject: Change in simtrace2[master]: card_emu: waiting_time is stored in etu, not clocks. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23637 ) Change subject: card_emu: waiting_time is stored in etu, not clocks. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I2bc4a7c19cee5fb487ad639ee48ecaea706f6172 Gerrit-Change-Number: 23637 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Thu, 08 Apr 2021 21:27:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:27:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:27:57 +0000 Subject: Change in simtrace2[master]: make sim switch board specific In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23618 ) Change subject: make sim switch board specific ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e Gerrit-Change-Number: 23618 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Thu, 08 Apr 2021 21:27:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:04 +0000 Subject: Change in simtrace2[master]: card_emu: Rename fi to Fi and di to Di In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23638 ) Change subject: card_emu: Rename fi to Fi and di to Di ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Iaede621551520576e9b9af878fa46fbc88e59c2a Gerrit-Change-Number: 23638 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Thu, 08 Apr 2021 21:28:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:08 +0000 Subject: Change in simtrace2[master]: card_emu: Clarify and differentiate F/Fi/F_index/Fi_index In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23639 ) Change subject: card_emu: Clarify and differentiate F/Fi/F_index/Fi_index ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieb2425e8380a81b79df7b2bd072902994e9c3ee7 Gerrit-Change-Number: 23639 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Thu, 08 Apr 2021 21: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 Apr 8 21:28:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:20 +0000 Subject: Change in simtrace2[master]: card_emu: improve reset detection conditions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23641 ) Change subject: card_emu: improve reset detection conditions ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I620333aa8d45561a8028b948955a27f667b58406 Gerrit-Change-Number: 23641 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Thu, 08 Apr 2021 21:28: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 Apr 8 21:28:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:22 +0000 Subject: Change in simtrace2[master]: card_emu: explicitly initialize PTS and TPDU states In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23642 ) Change subject: card_emu: explicitly initialize PTS and TPDU states ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I81b2a8ef3284559164700d94717e4ccf008f53df Gerrit-Change-Number: 23642 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Thu, 08 Apr 2021 21:28: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 Apr 8 21:28:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:25 +0000 Subject: Change in simtrace2[master]: card_emu: Use USART timeout for waiting time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23620 ) Change subject: card_emu: Use USART timeout for waiting time ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Gerrit-Change-Number: 23620 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Thu, 08 Apr 2021 21:28:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:30 +0000 Subject: Change in simtrace2[master]: card_emu: Fix USART timer, particularly in re-start situations In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23643 ) Change subject: card_emu: Fix USART timer, particularly in re-start situations ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ia999d97f835c27597fcd1cf7ac78bac0ab9c98c1 Gerrit-Change-Number: 23643 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Thu, 08 Apr 2021 21:28: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 Apr 8 21:28:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:34 +0000 Subject: Change in simtrace2[master]: card_emu: Fix computation of waiting time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23644 ) Change subject: card_emu: Fix computation of waiting time ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ia21bc7303f9b38834b5b1753983ed2a99bfc7d95 Gerrit-Change-Number: 23644 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Thu, 08 Apr 2021 21:28:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:37 +0000 Subject: Change in simtrace2[master]: card_emu: waiting_time is stored in etu, not clocks. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23637 ) Change subject: card_emu: waiting_time is stored in etu, not clocks. ...................................................................... card_emu: waiting_time is stored in etu, not clocks. The comment didn't reflect the source. I checked all users and the code consistently stores the waiting time in units of 'etu'. Change-Id: I2bc4a7c19cee5fb487ad639ee48ecaea706f6172 --- M firmware/libcommon/source/card_emu.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 269c7c6..5ab6cab 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -165,7 +165,7 @@ uint8_t in_ep; /* USB IN EP */ uint8_t irq_ep; /* USB IN EP */ - uint32_t waiting_time; /* in clocks */ + uint32_t waiting_time; /* in etu */ /* ATR state machine */ struct { -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I2bc4a7c19cee5fb487ad639ee48ecaea706f6172 Gerrit-Change-Number: 23637 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:38 +0000 Subject: Change in simtrace2[master]: make sim switch board specific In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23618 ) Change subject: make sim switch board specific ...................................................................... make sim switch board specific the simtrace board uses a bus switch not used on qmod and owhw to switch the SIM between physical and virtual Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e Related: OS#1704 --- M firmware/libboard/common/include/sim_switch.h R firmware/libboard/owhw/source/sim_switch.c C firmware/libboard/qmod/source/sim_switch.c A firmware/libboard/simtrace/source/sim_switch.c 4 files changed, 62 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/libboard/common/include/sim_switch.h b/firmware/libboard/common/include/sim_switch.h index 3d131f2..4439fa5 100644 --- a/firmware/libboard/common/include/sim_switch.h +++ b/firmware/libboard/common/include/sim_switch.h @@ -14,5 +14,13 @@ */ #pragma once +/** switch card lines to use physical or emulated card + * @param[in] nr card interface number (i.e. slot) + * @param[in] physical which physical interface to switch to (e.g. 0: physical, 1: virtual) + * @return 0 on success, negative else + */ int sim_switch_use_physical(unsigned int nr, int physical); +/** initialise card switching capabilities + * @return number of switchable card interfaces + */ int sim_switch_init(void); diff --git a/firmware/libboard/common/source/sim_switch.c b/firmware/libboard/owhw/source/sim_switch.c similarity index 100% rename from firmware/libboard/common/source/sim_switch.c rename to firmware/libboard/owhw/source/sim_switch.c diff --git a/firmware/libboard/common/source/sim_switch.c b/firmware/libboard/qmod/source/sim_switch.c similarity index 100% copy from firmware/libboard/common/source/sim_switch.c copy to firmware/libboard/qmod/source/sim_switch.c diff --git a/firmware/libboard/simtrace/source/sim_switch.c b/firmware/libboard/simtrace/source/sim_switch.c new file mode 100644 index 0000000..c5c54f0 --- /dev/null +++ b/firmware/libboard/simtrace/source/sim_switch.c @@ -0,0 +1,54 @@ +/* Code to switch between local (physical) and remote (emulated) SIM + * + * (C) 2015-2017 by Harald Welte + * (C) 2018, sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * 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 "board.h" +#include "trace.h" +#include "led.h" +#include "sim_switch.h" + +int sim_switch_use_physical(unsigned int nr, int physical) +{ + const Pin pin_sc = PIN_SC_SW_DEFAULT; // pin to control bus switch for VCC/RST/CLK signals + const Pin pin_io = PIN_IO_SW_DEFAULT; // pin to control bus switch for I/O signal + + if (nr > 0) { + TRACE_ERROR("SIM interface for Modem %d can't be switched\r\n", nr); + return -1; + } + + TRACE_INFO("Modem %u: %s SIM\n\r", nr, physical ? "physical" : "virtual"); + + if (physical) { + TRACE_INFO("%u: Use local/physical SIM\r\n", nr); + PIO_Set(&pin_sc); + PIO_Set(&pin_io); + } else { + TRACE_INFO("%u: Use remote/emulated SIM\r\n", nr); + PIO_Clear(&pin_sc); + PIO_Clear(&pin_io); + } + + return 0; +} + +int sim_switch_init(void) +{ + // the bus switch is already initialised + return 1; // SIMtrace hardware has only one switchable interface +} -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e Gerrit-Change-Number: 23618 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:38 +0000 Subject: Change in simtrace2[master]: card_emu: Rename fi to Fi and di to Di In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23638 ) Change subject: card_emu: Rename fi to Fi and di to Di ...................................................................... card_emu: Rename fi to Fi and di to Di As we will soon introduce the distinction between Fi and F, we should use uppercase letters, as lower-case 'f' is defined in ISO7816-3 as the frequency, which is different from the upper-case 'F'. Change-Id: Iaede621551520576e9b9af878fa46fbc88e59c2a --- M firmware/libcommon/source/card_emu.c 1 file changed, 14 insertions(+), 15 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 5ab6cab..5feb157 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -155,8 +155,8 @@ bool clocked; /*< if clock is active ( true = active, false = inactive) */ /* timing parameters, from PTS */ - uint8_t fi; - uint8_t di; + uint8_t Fi; + uint8_t Di; uint8_t wi; uint8_t tc_chan; /* TC channel number */ @@ -361,10 +361,10 @@ { int rc; - rc = compute_fidi_ratio(ch->fi, ch->di); + rc = compute_fidi_ratio(ch->Fi, ch->Di); if (rc > 0 && rc < 0x400) { TRACE_INFO("%u: computed Fi(%u) Di(%u) ratio: %d\r\n", - ch->num, ch->fi, ch->di, rc); + ch->num, ch->Fi, ch->Di, rc); /* make sure UART uses new F/D ratio */ card_emu_uart_update_fidi(ch->uart_chan, rc); /* notify ETU timer about this */ @@ -395,8 +395,8 @@ break; case ISO_S_WAIT_ATR: /* Reset to initial Fi / Di ratio */ - ch->fi = 1; - ch->di = 1; + ch->Fi = 1; + ch->Di = 1; emu_update_fidi(ch); /* the ATR should only be sent 400 to 40k clock cycles after the RESET. * we use the tc_etu mechanism to wait this time. @@ -490,7 +490,7 @@ } } /* update waiting time (see ISO 7816-3 10.2) */ - ch->waiting_time = ch->wi * 960 * ch->fi; + ch->waiting_time = ch->wi * 960 * ch->Fi; tc_etu_set_wtime(ch->tc_chan, ch->waiting_time); /* go to next state */ card_set_state(ch, ISO_S_WAIT_TPDU); @@ -626,10 +626,9 @@ case PTS_S_WAIT_RESP_PTS1: byte = ch->pts.resp[_PTS1]; /* This must be TA1 */ - ch->fi = byte >> 4; - ch->di = byte & 0xf; - TRACE_DEBUG("%u: found Fi=%u Di=%u\r\n", ch->num, - ch->fi, ch->di); + ch->Fi = byte >> 4; + ch->Di = byte & 0xf; + TRACE_DEBUG("%u: found Fi=%u Di=%u\r\n", ch->num, ch->Fi, ch->Di); break; case PTS_S_WAIT_RESP_PTS2: byte = ch->pts.resp[_PTS2]; @@ -1025,8 +1024,8 @@ if (ch->in_reset) sts->flags |= CEMU_STATUS_F_RESET_ACTIVE; /* FIXME: voltage + card insert */ - sts->fi = ch->fi; - sts->di = ch->di; + sts->fi = ch->Fi; + sts->di = ch->Di; sts->wi = ch->wi; sts->waiting_time = ch->waiting_time; @@ -1232,8 +1231,8 @@ ch->in_reset = in_reset; ch->clocked = clocked; - ch->fi = 0; - ch->di = 1; + ch->Fi = 0; + ch->Di = 1; ch->wi = ISO7816_3_DEFAULT_WI; ch->tc_chan = tc_chan; -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Iaede621551520576e9b9af878fa46fbc88e59c2a Gerrit-Change-Number: 23638 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:39 +0000 Subject: Change in simtrace2[master]: card_emu: Clarify and differentiate F/Fi/F_index/Fi_index In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23639 ) Change subject: card_emu: Clarify and differentiate F/Fi/F_index/Fi_index ...................................................................... card_emu: Clarify and differentiate F/Fi/F_index/Fi_index The ISO7816 spec terms are well-defined, let's not abuse them. We used to consider "Fi" as the "index into the table of F values", while the spec actually considers Fi as the initial value for F. Let's make sure we use the terms quite clearly: * Fi and Di are the initial values for F and D * F*_index and D*_index are the indexes into the ISO7816-3 Tables Furthermore, let's track Fi separately from F, as e.g. the waiting time definition only considers Fi as indicated in the ATR, despite an actually different F value might have been negotiated via PTS meanwhile. Change-Id: Ieb2425e8380a81b79df7b2bd072902994e9c3ee7 Related: OS##1704 --- M firmware/libcommon/include/simtrace_prot.h M firmware/libcommon/source/card_emu.c 2 files changed, 52 insertions(+), 26 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/libcommon/include/simtrace_prot.h b/firmware/libcommon/include/simtrace_prot.h index eca844a..e550616 100644 --- a/firmware/libcommon/include/simtrace_prot.h +++ b/firmware/libcommon/include/simtrace_prot.h @@ -230,11 +230,17 @@ uint32_t flags; /* phone-applied target voltage in mV */ uint16_t voltage_mv; - /* Fi/Di related information */ - uint8_t fi; - uint8_t di; - uint8_t wi; - uint32_t waiting_time; + /* F/D related information. Not actual Fn/Dn values but indexes into tables! */ + union { + uint8_t F_index; /* + * (C) 2010-2021 by Harald Welte * (C) 2018 by sysmocom -s.f.m.c. GmbH, Author: Kevin Redon * * This program is free software; you can redistribute it and/or modify @@ -154,19 +154,35 @@ bool in_reset; /*< if card is in reset (true = RST low/asserted, false = RST high/ released) */ bool clocked; /*< if clock is active ( true = active, false = inactive) */ - /* timing parameters, from PTS */ - uint8_t Fi; - uint8_t Di; + /* All below variables with _index suffix are indexes from 0..15 into Tables 7 + 8 + * of ISO7816-3. */ + + /*! Index to clock rate conversion integer Fi (ISO7816-3 Table 7). + * \note this represents the maximum value supported by the card, and can be indicated in TA1 */ + uint8_t Fi_index; + /*! Current value of index to clock rate conversion integer F (ISO 7816-3 Section 7.1). */ + uint8_t F_index; + + /*! Index to baud rate adjustment factor Di (ISO7816-3 Table 8). + * \note this represents the maximum value supported by the card, and can be indicated in TA1 */ + uint8_t Di_index; + /*! Current value of index to baud rate adjustment factor D (ISO 7816-3 Section 7.1). */ + uint8_t D_index; + + /*! Waiting Integer (ISO7816-3 Section 10.2). + * \note this value can be set in TA2 */ uint8_t wi; + /*! Waiting Time, in ETU (ISO7816-3 Section 8.1). + * \note this depends on Fi, Di, and WI if T=0 is used */ + uint32_t waiting_time; /* in etu */ + uint8_t tc_chan; /* TC channel number */ uint8_t uart_chan; /* UART channel */ uint8_t in_ep; /* USB IN EP */ uint8_t irq_ep; /* USB IN EP */ - uint32_t waiting_time; /* in etu */ - /* ATR state machine */ struct { uint8_t idx; @@ -361,16 +377,16 @@ { int rc; - rc = compute_fidi_ratio(ch->Fi, ch->Di); + rc = compute_fidi_ratio(ch->F_index, ch->D_index); if (rc > 0 && rc < 0x400) { - TRACE_INFO("%u: computed Fi(%u) Di(%u) ratio: %d\r\n", - ch->num, ch->Fi, ch->Di, rc); + TRACE_INFO("%u: computed F(%u)/D(%u) ratio: %d\r\n", ch->num, + ch->F_index, ch->D_index, rc); /* make sure UART uses new F/D ratio */ card_emu_uart_update_fidi(ch->uart_chan, rc); /* notify ETU timer about this */ tc_etu_set_etu(ch->tc_chan, rc); } else - TRACE_INFO("%u: computed FiDi ration %d unsupported\r\n", + TRACE_INFO("%u: computed F/D ratio %d unsupported\r\n", ch->num, rc); } @@ -395,8 +411,10 @@ break; case ISO_S_WAIT_ATR: /* Reset to initial Fi / Di ratio */ - ch->Fi = 1; - ch->Di = 1; + ch->Fi_index = ch->F_index = 1; + ch->Di_index = ch->D_index = 1; + ch->wi = ISO7816_3_DEFAULT_WI; + ch->waiting_time = ISO7816_3_INIT_WTIME; emu_update_fidi(ch); /* the ATR should only be sent 400 to 40k clock cycles after the RESET. * we use the tc_etu mechanism to wait this time. @@ -490,7 +508,7 @@ } } /* update waiting time (see ISO 7816-3 10.2) */ - ch->waiting_time = ch->wi * 960 * ch->Fi; + ch->waiting_time = ch->wi * 960 * fi_table[ch->F_index]; tc_etu_set_wtime(ch->tc_chan, ch->waiting_time); /* go to next state */ card_set_state(ch, ISO_S_WAIT_TPDU); @@ -626,9 +644,11 @@ case PTS_S_WAIT_RESP_PTS1: byte = ch->pts.resp[_PTS1]; /* This must be TA1 */ - ch->Fi = byte >> 4; - ch->Di = byte & 0xf; - TRACE_DEBUG("%u: found Fi=%u Di=%u\r\n", ch->num, ch->Fi, ch->Di); + ch->F_index = byte >> 4; + ch->D_index = byte & 0xf; + TRACE_DEBUG("%u: found F=%u D=%u\r\n", ch->num, + fi_table[ch->F_index], di_table[ch->D_index]); + /* FIXME: if F or D are 0, become unresponsive to signal error condition */ break; case PTS_S_WAIT_RESP_PTS2: byte = ch->pts.resp[_PTS2]; @@ -653,7 +673,7 @@ switch (ch->pts.state) { case PTS_S_WAIT_RESP_PCK: card_emu_uart_wait_tx_idle(ch->uart_chan); - /* update baud rate generator with Fi/Di */ + /* update baud rate generator with F/D */ emu_update_fidi(ch); /* Wait for the next TPDU */ card_set_state(ch, ISO_S_WAIT_TPDU); @@ -1024,8 +1044,8 @@ if (ch->in_reset) sts->flags |= CEMU_STATUS_F_RESET_ACTIVE; /* FIXME: voltage + card insert */ - sts->fi = ch->Fi; - sts->di = ch->Di; + sts->F_index = ch->F_index; + sts->D_index = ch->D_index; sts->wi = ch->wi; sts->waiting_time = ch->waiting_time; @@ -1231,8 +1251,8 @@ ch->in_reset = in_reset; ch->clocked = clocked; - ch->Fi = 0; - ch->Di = 1; + ch->Fi_index = ch->F_index = 1; + ch->Di_index = ch->D_index = 1; ch->wi = ISO7816_3_DEFAULT_WI; ch->tc_chan = tc_chan; -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ieb2425e8380a81b79df7b2bd072902994e9c3ee7 Gerrit-Change-Number: 23639 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:40 +0000 Subject: Change in simtrace2[master]: iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23640 ) Change subject: iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology ...................................................................... iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminology Fi/Di are not the index into the table, but the contents of the table as resolved by Fi_index / Di_index. Let's clarify the terminology. Change-Id: If364e08e7c9a3a9707e6d54b9267c6a7c088e415 --- M firmware/libcommon/include/iso7816_fidi.h M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/iso7816_fidi.c M firmware/libcommon/source/simtrace_iso7816.c M firmware/libcommon/source/sniffer.c 5 files changed, 19 insertions(+), 18 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/libcommon/include/iso7816_fidi.h b/firmware/libcommon/include/iso7816_fidi.h index c56478b..19483b0 100644 --- a/firmware/libcommon/include/iso7816_fidi.h +++ b/firmware/libcommon/include/iso7816_fidi.h @@ -21,10 +21,10 @@ #include /* Table 7 of ISO 7816-3:2006 */ -extern const uint16_t fi_table[]; +extern const uint16_t iso7816_3_fi_table[16]; /* Table 8 from ISO 7816-3:2006 */ -extern const uint8_t di_table[]; +extern const uint8_t iso7816_3_di_table[16]; -/* compute the F/D ratio based on Fi and Di values */ -int compute_fidi_ratio(uint8_t fi, uint8_t di); +/* compute the F/D ratio based on F_index and D_index values */ +int iso7816_3_compute_fd_ratio(uint8_t f_index, uint8_t d_index); diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 1193121..c5e4cfa 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -377,7 +377,7 @@ { int rc; - rc = compute_fidi_ratio(ch->F_index, ch->D_index); + rc = iso7816_3_compute_fd_ratio(ch->F_index, ch->D_index); if (rc > 0 && rc < 0x400) { TRACE_INFO("%u: computed F(%u)/D(%u) ratio: %d\r\n", ch->num, ch->F_index, ch->D_index, rc); @@ -508,7 +508,7 @@ } } /* update waiting time (see ISO 7816-3 10.2) */ - ch->waiting_time = ch->wi * 960 * fi_table[ch->F_index]; + ch->waiting_time = ch->wi * 960 * iso7816_3_fi_table[ch->F_index]; tc_etu_set_wtime(ch->tc_chan, ch->waiting_time); /* go to next state */ card_set_state(ch, ISO_S_WAIT_TPDU); @@ -647,7 +647,7 @@ ch->F_index = byte >> 4; ch->D_index = byte & 0xf; TRACE_DEBUG("%u: found F=%u D=%u\r\n", ch->num, - fi_table[ch->F_index], di_table[ch->D_index]); + iso7816_3_fi_table[ch->F_index], iso7816_3_di_table[ch->D_index]); /* FIXME: if F or D are 0, become unresponsive to signal error condition */ break; case PTS_S_WAIT_RESP_PTS2: diff --git a/firmware/libcommon/source/iso7816_fidi.c b/firmware/libcommon/source/iso7816_fidi.c index 1c70467..033a325 100644 --- a/firmware/libcommon/source/iso7816_fidi.c +++ b/firmware/libcommon/source/iso7816_fidi.c @@ -23,38 +23,38 @@ #include "iso7816_fidi.h" /* Table 7 of ISO 7816-3:2006 */ -const uint16_t fi_table[] = { +const uint16_t iso7816_3_fi_table[] = { 372, 372, 558, 744, 1116, 1488, 1860, 0, 0, 512, 768, 1024, 1536, 2048, 0, 0 }; /* Table 8 from ISO 7816-3:2006 */ -const uint8_t di_table[] = { +const uint8_t iso7816_3_di_table[] = { 0, 1, 2, 4, 8, 16, 32, 64, 12, 20, 2, 4, 8, 16, 32, 64, }; /* compute the F/D ratio based on Fi and Di values */ -int compute_fidi_ratio(uint8_t fi, uint8_t di) +int iso7816_3_compute_fd_ratio(uint8_t f_index, uint8_t d_index) { uint16_t f, d; int ret; - if (fi >= ARRAY_SIZE(fi_table) || - di >= ARRAY_SIZE(di_table)) + if (f_index >= ARRAY_SIZE(iso7816_3_fi_table) || + d_index >= ARRAY_SIZE(iso7816_3_di_table)) return -EINVAL; - f = fi_table[fi]; + f = iso7816_3_fi_table[f_index]; if (f == 0) return -EINVAL; - d = di_table[di]; + d = iso7816_3_di_table[d_index]; if (d == 0) return -EINVAL; /* See table 7 of ISO 7816-3: From 1000 on we divide by 1/d, * which equals a multiplication by d */ - if (di < 8) + if (d_index < 8) ret = f / d; else ret = f * d; diff --git a/firmware/libcommon/source/simtrace_iso7816.c b/firmware/libcommon/source/simtrace_iso7816.c index 8742696..27677a6 100644 --- a/firmware/libcommon/source/simtrace_iso7816.c +++ b/firmware/libcommon/source/simtrace_iso7816.c @@ -125,7 +125,7 @@ uint8_t fi = fidi >> 4; uint8_t di = fidi & 0xf; - int ratio = compute_fidi_ratio(fi, di); + int ratio = iso7816_3_compute_fd_ratio(fi, di); if (ratio > 0 && ratio < 0x8000) { /* make sure USART uses new F/D ratio */ diff --git a/firmware/libcommon/source/sniffer.c b/firmware/libcommon/source/sniffer.c index 08770e2..57e2daa 100644 --- a/firmware/libcommon/source/sniffer.c +++ b/firmware/libcommon/source/sniffer.c @@ -658,9 +658,10 @@ fn = 1; dn = 1; } - TRACE_INFO("PPS negotiation successful: Fn=%u Dn=%u\n\r", fi_table[fn], di_table[dn]); + TRACE_INFO("PPS negotiation successful: Fn=%u Dn=%u\n\r", + iso7816_3_fi_table[fn], iso7816_3_di_table[dn]); update_fidi(&sniff_usart, pps_cur[2]); - update_wt(0, di_table[dn]); + update_wt(0, iso7816_3_di_table[dn]); usb_send_fidi(pps_cur[2]); /* send Fi/Di change notification to host software over USB */ } else { /* checksum is invalid */ TRACE_INFO("PPS negotiation failed\n\r"); -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: If364e08e7c9a3a9707e6d54b9267c6a7c088e415 Gerrit-Change-Number: 23640 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 Thu Apr 8 21:28:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:41 +0000 Subject: Change in simtrace2[master]: card_emu: improve reset detection conditions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23641 ) Change subject: card_emu: improve reset detection conditions ...................................................................... card_emu: improve reset detection conditions * enter ISO_S_WAIT_RST when RST is asserted * enter ISO_S_WAIT_ATR only when we RST is released while in state ISO_S_WAIT_RST Change-Id: I620333aa8d45561a8028b948955a27f667b58406 --- M firmware/libcommon/source/card_emu.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index c5e4cfa..216ffe3 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -1102,7 +1102,7 @@ case CARD_IO_RST: if (active == 0 && ch->in_reset) { TRACE_INFO("%u: RST released\r\n", ch->num); - if (ch->vcc_active && ch->clocked) { + if (ch->vcc_active && ch->clocked && ch->state == ISO_S_WAIT_RST) { /* enable the TC/ETU counter once reset has been released */ tc_etu_enable(ch->tc_chan); /* prepare to send the ATR */ @@ -1113,6 +1113,7 @@ TRACE_INFO("%u: RST asserted\r\n", ch->num); card_handle_reset(ch); chg_mask |= CEMU_STATUS_F_RESET_ACTIVE; + card_set_state(ch, ISO_S_WAIT_RST); } ch->in_reset = active; break; -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I620333aa8d45561a8028b948955a27f667b58406 Gerrit-Change-Number: 23641 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:41 +0000 Subject: Change in simtrace2[master]: card_emu: explicitly initialize PTS and TPDU states In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23642 ) Change subject: card_emu: explicitly initialize PTS and TPDU states ...................................................................... card_emu: explicitly initialize PTS and TPDU states Those are already initialized at various transitions of the master 7816 FSM, but let's properly initialize them at start-up, too. Change-Id: I81b2a8ef3284559164700d94717e4ccf008f53df --- M firmware/libcommon/source/card_emu.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 216ffe3..0ba6eb0 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -1264,6 +1264,9 @@ ch->atr.len = sizeof(default_atr); memcpy(ch->atr.atr, default_atr, ch->atr.len); + ch->pts.state = PTS_S_WAIT_REQ_PTSS; + ch->tpdu.state = TPDU_S_WAIT_CLA; + card_handle_reset(ch); tc_etu_init(ch->tc_chan, ch); -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I81b2a8ef3284559164700d94717e4ccf008f53df Gerrit-Change-Number: 23642 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:42 +0000 Subject: Change in simtrace2[master]: card_emu: Use USART timeout for waiting time In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23620 ) Change subject: card_emu: Use USART timeout for waiting time ...................................................................... card_emu: Use USART timeout for waiting time Instead of using the timer/counter peripheral to handle the waiting time and corresponding timeout, the USART peripheral internal timeout mechanism is used. This is particularly important for the SIMtrace board since there (contrary to other boards) the I/O signal is not wired to a TIO pin of the timer/counter block, and hence Rx/Tx data cannot reset that timer/counter. As a result of this migration, cardem is now supported not only on owhw + qmod, but also on the simtrace board. The guts of this change have been lifted out of Change-Id Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 by Kevin Redon, which was unfortunately touching various different topics at the same time and hence was split up. Some improvements are the introduction of the ENABLE_TX_TIMER_ONLY mode, which avoids the USART interrupt handler getting hammered with TXRDY between release of RST and start of the ATR. Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Related: OS#1704 --- M firmware/apps/cardem/Makefile M firmware/apps/trace/Makefile M firmware/apps/triple_play/Makefile M firmware/libcommon/include/card_emu.h M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/mode_cardemu.c M firmware/test/card_emu_tests.c 7 files changed, 141 insertions(+), 53 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/apps/cardem/Makefile b/firmware/apps/cardem/Makefile index 75c43e8..c0d903f 100644 --- a/firmware/apps/cardem/Makefile +++ b/firmware/apps/cardem/Makefile @@ -1,3 +1,3 @@ C_FILES += $(C_LIBUSB_RT) -C_FILES += card_emu.c cciddriver.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c +C_FILES += card_emu.c cciddriver.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c usb.c diff --git a/firmware/apps/trace/Makefile b/firmware/apps/trace/Makefile index 75c43e8..c0d903f 100644 --- a/firmware/apps/trace/Makefile +++ b/firmware/apps/trace/Makefile @@ -1,3 +1,3 @@ C_FILES += $(C_LIBUSB_RT) -C_FILES += card_emu.c cciddriver.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c +C_FILES += card_emu.c cciddriver.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c usb.c diff --git a/firmware/apps/triple_play/Makefile b/firmware/apps/triple_play/Makefile index df89448..be06c11 100644 --- a/firmware/apps/triple_play/Makefile +++ b/firmware/apps/triple_play/Makefile @@ -1,3 +1,3 @@ C_FILES += $(C_LIBUSB_RT) -C_FILES += card_emu.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c tc_etu.c usb.c +C_FILES += card_emu.c iso7816_4.c iso7816_fidi.c mitm.c mode_cardemu.c mode_ccid.c simtrace_iso7816.c sniffer.c usb.c diff --git a/firmware/libcommon/include/card_emu.h b/firmware/libcommon/include/card_emu.h index 8a73d5c..58e24cd 100644 --- a/firmware/libcommon/include/card_emu.h +++ b/firmware/libcommon/include/card_emu.h @@ -31,7 +31,6 @@ /** initialise card slot * @param[in] slot_num slot number (arbitrary number) - * @param[in] tc_chan timer counter channel (to measure the ETU) * @param[in] uart_chan UART peripheral channel * @param[in] in_ep USB IN end point number * @param[in] irq_ep USB INTerrupt end point number @@ -40,7 +39,7 @@ * @param[in] clocked initial CLK signat state (true = active) * @return main card handle reference */ -struct card_handle *card_emu_init(uint8_t slot_num, uint8_t tc_chan, uint8_t uart_chan, uint8_t in_ep, uint8_t irq_ep, bool vcc_active, bool in_reset, bool clocked); +struct card_handle *card_emu_init(uint8_t slot_num, uint8_t uart_chan, uint8_t in_ep, uint8_t irq_ep, bool vcc_active, bool in_reset, bool clocked); /* process a single byte received from the reader */ void card_emu_process_rx_byte(struct card_handle *ch, uint8_t byte); @@ -58,10 +57,17 @@ void card_emu_have_new_uart_tx(struct card_handle *ch); void card_emu_report_status(struct card_handle *ch, bool report_on_irq); -#define ENABLE_TX 0x01 -#define ENABLE_RX 0x02 +void card_emu_wtime_half_expired(void *ch); +void card_emu_wtime_expired(void *ch); + + +#define ENABLE_TX 0x01 +#define ENABLE_RX 0x02 +#define ENABLE_TX_TIMER_ONLY 0x03 int card_emu_uart_update_fidi(uint8_t uart_chan, unsigned int fidi); +void card_emu_uart_update_wt(uint8_t uart_chan, uint32_t wt); +void card_emu_uart_reset_wt(uint8_t uart_chan); int card_emu_uart_tx(uint8_t uart_chan, uint8_t byte); void card_emu_uart_enable(uint8_t uart_chan, uint8_t rxtx); void card_emu_uart_wait_tx_idle(uint8_t uart_chan); diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 0ba6eb0..cefc957 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -27,7 +27,6 @@ #include "utils.h" #include "trace.h" #include "iso7816_fidi.h" -#include "tc_etu.h" #include "card_emu.h" #include "simtrace_prot.h" #include "usb_buf.h" @@ -177,7 +176,6 @@ * \note this depends on Fi, Di, and WI if T=0 is used */ uint32_t waiting_time; /* in etu */ - uint8_t tc_chan; /* TC channel number */ uint8_t uart_chan; /* UART channel */ uint8_t in_ep; /* USB IN EP */ @@ -222,7 +220,7 @@ { struct msgb *msg; - tc_etu_disable(ch->tc_chan); + card_emu_uart_update_wt(ch->uart_chan, 0); /* release any buffers we may still own */ if (ch->uart_tx_msg) { @@ -383,8 +381,6 @@ ch->F_index, ch->D_index, rc); /* make sure UART uses new F/D ratio */ card_emu_uart_update_fidi(ch->uart_chan, rc); - /* notify ETU timer about this */ - tc_etu_set_etu(ch->tc_chan, rc); } else TRACE_INFO("%u: computed F/D ratio %d unsupported\r\n", ch->num, rc); @@ -408,6 +404,8 @@ case ISO_S_WAIT_RST: /* disable Rx and Tx of UART */ card_emu_uart_enable(ch->uart_chan, 0); + /* disable timeout */ + card_emu_uart_update_wt(ch->uart_chan, 0); break; case ISO_S_WAIT_ATR: /* Reset to initial Fi / Di ratio */ @@ -416,13 +414,13 @@ ch->wi = ISO7816_3_DEFAULT_WI; ch->waiting_time = ISO7816_3_INIT_WTIME; emu_update_fidi(ch); + /* enable TX to be able to use the timeout */ + card_emu_uart_enable(ch->uart_chan, ENABLE_TX_TIMER_ONLY); /* the ATR should only be sent 400 to 40k clock cycles after the RESET. - * we use the tc_etu mechanism to wait this time. + * we use the UART timeout mechanism to wait this time. * since the initial ETU is Fd=372/Dd=1 clock cycles long, we have to wait 2-107 ETU. */ - tc_etu_set_wtime(ch->tc_chan, 2); - /* enable the TC/ETU counter once reset has been released */ - tc_etu_enable(ch->tc_chan); + card_emu_uart_update_wt(ch->uart_chan, 2); break; case ISO_S_IN_ATR: /* initialize to default WI, this will be overwritten if we @@ -432,7 +430,7 @@ /* update waiting time to initial waiting time */ ch->waiting_time = ISO7816_3_INIT_WTIME; /* set initial waiting time */ - tc_etu_set_wtime(ch->tc_chan, ch->waiting_time); + card_emu_uart_update_wt(ch->uart_chan, ch->waiting_time); /* Set ATR sub-state to initial state */ ch->atr.idx = 0; /* enable USART transmission to reader */ @@ -509,7 +507,6 @@ } /* update waiting time (see ISO 7816-3 10.2) */ ch->waiting_time = ch->wi * 960 * iso7816_3_fi_table[ch->F_index]; - tc_etu_set_wtime(ch->tc_chan, ch->waiting_time); /* go to next state */ card_set_state(ch, ISO_S_WAIT_TPDU); return 0; @@ -677,6 +674,7 @@ emu_update_fidi(ch); /* Wait for the next TPDU */ card_set_state(ch, ISO_S_WAIT_TPDU); + set_pts_state(ch, PTS_S_WAIT_REQ_PTSS); break; default: /* calculate the next state and set it */ @@ -752,14 +750,28 @@ switch (new_ts) { case TPDU_S_WAIT_CLA: - case TPDU_S_WAIT_RX: + /* switch back to receiving mode */ card_emu_uart_enable(ch->uart_chan, ENABLE_RX); + /* disable waiting time since we don't expect any data */ + card_emu_uart_update_wt(ch->uart_chan, 0); + break; + case TPDU_S_WAIT_INS: + /* start waiting for the rest of the header/body */ + card_emu_uart_update_wt(ch->uart_chan, ch->waiting_time); + break; + case TPDU_S_WAIT_RX: + /* switch to receive mode to receive the body */ + card_emu_uart_enable(ch->uart_chan, ENABLE_RX); + /* start waiting for the body */ + card_emu_uart_update_wt(ch->uart_chan, ch->waiting_time); break; case TPDU_S_WAIT_PB: /* we just completed the TPDU header from reader to card * and now need to disable the receiver, enable the * transmitter and transmit the procedure byte */ card_emu_uart_enable(ch->uart_chan, ENABLE_TX); + /* prepare to extend the waiting time once half of it is reached */ + card_emu_uart_update_wt(ch->uart_chan, ch->waiting_time); break; default: break; @@ -1103,8 +1115,6 @@ if (active == 0 && ch->in_reset) { TRACE_INFO("%u: RST released\r\n", ch->num); if (ch->vcc_active && ch->clocked && ch->state == ISO_S_WAIT_RST) { - /* enable the TC/ETU counter once reset has been released */ - tc_etu_enable(ch->tc_chan); /* prepare to send the ATR */ card_set_state(ch, ISO_S_WAIT_ATR); } @@ -1163,7 +1173,7 @@ } /* hardware driver informs us that one (more) ETU has expired */ -void tc_etu_wtime_half_expired(void *handle) +void card_emu_wtime_half_expired(void *handle) { struct card_handle *ch = handle; /* transmit NULL procedure byte well before waiting time expires */ @@ -1173,7 +1183,10 @@ case TPDU_S_WAIT_PB: case TPDU_S_WAIT_TX: putchar('N'); + /* we are waiting for data from the user. Send a procedure byte to ask the + * reader to wait more time */ card_emu_uart_tx(ch->uart_chan, ISO7816_3_PB_NULL); + card_emu_uart_reset_wt(ch->uart_chan); break; default: break; @@ -1185,7 +1198,7 @@ } /* hardware driver informs us that one (more) ETU has expired */ -void tc_etu_wtime_expired(void *handle) +void card_emu_wtime_expired(void *handle) { struct card_handle *ch = handle; switch (ch->state) { @@ -1231,7 +1244,7 @@ return 0; } -struct card_handle *card_emu_init(uint8_t slot_num, uint8_t tc_chan, uint8_t uart_chan, uint8_t in_ep, uint8_t irq_ep, bool vcc_active, bool in_reset, bool clocked) +struct card_handle *card_emu_init(uint8_t slot_num, uint8_t uart_chan, uint8_t in_ep, uint8_t irq_ep, bool vcc_active, bool in_reset, bool clocked) { struct card_handle *ch; @@ -1256,7 +1269,6 @@ ch->Di_index = ch->D_index = 1; ch->wi = ISO7816_3_DEFAULT_WI; - ch->tc_chan = tc_chan; ch->uart_chan = uart_chan; ch->waiting_time = ISO7816_3_INIT_WTIME; @@ -1269,7 +1281,5 @@ card_handle_reset(ch); - tc_etu_init(ch->tc_chan, ch); - return ch; } diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 4886983..8531eb5 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -55,6 +55,14 @@ struct llist_head usb_out_queue; struct ringbuf rb; struct Usart_info usart_info; + struct { + /*! receiver waiting time to trigger timeout (0 to deactivate it) */ + uint32_t total; + /*! remaining waiting time (we may need multiple timer runs to reach total */ + uint32_t remaining; + /*! did we already notify about half the time having expired? */ + bool half_time_notified; + } wt; int usb_pending_old; uint8_t ep_out; uint8_t ep_in; @@ -140,12 +148,23 @@ Usart *usart = get_usart_by_chan(uart_chan); switch (rxtx) { case ENABLE_TX: - USART_DisableIt(usart, ~US_IER_TXRDY); + USART_DisableIt(usart, ~(US_IER_TXRDY | US_IER_TIMEOUT)); /* as irritating as it is, we actually want to keep the * receiver enabled during transmit */ USART_SetReceiverEnabled(usart, 1); usart->US_CR = US_CR_RSTSTA | US_CR_RSTIT | US_CR_RSTNACK; - USART_EnableIt(usart, US_IER_TXRDY); + USART_EnableIt(usart, US_IER_TXRDY | US_IER_TIMEOUT); + USART_SetTransmitterEnabled(usart, 1); + break; + case ENABLE_TX_TIMER_ONLY: + /* enable the transmitter without generating TXRDY interrupts + * just so that the timer can run */ + USART_DisableIt(usart, ~US_IER_TIMEOUT); + /* as irritating as it is, we actually want to keep the + * receiver enabled during transmit */ + USART_SetReceiverEnabled(usart, 1); + usart->US_CR = US_CR_RSTSTA | US_CR_RSTIT | US_CR_RSTNACK; + USART_EnableIt(usart, US_IER_TIMEOUT); USART_SetTransmitterEnabled(usart, 1); break; case ENABLE_RX: @@ -225,11 +244,40 @@ } /* check if any error flags are set */ - if (csr & (US_CSR_OVRE|US_CSR_FRAME|US_CSR_PARE|US_CSR_TIMEOUT|US_CSR_NACK|(1<<10))) { + if (csr & (US_CSR_OVRE|US_CSR_FRAME|US_CSR_PARE|US_CSR_NACK|(1<<10))) { /* clear any error flags */ usart->US_CR = US_CR_RSTSTA | US_CR_RSTIT | US_CR_RSTNACK; TRACE_ERROR("%u USART error on 0x%x status: 0x%lx\n", ci->num, byte, csr); } + + /* check if the timeout has expired. We "abuse" the receive timer for tracking + * how many etu have expired since we last sent a byte. See section + * 33.7.3.11 "Receiver Time-out" of the SAM3S8 Data Sheet */ + if (csr & US_CSR_TIMEOUT) { + /* RX has been inactive for some time */ + if (ci->wt.remaining <= (usart->US_RTOR & 0xffff)) { + /* waiting time is over; will stop the timer */ + ci->wt.remaining = 0; + } else { + /* subtract the actual timeout since the new might not have been set and + * reloaded yet */ + ci->wt.remaining -= (usart->US_RTOR & 0xffff); + } + if (ci->wt.remaining == 0) { + /* let the FSM know that WT has expired */ + card_emu_wtime_expired(ci->ch); + } else if (ci->wt.remaining <= ci->wt.total / 2 && !ci->wt.half_time_notified) { + /* let the FS know that half of the WT has expired */ + card_emu_wtime_half_expired(ci->ch); + ci->wt.half_time_notified = true; + } + /* if value exceeds the USART TO range, use the maximum for now */ + usart->US_RTOR = OSMO_MIN(ci->wt.remaining, 0xffff); + /* clear timeout flag (and stop timeout until next character is received) */ + usart->US_CR |= US_CR_STTTO; + /* restart the counter (it wt is 0, the timeout is not started) */ + usart->US_CR |= US_CR_RETTO; + } } /*! ISR called for USART0 */ @@ -258,6 +306,42 @@ return 0; } +/*! Update WT on USART peripheral. Will automatically re-start timer with new value. + * \param[in] usart USART peripheral to configure + * \param[in] wt inactivity Waiting Time before card_emu_wtime_expired is called (0 to disable) */ +void card_emu_uart_update_wt(uint8_t uart_chan, uint32_t wt) +{ + OSMO_ASSERT(uart_chan < ARRAY_SIZE(cardem_inst)); + struct cardem_inst *ci = &cardem_inst[uart_chan]; + Usart *usart = get_usart_by_chan(uart_chan); + + if (ci->wt.total != wt) { + TRACE_DEBUG("%u: USART WT changed from %lu to %lu ETU\r\n", uart_chan, + ci->wt.total, wt); + } + + ci->wt.total = wt; + /* reset and start the timer */ + card_emu_uart_reset_wt(uart_chan); +} + +/*! Reset and re-start waiting timeout count down on USART peripheral. + * \param[in] usart USART peripheral to configure */ +void card_emu_uart_reset_wt(uint8_t uart_chan) +{ + OSMO_ASSERT(uart_chan < ARRAY_SIZE(cardem_inst)); + struct cardem_inst *ci = &cardem_inst[uart_chan]; + Usart *usart = get_usart_by_chan(uart_chan); + + /* FIXME: guard against race with interrupt handler */ + ci->wt.remaining = ci->wt.total; + ci->wt.half_time_notified = false; + /* if value exceeds the USART TO range, use the maximum for now */ + usart->US_RTOR = OSMO_MIN(ci->wt.remaining, 0xffff); + /* restart the counter (if wt is 0, the timeout is not started) */ + usart->US_CR |= US_CR_RETTO; +} + /* call-back from card_emu.c to force a USART interrupt */ void card_emu_uart_interrupt(uint8_t uart_chan) { @@ -450,7 +534,7 @@ do {} while (!adc_triggered); /* wait for first ADC reading */ #endif /* DETECT_VCC_BY_ADC */ - cardem_inst[0].ch = card_emu_init(0, 2, 0, SIMTRACE_CARDEM_USB_EP_USIM1_DATAIN, + cardem_inst[0].ch = card_emu_init(0, 0, SIMTRACE_CARDEM_USB_EP_USIM1_DATAIN, SIMTRACE_CARDEM_USB_EP_USIM1_INT, cardem_inst[0].vcc_active, cardem_inst[0].rst_active, cardem_inst[0].vcc_active); sim_switch_use_physical(0, 1); @@ -473,7 +557,7 @@ do {} while (!adc_triggered); /* wait for first ADC reading */ #endif /* DETECT_VCC_BY_ADC */ - cardem_inst[1].ch = card_emu_init(1, 0, 1, SIMTRACE_CARDEM_USB_EP_USIM2_DATAIN, + cardem_inst[1].ch = card_emu_init(1, 1, SIMTRACE_CARDEM_USB_EP_USIM2_DATAIN, SIMTRACE_CARDEM_USB_EP_USIM2_INT, cardem_inst[1].vcc_active, cardem_inst[1].rst_active, cardem_inst[1].vcc_active); sim_switch_use_physical(1, 1); diff --git a/firmware/test/card_emu_tests.c b/firmware/test/card_emu_tests.c index 2a1d682..69159a8 100644 --- a/firmware/test/card_emu_tests.c +++ b/firmware/test/card_emu_tests.c @@ -50,6 +50,9 @@ case ENABLE_TX: rts = "TX"; break; + case ENABLE_TX_TIMER_ONLY: + rts = "TX-TIMER-ONLY"; + break; case ENABLE_RX: rts = "RX"; break; @@ -66,29 +69,14 @@ printf("uart_interrupt(uart_chan=%u)\n", uart_chan); } -void tc_etu_set_wtime(uint8_t tc_chan, uint16_t wtime) +void card_emu_uart_update_wt(uint8_t uart_chan, uint32_t wt) { - printf("tc_etu_set_wtime(tc_chan=%u, wtime=%u)\n", tc_chan, wtime); + printf("%s(uart_chan=%u, wtime=%u)\n", __func__, uart_chan, wt); } -void tc_etu_set_etu(uint8_t tc_chan, uint16_t etu) +void card_emu_uart_reset_wt(uint8_t uart_chan) { - printf("tc_etu_set_etu(tc_chan=%u, etu=%u)\n", tc_chan, etu); -} - -void tc_etu_init(uint8_t chan_nr, void *handle) -{ - printf("tc_etu_init(tc_chan=%u)\n", chan_nr); -} - -void tc_etu_enable(uint8_t chan_nr) -{ - printf("tc_etu_enable(tc_chan=%u)\n", chan_nr); -} - -void tc_etu_disable(uint8_t chan_nr) -{ - printf("tc_etu_disable(tc_chan=%u)\n", chan_nr); + printf("%s(uart_chan=%u\n", __func__, uart_chan); } @@ -136,7 +124,7 @@ /* release from reset and verify th ATR */ card_emu_io_statechg(ch, CARD_IO_RST, 0); /* simulate waiting time before ATR expired */ - tc_etu_wtime_expired(ch); + card_emu_wtime_expired(ch); verify_atr(ch); } @@ -408,7 +396,7 @@ struct card_handle *ch; unsigned int i; - ch = card_emu_init(0, 23, 42, PHONE_DATAIN, PHONE_INT, false, true, false); + ch = card_emu_init(0, 42, PHONE_DATAIN, PHONE_INT, false, true, false); assert(ch); usb_buf_init(); -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Gerrit-Change-Number: 23620 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:42 +0000 Subject: Change in simtrace2[master]: card_emu: Fix USART timer, particularly in re-start situations In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23643 ) Change subject: card_emu: Fix USART timer, particularly in re-start situations ...................................................................... card_emu: Fix USART timer, particularly in re-start situations The existing code started the timer once (and expired once) but didn't properly handle re-starting of the timer. Neither did it handle the 'half time expiration' case. If we want to call a function after half the WT expiring, we must of course program the hardware for half the timeout, and not the full timeout... Change-Id: Ia999d97f835c27597fcd1cf7ac78bac0ab9c98c1 Related: OS#1704 --- M firmware/libcommon/source/mode_cardemu.c 1 file changed, 40 insertions(+), 12 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 8531eb5..14f62a6 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -212,6 +212,23 @@ return 1; } +static uint16_t compute_next_timeout(struct cardem_inst *ci) +{ + uint32_t want_to_expire; + + if (ci->wt.total == 0) + return 0; + + if (!ci->wt.half_time_notified) { + /* we need to make sure to expire after half the total waiting time */ + OSMO_ASSERT(ci->wt.remaining > (ci->wt.total / 2)); + want_to_expire = ci->wt.remaining - (ci->wt.total / 2); + } else + want_to_expire = ci->wt.remaining; + TRACE_INFO("want_to_expire=%u (total=%u, remaining=%u)\r\n", want_to_expire, ci->wt.total, ci->wt.remaining); + /* if value exceeds the USART TO range, use the maximum possible value for one round */ + return OSMO_MIN(want_to_expire, 0xffff); +} /*! common handler if interrupt was received. * \param[in] inst_num Instance number, range 0..1 (some boards only '0' permitted) */ @@ -254,6 +271,9 @@ * how many etu have expired since we last sent a byte. See section * 33.7.3.11 "Receiver Time-out" of the SAM3S8 Data Sheet */ if (csr & US_CSR_TIMEOUT) { + /* clear timeout flag (and stop timeout until next character is received) */ + usart->US_CR |= US_CR_STTTO; + /* RX has been inactive for some time */ if (ci->wt.remaining <= (usart->US_RTOR & 0xffff)) { /* waiting time is over; will stop the timer */ @@ -266,17 +286,26 @@ if (ci->wt.remaining == 0) { /* let the FSM know that WT has expired */ card_emu_wtime_expired(ci->ch); - } else if (ci->wt.remaining <= ci->wt.total / 2 && !ci->wt.half_time_notified) { - /* let the FS know that half of the WT has expired */ - card_emu_wtime_half_expired(ci->ch); - ci->wt.half_time_notified = true; + /* don't automatically re-start in this case */ + } else { + bool half_time_just_reached = false; + + if (ci->wt.remaining <= ci->wt.total / 2 && !ci->wt.half_time_notified) { + ci->wt.half_time_notified = true; + /* don't immediately call card_emu_wtime_half_expired(), as that + * in turn may calls card_emu_uart_update_wt() which will change + * the timeout but would be overridden 4 lines below */ + half_time_just_reached = true; + } + + /* update the counter no matter if we reached half time or not */ + usart->US_RTOR = compute_next_timeout(ci); + /* restart the counter (if wt is 0, the timeout is not started) */ + usart->US_CR |= US_CR_RETTO; + + if (half_time_just_reached) + card_emu_wtime_half_expired(ci->ch); } - /* if value exceeds the USART TO range, use the maximum for now */ - usart->US_RTOR = OSMO_MIN(ci->wt.remaining, 0xffff); - /* clear timeout flag (and stop timeout until next character is received) */ - usart->US_CR |= US_CR_STTTO; - /* restart the counter (it wt is 0, the timeout is not started) */ - usart->US_CR |= US_CR_RETTO; } } @@ -336,8 +365,7 @@ /* FIXME: guard against race with interrupt handler */ ci->wt.remaining = ci->wt.total; ci->wt.half_time_notified = false; - /* if value exceeds the USART TO range, use the maximum for now */ - usart->US_RTOR = OSMO_MIN(ci->wt.remaining, 0xffff); + usart->US_RTOR = compute_next_timeout(ci); /* restart the counter (if wt is 0, the timeout is not started) */ usart->US_CR |= US_CR_RETTO; } -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ia999d97f835c27597fcd1cf7ac78bac0ab9c98c1 Gerrit-Change-Number: 23643 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:28:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:28:43 +0000 Subject: Change in simtrace2[master]: card_emu: Fix computation of waiting time In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23644 ) Change subject: card_emu: Fix computation of waiting time ...................................................................... card_emu: Fix computation of waiting time As we store the waiting time (WT) in 'etu', we must adjust the formula from ISO 7816-3. The 'Fi' component in the formula only exists to compute clock cycles from the etu, which we don't need here. Without this patch, the waiting time would be way too large (by a factor of 372 in the default case). Change-Id: Ia21bc7303f9b38834b5b1753983ed2a99bfc7d95 Related: OS#1704 --- M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/mode_cardemu.c 2 files changed, 5 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index cefc957..bcd5fd6 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -505,8 +505,11 @@ } } } - /* update waiting time (see ISO 7816-3 10.2) */ - ch->waiting_time = ch->wi * 960 * iso7816_3_fi_table[ch->F_index]; + /* update waiting time (see ISO 7816-3 10.2). We can drop the Fi + * multiplier as we store the waiting time in units of 'etu', and + * don't really care what the number of clock cycles or the absolute + * wall clock time is */ + ch->waiting_time = ch->wi * 960; /* go to next state */ card_set_state(ch, ISO_S_WAIT_TPDU); return 0; diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 14f62a6..127556c 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -225,7 +225,6 @@ want_to_expire = ci->wt.remaining - (ci->wt.total / 2); } else want_to_expire = ci->wt.remaining; - TRACE_INFO("want_to_expire=%u (total=%u, remaining=%u)\r\n", want_to_expire, ci->wt.total, ci->wt.remaining); /* if value exceeds the USART TO range, use the maximum possible value for one round */ return OSMO_MIN(want_to_expire, 0xffff); } -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ia21bc7303f9b38834b5b1753983ed2a99bfc7d95 Gerrit-Change-Number: 23644 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tsaitgaist Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:30:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:30:55 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: make codec.py work with EOL Python 3.5 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23677 ) Change subject: trx_toolkit: make codec.py work with EOL Python 3.5 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7211cfbb7549b6e700aa3dd44464ff762fd51185 Gerrit-Change-Number: 23677 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 21:30:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:31:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:31:16 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv0/v1 PDUs using declarative codec In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23137 ) Change subject: trx_toolkit: define TRXDv0/v1 PDUs using declarative codec ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23137 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I739ae5da22c603fb2cf1e84d3a79fb1a6e7343b6 Gerrit-Change-Number: 23137 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 08 Apr 2021 21:31: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 Apr 8 21:31:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:31:29 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv2 PDUs using declarative codec In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23678 ) Change subject: trx_toolkit: define TRXDv2 PDUs using declarative codec ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Gerrit-Change-Number: 23678 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 21:31: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 Apr 8 21:31:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:31:44 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_msg.py: add type hints to static methods In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23676 ) Change subject: trx_toolkit/data_msg.py: add type hints to static methods ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I06fd8bc7418700de40467fd63a08da2bc2abcea2 Gerrit-Change-Number: 23676 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 21:31: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 Apr 8 21:32:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:32:14 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: check in simple declarative codec In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23135 ) Change subject: trx_toolkit: check in simple declarative codec ...................................................................... Patch Set 4: > Patch Set 4: > > Can still merge it despite Jenkins adds V-1? I am asking because I would want to merge the patch adding Python 3.5 compatibility separately, so it can be easily reverted once we finally move to Debian 10. yes, that's ok for me. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Gerrit-Change-Number: 23135 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 21:32:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:32:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 8 Apr 2021 21:32:45 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: check in simple declarative codec In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23135 ) Change subject: trx_toolkit: check in simple declarative codec ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Gerrit-Change-Number: 23135 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 08 Apr 2021 21:32: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 Apr 8 21:33:17 2021 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 8 Apr 2021 21:33:17 +0000 Subject: Change in pysim[master]: shell: add edit_{record, binary}_decoded shell commands In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23681 ) Change subject: shell: add edit_{record,binary}_decoded shell commands ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23681/1/pySim/filesystem.py File pySim/filesystem.py: https://gerrit.osmocom.org/c/pysim/+/23681/1/pySim/filesystem.py at 441 PS1, Line 441: dirname = tempfile.mkdtemp(prefix='pysim_') with tempfile.TemporaryDirectory() as dirname: # .... Is probably more pythonic and will handle cleanup of the directory and its content when exiting the context. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 Gerrit-Change-Number: 23681 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 08 Apr 2021 21:33:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 21:37:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 21:37:24 +0000 Subject: Change in pysim[master]: shell: add edit_{record, binary}_decoded shell commands In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23681 ) Change subject: shell: add edit_{record,binary}_decoded shell commands ...................................................................... Patch Set 1: Code-Review+1 (1 comment) Looks good in general. https://gerrit.osmocom.org/c/pysim/+/23681/1/pySim/filesystem.py File pySim/filesystem.py: https://gerrit.osmocom.org/c/pysim/+/23681/1/pySim/filesystem.py at 441 PS1, Line 441: dirname = tempfile.mkdtemp(prefix='pysim_') > with tempfile.TemporaryDirectory() as dirname: [?] Ack -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 Gerrit-Change-Number: 23681 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 08 Apr 2021 21:37:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 22:16:03 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 8 Apr 2021 22:16:03 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings 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/libosmocore/+/23587 to look at the new patch set (#6). Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... add osmo_bts_features_names: short BTS feature strings This will be used by osmo-bts-omldummy to parse features strings from the cmdline. Note that osmo_bts_feature_name() already exists to return the longer descriptive value_strings from osmo_bts_features_descs (_descs!). Luckily that misses the plural 'features' in the name, so that I can still add a properly named osmo_bts_features_name() function that only returns the name, matching the common pattern used in osmocom code. Related: SYS#4895 Change-Id: I699cd27512887d64d824be680303e70fff3677c1 --- M include/osmocom/gsm/bts_features.h M src/gsm/bts_features.c M src/gsm/libosmogsm.map 3 files changed, 32 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/23587/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 8 22:18:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 8 Apr 2021 22:18:15 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 08 Apr 2021 22:18:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 9 00:30:09 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 9 Apr 2021 00:30:09 +0000 Subject: Change in osmo-gbproxy[master]: vty: Print CellId along with RA-ID In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23667 ) Change subject: vty: Print CellId along with RA-ID ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic8b26afe98e6fe11b130679201493f6bcbade0f4 Gerrit-Change-Number: 23667 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 09 Apr 2021 00:30: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 Apr 9 07:45:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 07:45:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 ) Change subject: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc ...................................................................... Patch Set 1: @daniel, maybe you could review so it can get merged? I guess we all want to have this executed ASAP? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iac6c8966aafd1cb2fab515de091e94607eb7c040 Gerrit-Change-Number: 23655 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 09 Apr 2021 07:45: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 Apr 9 08:00:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 08:00:05 +0000 Subject: Change in docker-playground[master]: gbproxy: Add mp_gbproxy_ip to check BVC FSM state References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23683 ) Change subject: gbproxy: Add mp_gbproxy_ip to check BVC FSM state ...................................................................... gbproxy: Add mp_gbproxy_ip to check BVC FSM state In docker-playground.git I272e43b9be8ba53d8a815e8ab099c939f63413a7 we introduce FSM state introspection and we need to add the CTRL hostname here. Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc --- M ttcn3-gbproxy-test/GBProxy_Tests.cfg 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/83/23683/1 diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index 3ad875c..e9de732 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -12,6 +12,7 @@ *.GBPVTY.CTRL_HOSTNAME := "172.18.24.10" [MODULE_PARAMETERS] +GBProxy_Tests.mp_gbproxy_ip := "172.18.24.10" GBProxy_Tests.mp_nsconfig_sgsn := { { handle_sns := true, -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc Gerrit-Change-Number: 23683 Gerrit-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 Apr 9 08:40:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 08:40:58 +0000 Subject: Change in docker-playground[master]: gbproxy: Add mp_gbproxy_ip to check BVC FSM state In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/docker-playground/+/23683 ) Change subject: gbproxy: Add mp_gbproxy_ip to check BVC FSM state ...................................................................... gbproxy: Add mp_gbproxy_ip to check BVC FSM state In docker-playground.git I272e43b9be8ba53d8a815e8ab099c939f63413a7 we introduce FSM state introspection and we need to add the CTRL hostname here. Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 4 files changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/83/23683/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc Gerrit-Change-Number: 23683 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 Apr 9 08:50:43 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 9 Apr 2021 08:50:43 +0000 Subject: Change in osmo-gbproxy[master]: gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23684 ) Change subject: gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset ...................................................................... gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset When a BSS resets its BVC and reuses a BVCI with a differente cell id the SGSN BVC still has the old cell information. This results in the SGSN receiving a BVC reset for the old cell which in turn leads to all sorts of issues (probably also with paging) and conflicting information since the cell info is also present in the UL-UNITDATA and this is just passed through from the BSS. Instead of reusing the old BVC on the SGSN side free any existing and create new ones. Change-Id: Ia94090a0133340b7b284df6ec5b36546da698b37 --- M src/gb_proxy.c 1 file changed, 23 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/84/23684/1 diff --git a/src/gb_proxy.c b/src/gb_proxy.c index c01c5c6..64b1397 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -685,26 +685,33 @@ bvc->cell->bss_bvc = bvc; } - /* allocate (any missing) SGSN-side BVCs within the cell, and reset them */ + /* Ensure we have the correct RA/CELL ID */ + if (!gsm48_ra_equal(&bvc->cell->id.raid, ra_id)) { + LOGPBVC(bvc, LOGL_NOTICE, "RAID changed from %s to %s, updating cell\n", osmo_rai_name(&bvc->cell->id.raid), osmo_rai_name(ra_id)); + memcpy(&bvc->cell->id.raid, ra_id, sizeof(*ra_id)); + } + if (bvc->cell->id.cid != cell_id) { + LOGPBVC(bvc, LOGL_NOTICE, "CellID changed from %05d to %05d, updating cell\n", bvc->cell->id.cid, cell_id); + bvc->cell->id.cid = cell_id; + } + + /* Reallocate SGSN-side BVCs of the cell, and reset them + * Removing and reallocating is needed becaus the ra_id/cell_id might have changed */ 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); + gbproxy_bvc_free(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->raid, &bvc->cell->id.raid, sizeof(sgsn_bvc->raid)); - 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_max_pdu_len(sgsn_bvc->fi, sgsn_nse->max_sdu_len); - bssgp_bvc_fsm_set_ops(sgsn_bvc->fi, &sgsn_ptp_bvc_fsm_ops, sgsn_bvc); - - gbproxy_cell_add_sgsn_bvc(bvc->cell, sgsn_bvc); - } + sgsn_bvc = gbproxy_bvc_alloc(sgsn_nse, bvci); + OSMO_ASSERT(sgsn_bvc); + sgsn_bvc->cell = bvc->cell; + memcpy(&sgsn_bvc->raid, &bvc->cell->id.raid, sizeof(sgsn_bvc->raid)); + 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_max_pdu_len(sgsn_bvc->fi, sgsn_nse->max_sdu_len); + bssgp_bvc_fsm_set_ops(sgsn_bvc->fi, &sgsn_ptp_bvc_fsm_ops, sgsn_bvc); + gbproxy_cell_add_sgsn_bvc(bvc->cell, sgsn_bvc); } /* Trigger outbound BVC-RESET procedure toward each SGSN */ -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ia94090a0133340b7b284df6ec5b36546da698b37 Gerrit-Change-Number: 23684 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 Apr 9 08:50:43 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 9 Apr 2021 08:50:43 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy_main: Add ctrl vty commands References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23685 ) Change subject: gbproxy_main: Add ctrl vty commands ...................................................................... gbproxy_main: Add ctrl vty commands osmo-gbproxy already provides a ctrl interface, we should be able to change ctrl-related configuration. Change-Id: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 --- M src/gb_proxy_main.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/85/23685/1 diff --git a/src/gb_proxy_main.c b/src/gb_proxy_main.c index 45e0858..cf7421f 100644 --- a/src/gb_proxy_main.c +++ b/src/gb_proxy_main.c @@ -281,6 +281,7 @@ vty_info.copyright = openbsc_copyright; vty_init(&vty_info); + ctrl_vty_init(tall_sgsn_ctx); logging_vty_add_cmds(); osmo_talloc_vty_add_cmds(); osmo_stats_vty_add_cmds(); -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 Gerrit-Change-Number: 23685 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 Apr 9 08:51:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 08:51:54 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy_main: Add ctrl vty commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23685 ) Change subject: gbproxy_main: Add ctrl vty commands ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 Gerrit-Change-Number: 23685 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 09 Apr 2021 08: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 Fri Apr 9 08:52:49 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 9 Apr 2021 08:52:49 +0000 Subject: Change in docker-playground[master]: gbproxy: Add mp_gbproxy_ip to check BVC FSM state In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23683 ) Change subject: gbproxy: Add mp_gbproxy_ip to check BVC FSM state ...................................................................... Patch Set 2: Code-Review+1 Requires: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 (osmo-gbproxy) -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc Gerrit-Change-Number: 23683 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 09 Apr 2021 08:52: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 Apr 9 08:54:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 08:54:47 +0000 Subject: Change in osmo-gbproxy[master]: gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23684 ) Change subject: gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset ...................................................................... Patch Set 1: Code-Review+1 I'm not sure if the change to free/re-alloc really is part of the bug fix. It's more like a genreal polict/strategy change, while the actual fix is the memcpy? Not trying to be difficult here, but the free/realloc has consequences, like: Are we sure there are no dangling references, ... -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ia94090a0133340b7b284df6ec5b36546da698b37 Gerrit-Change-Number: 23684 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 09 Apr 2021 08: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 Fri Apr 9 08:58:13 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 9 Apr 2021 08:58:13 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy_main: Add ctrl vty commands In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23685 ) Change subject: gbproxy_main: Add ctrl vty commands ...................................................................... gbproxy_main: Add ctrl vty commands osmo-gbproxy already provides a ctrl interface, we should be able to change ctrl-related configuration. Change-Id: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 --- M src/gb_proxy_main.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb_proxy_main.c b/src/gb_proxy_main.c index 45e0858..cf7421f 100644 --- a/src/gb_proxy_main.c +++ b/src/gb_proxy_main.c @@ -281,6 +281,7 @@ vty_info.copyright = openbsc_copyright; vty_init(&vty_info); + ctrl_vty_init(tall_sgsn_ctx); logging_vty_add_cmds(); osmo_talloc_vty_add_cmds(); osmo_stats_vty_add_cmds(); -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 Gerrit-Change-Number: 23685 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 9 08:58:27 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 9 Apr 2021 08:58:27 +0000 Subject: Change in docker-playground[master]: gbproxy: Add mp_gbproxy_ip to check BVC FSM state In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23683 ) Change subject: gbproxy: Add mp_gbproxy_ip to check BVC FSM state ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc Gerrit-Change-Number: 23683 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 09 Apr 2021 08: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 Fri Apr 9 09:20:05 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 9 Apr 2021 09:20:05 +0000 Subject: Change in osmo-gbproxy[master]: gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23684 ) Change subject: gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+1 > > I'm not sure if the change to free/re-alloc really is part of the bug fix. It's more like a genreal polict/strategy change, while the actual fix is the memcpy? > > Not trying to be difficult here, but the free/realloc has consequences, like: Are we sure there are no dangling references, ... We store cell information in both the cell struct and the FSM inst (as well as ra_id in the bvc...) The memcpy updates the cell, but the bvc reset uses the information stored inside the FSM instance. So we need to either: * free/alloc the whole bvc (as I do now) * reallocate only the fsm inst * Add functions to update the cell information inside the bssbp fsm Best would be to consolidate our cell information so everything points to the cell struct (and there is an issue for that), but I see that as a next step. Wrt. dangling references we already call gbproxy_bvc_free() when the SGSN nse goes down so I figured there should be limited "surprises". -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ia94090a0133340b7b284df6ec5b36546da698b37 Gerrit-Change-Number: 23684 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 09 Apr 2021 09:20: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 Fri Apr 9 09:48:44 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 9 Apr 2021 09:48:44 +0000 Subject: Change in docker-playground[master]: gbproxy: Add mp_gbproxy_ip to check BVC FSM state In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23683 ) Change subject: gbproxy: Add mp_gbproxy_ip to check BVC FSM state ...................................................................... Patch Set 2: Verified-1 accept-dynamic-ip-sns is now required for bind local, otherwise the non-fr test fails. Probably belongs in a different patch, though -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc Gerrit-Change-Number: 23683 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 09 Apr 2021 09:48: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 Apr 9 09:51:26 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 9 Apr 2021 09:51:26 +0000 Subject: Change in docker-playground[master]: gbproxy: Add mp_gbproxy_ip to check BVC FSM state In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23683 ) Change subject: gbproxy: Add mp_gbproxy_ip to check BVC FSM state ...................................................................... Patch Set 2: The config options will also interfere with -latest, so we need sed workaraounds for those in jenkins.sh ... -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc Gerrit-Change-Number: 23683 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 09 Apr 2021 09:51: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 Apr 9 12:27:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 12:27:37 +0000 Subject: Change in docker-playground[master]: gbproxy: Add mp_gbproxy_ip to check BVC FSM state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23683 ) Change subject: gbproxy: Add mp_gbproxy_ip to check BVC FSM state ...................................................................... Patch Set 2: > The config options will also interfere with -latest, so we need sed workaraounds for those in jenkins.sh ... just tag a patch release with the ctrl vty command. it's zero risk. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc Gerrit-Change-Number: 23683 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 09 Apr 2021 12:27: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 Apr 9 12:27:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 12:27:59 +0000 Subject: Change in docker-playground[master]: gbproxy: Add mp_gbproxy_ip to check BVC FSM state In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23683 ) Change subject: gbproxy: Add mp_gbproxy_ip to check BVC FSM state ...................................................................... Removed Verified-1 by daniel -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc Gerrit-Change-Number: 23683 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 9 13:16:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 9 Apr 2021 13:16:39 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... Patch Set 6: Code-Review+1 (maybe we can come up with a cool backronym for descs? ;) ) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 09 Apr 2021 13:16: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 Apr 9 15:46:46 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 9 Apr 2021 15:46:46 +0000 Subject: Change in pysim[master]: pySim-shell: be sure that startup script file exists 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/+/23680 to look at the new patch set (#2). Change subject: pySim-shell: be sure that startup script file exists ...................................................................... pySim-shell: be sure that startup script file exists When a startup script file is specified that does not exists pySim-shell skips the script and starts normally. This is dangerous because if pySim-shell is called by a shellscript with a nonexisting script file the shellscript may hang forever because there is no script that exists pySim-shell again Change-Id: I4ff2226c8852727aa23357aa54d1e2d480bfaf2d Related: OS#4963 --- M pySim-shell.py 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/80/23680/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4ff2226c8852727aa23357aa54d1e2d480bfaf2d Gerrit-Change-Number: 23680 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 9 15:46:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 9 Apr 2021 15:46:55 +0000 Subject: Change in pysim[master]: pySim-shell: be sure that startup script file exists In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23680 ) Change subject: pySim-shell: be sure that startup script file exists ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23680/1/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/23680/1/pySim-shell.py at 455 PS1, Line 455: if not o > if there's an os.path. [?] Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4ff2226c8852727aa23357aa54d1e2d480bfaf2d Gerrit-Change-Number: 23680 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 09 Apr 2021 15:46: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 Fri Apr 9 16:11:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 16:11:48 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 09 Apr 2021 16:11: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 Apr 9 16:12:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 16:12:26 +0000 Subject: Change in libosmocore[master]: deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23682 ) Change subject: deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9dfdb5e81037b6000effbd340af4e5db0dcfd69c Gerrit-Change-Number: 23682 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 09 Apr 2021 16:12: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 Apr 9 16:12:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 16:12:30 +0000 Subject: Change in libosmocore[master]: deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23682 ) Change subject: deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() ...................................................................... deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() The function osmo_bts_feature_name() is ill-named for two reasons: - it returns descriptive text instead of just a string representation of the name. - The enum is named "osmo_bts_features", so the function name lacks the "s" for "features". Rationale: An upcoming patch adds a function to return just the name, properly called osmo_bts_features_name(), so deprecate the weirdly named one first. Change-Id: I9dfdb5e81037b6000effbd340af4e5db0dcfd69c --- M include/osmocom/gsm/bts_features.h 1 file changed, 5 insertions(+), 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/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h index ac2c760..b174d3f 100644 --- a/include/osmocom/gsm/bts_features.h +++ b/include/osmocom/gsm/bts_features.h @@ -34,7 +34,11 @@ extern const struct value_string osmo_bts_features_descs[]; -const char *osmo_bts_feature_name(enum osmo_bts_features feature); +static inline const char *osmo_bts_features_desc(enum osmo_bts_features val) +{ return get_value_string(osmo_bts_features_descs, val); } + +const char *osmo_bts_feature_name(enum osmo_bts_features feature) + OSMO_DEPRECATED("Use osmo_bts_features_desc() instead"); static inline int osmo_bts_set_feature(struct bitvec *features, enum osmo_bts_features feature) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9dfdb5e81037b6000effbd340af4e5db0dcfd69c Gerrit-Change-Number: 23682 Gerrit-PatchSet: 3 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 Apr 9 16:12:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 16:12:30 +0000 Subject: Change in libosmocore[master]: add osmo_bts_features_names: short BTS feature strings In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23587 ) Change subject: add osmo_bts_features_names: short BTS feature strings ...................................................................... add osmo_bts_features_names: short BTS feature strings This will be used by osmo-bts-omldummy to parse features strings from the cmdline. Note that osmo_bts_feature_name() already exists to return the longer descriptive value_strings from osmo_bts_features_descs (_descs!). Luckily that misses the plural 'features' in the name, so that I can still add a properly named osmo_bts_features_name() function that only returns the name, matching the common pattern used in osmocom code. Related: SYS#4895 Change-Id: I699cd27512887d64d824be680303e70fff3677c1 --- M include/osmocom/gsm/bts_features.h M src/gsm/bts_features.c M src/gsm/libosmogsm.map 3 files changed, 32 insertions(+), 1 deletion(-) Approvals: fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h index b174d3f..93d35f3 100644 --- a/include/osmocom/gsm/bts_features.h +++ b/include/osmocom/gsm/bts_features.h @@ -40,6 +40,11 @@ const char *osmo_bts_feature_name(enum osmo_bts_features feature) OSMO_DEPRECATED("Use osmo_bts_features_desc() instead"); +extern const struct value_string osmo_bts_features_names[]; + +static inline const char *osmo_bts_features_name(enum osmo_bts_features val) +{ return get_value_string(osmo_bts_features_names, val); } + static inline int osmo_bts_set_feature(struct bitvec *features, enum osmo_bts_features feature) { OSMO_ASSERT(_NUM_BTS_FEAT < MAX_BTS_FEATURES); diff --git a/src/gsm/bts_features.c b/src/gsm/bts_features.c index c3f3667..fb3193f 100644 --- a/src/gsm/bts_features.c +++ b/src/gsm/bts_features.c @@ -47,8 +47,33 @@ { 0, NULL } }; -/*! return string representation of a BTS feature */ +/*! return description string of a BTS feature (osmo_bts_features_descs). + * To get the plain feature name, use osmo_bts_features_name() instead. */ const char *osmo_bts_feature_name(enum osmo_bts_features feature) { return get_value_string(osmo_bts_features_descs, feature); } + +const struct value_string osmo_bts_features_names[] = { + { BTS_FEAT_HSCSD, "HSCSD" }, + { BTS_FEAT_GPRS, "GPRS" }, + { BTS_FEAT_EGPRS, "EGPRS" }, + { BTS_FEAT_ECSD, "ECSD" }, + { BTS_FEAT_HOPPING, "HOPPING" }, + { BTS_FEAT_MULTI_TSC, "MULTI_TSC" }, + { BTS_FEAT_OML_ALERTS, "OML_ALERTS" }, + { BTS_FEAT_AGCH_PCH_PROP, "AGCH_PCH_PROP" }, + { BTS_FEAT_CBCH, "CBCH" }, + { BTS_FEAT_SPEECH_F_V1, "SPEECH_F_V1" }, + { BTS_FEAT_SPEECH_H_V1, "SPEECH_H_V1" }, + { BTS_FEAT_SPEECH_F_EFR, "SPEECH_F_EFR" }, + { BTS_FEAT_SPEECH_F_AMR, "SPEECH_F_AMR" }, + { BTS_FEAT_SPEECH_H_AMR, "SPEECH_H_AMR" }, + { BTS_FEAT_ETWS_PN, "ETWS_PN" }, + { BTS_FEAT_PAGING_COORDINATION, "PAGING_COORDINATION" }, + { BTS_FEAT_IPV6_NSVC, "IPV6_NSVC" }, + { BTS_FEAT_ACCH_REP, "ACCH_REP" }, + { BTS_FEAT_CCN, "CCN" }, + { BTS_FEAT_VAMOS, "VAMOS" }, + {} +}; diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 0ea0678..7b2c18f 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -396,6 +396,7 @@ gsm48_decode_lai2; osmo_bts_features_descs; osmo_bts_feature_name; +osmo_bts_features_names; osmo_plmn_to_bcd; osmo_plmn_from_bcd; osmo_mcc_name; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I699cd27512887d64d824be680303e70fff3677c1 Gerrit-Change-Number: 23587 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 9 16:13:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 16:13:08 +0000 Subject: Change in pysim[master]: pySim-shell: be sure that startup script file exists In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23680 ) Change subject: pySim-shell: be sure that startup script file exists ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4ff2226c8852727aa23357aa54d1e2d480bfaf2d Gerrit-Change-Number: 23680 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 09 Apr 2021 16: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 Fri Apr 9 16:13:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 9 Apr 2021 16:13:10 +0000 Subject: Change in pysim[master]: pySim-shell: be sure that startup script file exists In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23680 ) Change subject: pySim-shell: be sure that startup script file exists ...................................................................... pySim-shell: be sure that startup script file exists When a startup script file is specified that does not exists pySim-shell skips the script and starts normally. This is dangerous because if pySim-shell is called by a shellscript with a nonexisting script file the shellscript may hang forever because there is no script that exists pySim-shell again Change-Id: I4ff2226c8852727aa23357aa54d1e2d480bfaf2d Related: OS#4963 --- M pySim-shell.py 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index f1060de..3059f3f 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -450,6 +450,12 @@ rs.mf.add_file(DF_TELECOM()) rs.mf.add_file(DF_GSM()) + # If a script file is specified, be sure that it actually exists + if opts.script: + if not os.access(opts.script, os.R_OK): + print("Invalid script file!") + sys.exit(2) + app = PysimApp(card, rs, opts.script) rs.select('MF', app) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4ff2226c8852727aa23357aa54d1e2d480bfaf2d Gerrit-Change-Number: 23680 Gerrit-PatchSet: 2 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 Fri Apr 9 17:49:23 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 9 Apr 2021 17:49:23 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/21118 ) Change subject: Configure E1 pcap file per line ...................................................................... Patch Set 6: Thanks, I will attend to this API breakage.. ASAP.. ;-/ -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 6 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 09 Apr 2021 17:49:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 9 19:20:12 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 9 Apr 2021 19:20:12 +0000 Subject: Change in pysim[master]: pySim-shell: tree/export: catch errors during DF selection References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23686 ) Change subject: pySim-shell: tree/export: catch errors during DF selection ...................................................................... pySim-shell: tree/export: catch errors during DF selection When a DF is selected, then the method walk() does not catch the related execption, which causes the command to stop immediately. Lets also catch those exceptions and generate appropriate error messages during export. Change-Id: I24ccf64965e7b0756c3db77eb2084b22c357a570 Related: OS#4963 --- M pySim-shell.py 1 file changed, 31 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/86/23686/1 diff --git a/pySim-shell.py b/pySim-shell.py index 3059f3f..29138cc 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -176,10 +176,26 @@ output_str += " " + str(files[f].fid) output_str += " " + str(files[f].desc) self._cmd.poutput(output_str) + if isinstance(files[f], CardDF): - fcp_dec = self._cmd.rs.select(f, self._cmd) - self.walk(indent + 1, action, context) - fcp_dec = self._cmd.rs.select("..", self._cmd) + skip_df=False + try: + fcp_dec = self._cmd.rs.select(f, self._cmd) + except Exception as e: + skip_df=True + df = self._cmd.rs.selected_file + df_path_list = df.fully_qualified_path(True) + df_skip_reason_str = '/'.join(df_path_list) + "/" + str(f) + ", " + str(e) + if context: + context['DF_SKIP'] += 1 + context['DF_SKIP_REASON'].append(df_skip_reason_str) + + # If the DF was skipped, we never have entered the directory + # below, so we must not move up. + if skip_df == False: + self.walk(indent + 1, action, context) + fcp_dec = self._cmd.rs.select("..", self._cmd) + elif action: df_before_action = self._cmd.rs.selected_file action(f, context) @@ -251,7 +267,7 @@ @cmd2.with_argparser(export_parser) def do_export(self, opts): """Export files to script that can be imported back later""" - context = {'ERR':0, 'COUNT':0, 'BAD':[]} + context = {'ERR':0, 'COUNT':0, 'BAD':[], 'DF_SKIP':0, 'DF_SKIP_REASON':[]} if opts.filename: self.export(opts.filename, context) else: @@ -260,8 +276,17 @@ self._cmd.poutput("# bad files: %u" % context['ERR']) for b in context['BAD']: self._cmd.poutput("# " + b) - if context['ERR']: - raise RuntimeError("unable to export %i file(s)" % context['ERR']) + + self._cmd.poutput("# skipped dedicated files(s): %u" % context['DF_SKIP']) + for b in context['DF_SKIP_REASON']: + self._cmd.poutput("# " + b) + + if context['ERR'] and context['DF_SKIP']: + raise RuntimeError("unable to export %i elementry file(s) and %i dedicated file(s)" % (context['ERR'], context['DF_SKIP'])) + elif context['ERR']: + raise RuntimeError("unable to export %i elementry file(s)" % context['ERR']) + elif context['DF_SKIP']: + raise RuntimeError("unable to export %i dedicated files(s)" % context['ERR']) @with_default_category('ISO7816 Commands') -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I24ccf64965e7b0756c3db77eb2084b22c357a570 Gerrit-Change-Number: 23686 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 9 20:02:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 9 Apr 2021 20:02:54 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: generalze description of the 'RFU' ('PAD') field References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 ) Change subject: TRXD: generalze description of the 'RFU' ('PAD') field ...................................................................... TRXD: generalze description of the 'RFU' ('PAD') field This field will also appear in TRXDv2 packet diagrams, in several places. Let's rename it to 'RFU', because it's actually something that we intend to use in the future, rather than just padding. Change-Id: I9ac9d387325627d18811fae1d0d7930b69f08129 Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 8 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/87/23687/1 diff --git a/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc index d1aa566..f648da4 100644 --- a/common/chapters/trx_if.adoc +++ b/common/chapters/trx_if.adoc @@ -401,7 +401,7 @@ node_height = 40 0-3: VER(0) - 4: RES + 4: RFU 5-7: TN 8-39: FN 40-47: RSSI @@ -419,7 +419,7 @@ node_height = 40 0-3: VER(1) - 4: RES + 4: RFU 5-7: TN 8-39: FN 40-47: RSSI @@ -438,7 +438,7 @@ node_height = 40 0-3: VER(1) - 4: RES + 4: RFU 5-7: TN 8-39: FN 40-47: RSSI @@ -454,9 +454,8 @@ TN: 3 bits:: Timeslot number. -RES: 1 bit:: -Reserved, shall be 0. It can be used in the future to extend the TDMA TN range -to (0..15), in case anybody would need to transfer UMTS bursts. +RFU: variable bit-length:: +Reserved for Future Use, all bits shall be set to low (`0`). FN: 32 bits (4 bytes):: GSM frame number, big endian. @@ -565,7 +564,7 @@ node_height = 40 0-3: VER - 4: RES + 4: RFU 5-7: TN 8-39: FN 40-47: PWR @@ -579,9 +578,8 @@ TN: 3 bits:: Timeslot number. -RES: 1 bit:: -Reserved, shall be 0. It can be used in the future to extend the TDMA TN range -to (0..15), in case anybody would need to transfer UMTS bursts. +RFU: variable bit-length:: +Reserved for Future Use, all bits shall be set to low (`0`). FN: 32 bits (4 bytes):: GSM frame number, big endian. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 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: I9ac9d387325627d18811fae1d0d7930b69f08129 Gerrit-Change-Number: 23687 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 Apr 9 20:02:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 9 Apr 2021 20:02:54 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: clarify modulation specific length of Soft-/Hard-bits References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23688 ) Change subject: TRXD: clarify modulation specific length of Soft-/Hard-bits ...................................................................... TRXD: clarify modulation specific length of Soft-/Hard-bits Change-Id: Icd807810060372c8f27d81f8a825ea9a5f384c1c Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 19 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/88/23688/1 diff --git a/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc index f648da4..c6e92ac 100644 --- a/common/chapters/trx_if.adoc +++ b/common/chapters/trx_if.adoc @@ -476,7 +476,7 @@ training sequence is compared to the actual training sequence and the result expressed in centiBels. -Soft-bits: 148 bytes for GSM, 444 bytes for EDGE:: +Soft-bits: 148 x N bytes (variable length defined by modulation type):: Contains the uplink burst. Unlike the downlink bursts, the uplink bursts are designated using the soft-bits notation, so the receiver can indicate its assurance from 0 to -127 that a given bit is 1, and from 0 to +127 that a given @@ -524,23 +524,23 @@ .Modulation and TS set number ---- -+-----------------+---------------------------------------+ -| 7 6 5 4 3 2 1 0 | bit numbers (value range) | -+-----------------+---------------------------------------+ -| . 0 0 X X . . . | GMSK, 4 TS sets (0..3) | -+-----------------+---------------------------------------+ -| . 0 1 0 X . . . | 8-PSK, 2 TS sets (0..1) | -+-----------------+---------------------------------------+ -| . 0 1 1 0 . . . | GMSK, Access Burst (see note) | -+-----------------+---------------------------------------+ -| . 0 1 1 1 . . . | RFU (Reserved for Future Use) | -+-----------------+---------------------------------------+ -| . 1 0 0 X . . . | 16QAM, 2 TS sets (0..1) | -+-----------------+---------------------------------------+ -| . 1 0 1 X . . . | 32QAM, 2 TS sets (0..1) | -+-----------------+---------------------------------------+ -| . 1 1 X X . . . | AQPSK (Downlink), 4 TS sets (0..3) | -+-----------------+---------------------------------------+ ++-----------------+---------------------------------------+--------------+ +| 7 6 5 4 3 2 1 0 | Description | Burst length | ++-----------------+---------------------------------------+--------------+ +| . 0 0 X X . . . | GMSK, 4 TS sets (0..3) | 148 x 1 | ++-----------------+---------------------------------------+--------------+ +| . 0 1 0 X . . . | 8-PSK, 2 TS sets (0..1) | 148 x 3 | ++-----------------+---------------------------------------+--------------+ +| . 0 1 1 0 . . . | GMSK, Access Burst (see note) | 148 x 1 | ++-----------------+---------------------------------------+--------------+ +| . 0 1 1 1 . . . | RFU (Reserved for Future Use) | ------- | ++-----------------+---------------------------------------+--------------+ +| . 1 0 0 X . . . | 16QAM, 2 TS sets (0..1) | 148 x 4 | ++-----------------+---------------------------------------+--------------+ +| . 1 0 1 X . . . | 32QAM, 2 TS sets (0..1) | 148 x 5 | ++-----------------+---------------------------------------+--------------+ +| . 1 1 X X . . . | AQPSK (Downlink), 4 TS sets (0..3) | 148 x 2 | ++-----------------+---------------------------------------+--------------+ ---- NOTE: A radio block on PDCH is carried by the sequence of four Normal Bursts. @@ -589,6 +589,6 @@ in dB. The absolute value is set on the control interface, so the resulting power is calculated as follows: `full_scale - (absolute_red + relative_red)`. -Hard-bits: 148 bytes for GSM, 444 bytes for EDGE:: +Hard-bits: 148 x N bytes (variable length defined by modulation type):: Contains the downlink burst. Each hard-bit (1 or 0) of the burst is represented using one byte (0x01 or 0x00 respectively). -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23688 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: Icd807810060372c8f27d81f8a825ea9a5f384c1c Gerrit-Change-Number: 23688 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 Apr 9 20:06:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 9 Apr 2021 20:06:26 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: clarify modulation specific length of Soft-/Hard-bits 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/+/23688 to look at the new patch set (#2). Change subject: TRXD: clarify modulation specific length of Soft-/Hard-bits ...................................................................... TRXD: clarify modulation specific length of Soft-/Hard-bits Change-Id: Icd807810060372c8f27d81f8a825ea9a5f384c1c Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 19 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/88/23688/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23688 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: Icd807810060372c8f27d81f8a825ea9a5f384c1c Gerrit-Change-Number: 23688 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 Fri Apr 9 20:07:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 9 Apr 2021 20:07:31 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 09 Apr 2021 20:07:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 9 20:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 9 Apr 2021 20:24:00 +0000 Subject: Change in pysim[master]: pySim-shell: allow generic USIM/ISIM cards to be used References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23689 ) Change subject: pySim-shell: allow generic USIM/ISIM cards to be used ...................................................................... pySim-shell: allow generic USIM/ISIM cards to be used At the moment the card is automatically detected. This means that pySim-shell will only support the specific types of simcards we support in pySim-prog. However pySim-shell is more generic and would in theory work with any SIM/USIM/ISIM card as long as only the 3GPP specified features are used. Lets add a generic card that acts as a dummy in case we want to operate a generic simcard. Change-Id: Ie1fa42400d236928659a7e5d34225487161d4b83 Related: OS#4963 --- M pySim-shell.py M pySim/cards.py 2 files changed, 34 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/89/23689/1 diff --git a/pySim-shell.py b/pySim-shell.py index 29138cc..e7e3dc5 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -38,7 +38,7 @@ from pySim.exceptions import * from pySim.commands import SimCardCommands from pySim.transport import init_reader -from pySim.cards import card_detect, Card +from pySim.cards import card_detect, Card, GenericUsimIsim from pySim.utils import h2b, swap_nibbles, rpad, h2s from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex from pySim.card_handler import card_handler @@ -431,6 +431,9 @@ parser.add_option("-A", "--pin-adm-hex", dest="pin_adm_hex", help="ADM PIN used for provisioning, as hex string (16 characters long", ) + parser.add_option("-U", "--generic-usim", dest="generic_usim", default=False, action='store_true', + help="Use a generic ISIM/USIM class instead of a specific (autodetected) card class", + ) (options, args) = parser.parse_args() @@ -458,10 +461,13 @@ card_handler = card_handler(sl) - card = card_detect("auto", scc) - if card is None: - print("No card detected!") - sys.exit(2) + if opts.generic_usim: + card = GenericUsimIsim(scc) + else: + card = card_detect("auto", scc) + if card is None: + print("No card detected!") + sys.exit(2) profile = CardProfileUICC() profile.add_application(CardApplicationUSIM) diff --git a/pySim/cards.py b/pySim/cards.py index 8ac80bf..d193f08 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1448,6 +1448,29 @@ return +class GenericUsimIsim(UsimCard, IsimCard): + """ + GenericUsimIsim + """ + + name = 'GenericUsimIsim' + + def __init__(self, ssc): + super(GenericUsimIsim, self).__init__(ssc) + self._scc.cla_byte = "00" + self._scc.sel_ctrl = "0004" #request an FCP + + @classmethod + def autodetect(kls, scc): + return kls(scc) + + def verify_adm(self, key): + return "9000" + + def program(self, p): + return + + # In order for autodetection ... _cards_classes = [ FakeMagicSim, SuperSim, MagicSim, GrcardSim, SysmoSIMgr1, SysmoSIMgr2, SysmoUSIMgr1, SysmoUSIMSJS1, -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie1fa42400d236928659a7e5d34225487161d4b83 Gerrit-Change-Number: 23689 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 9 20:43:13 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 9 Apr 2021 20:43:13 +0000 Subject: Change in pysim[master]: pySim-shell: allow generic USIM/ISIM cards to be used In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23689 ) Change subject: pySim-shell: allow generic USIM/ISIM cards to be used ...................................................................... Patch Set 1: This may be a bit hackish, but comments are welcome. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie1fa42400d236928659a7e5d34225487161d4b83 Gerrit-Change-Number: 23689 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 09 Apr 2021 20:43: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 Fri Apr 9 20:45:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 9 Apr 2021 20:45:22 +0000 Subject: Change in pysim[master]: pySim/filesystem.py: fix compatibility with Python 3.5 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23690 ) Change subject: pySim/filesystem.py: fix compatibility with Python 3.5 ...................................................................... pySim/filesystem.py: fix compatibility with Python 3.5 Change-Id: Ia4021551bcd28e6020958964f6f4e9b6dc989d94 Related: OS#5111 --- M pySim/filesystem.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/90/23690/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index e97fbf6..45b3932 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -65,7 +65,7 @@ self.parent = parent if self.parent and self.parent != self and self.fid: self.parent.add_file(self) - self.shell_commands: List[CommandSet] = [] + self.shell_commands = [] # type: List[CommandSet] # Note: the basic properties (fid, name, ect.) are verified when # the file is attached to a parent file. See method add_file() in -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia4021551bcd28e6020958964f6f4e9b6dc989d94 Gerrit-Change-Number: 23690 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 Apr 9 20:46:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 9 Apr 2021 20:46:34 +0000 Subject: Change in pysim[master]: pySim/filesystem.py: fix compatibility with Python 3.5 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/+/23690 to look at the new patch set (#2). Change subject: pySim/filesystem.py: fix compatibility with Python 3.5 ...................................................................... pySim/filesystem.py: fix compatibility with Python 3.5 Change-Id: Ia4021551bcd28e6020958964f6f4e9b6dc989d94 Related: OS#5111 --- M pySim/filesystem.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/90/23690/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia4021551bcd28e6020958964f6f4e9b6dc989d94 Gerrit-Change-Number: 23690 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 Fri Apr 9 21:58:44 2021 From: gerrit-no-reply at lists.osmocom.org (roh) Date: Fri, 9 Apr 2021 21:58:44 +0000 Subject: Change in osmo-pcap[master]: add --vty-ref-* support in osmo-pcap-client and -server References: Message-ID: roh has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23691 ) Change subject: add --vty-ref-* support in osmo-pcap-client and -server ...................................................................... add --vty-ref-* support in osmo-pcap-client and -server Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb --- M .gitignore M configure.ac M src/osmo_client_main.c M src/osmo_server_main.c 4 files changed, 138 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/91/23691/1 diff --git a/.gitignore b/.gitignore index dd48c7d..19c1a47 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,16 @@ tests/testsuite.log contrib/osmo-pcap.spec + +# manuals +doc/manuals/*.html +doc/manuals/*.svg +doc/manuals/*.pdf +doc/manuals/*__*.png +doc/manuals/*.check +doc/manuals/generated/ +doc/manuals/osmo-pcap-usermanual.xml +doc/manuals/common +doc/manuals/build +doc/manuals/vty/osmo-pcap_vty_reference.xml + diff --git a/configure.ac b/configure.ac index 8ec9c88..90dbc3d 100644 --- a/configure.ac +++ b/configure.ac @@ -5,6 +5,46 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +AC_ARG_ENABLE(manuals, + [AS_HELP_STRING( + [--enable-manuals], + [Generate manual PDFs [default=no]], + )], + [osmo_ac_build_manuals=$enableval], [osmo_ac_build_manuals="no"]) +AM_CONDITIONAL([BUILD_MANUALS], [test x"$osmo_ac_build_manuals" = x"yes"]) +AC_ARG_VAR(OSMO_GSM_MANUALS_DIR, [path to common osmo-gsm-manuals files, overriding pkg-config and "../osmo-gsm-manuals" + fallback]) +if test x"$osmo_ac_build_manuals" = x"yes" +then + # Find OSMO_GSM_MANUALS_DIR (env, pkg-conf, fallback) + if test -n "$OSMO_GSM_MANUALS_DIR"; then + echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from env)" + else + OSMO_GSM_MANUALS_DIR="$($PKG_CONFIG osmo-gsm-manuals --variable=osmogsmmanualsdir 2>/dev/null)" + if test -n "$OSMO_GSM_MANUALS_DIR"; then + echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from pkg-conf)" + else + OSMO_GSM_MANUALS_DIR="../osmo-gsm-manuals" + echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (fallback)" + fi + fi + if ! test -d "$OSMO_GSM_MANUALS_DIR"; then + AC_MSG_ERROR("OSMO_GSM_MANUALS_DIR does not exist! Install osmo-gsm-manuals or set OSMO_GSM_MANUALS_DIR.") + fi + + # Find and run check-depends + CHECK_DEPENDS="$OSMO_GSM_MANUALS_DIR/check-depends.sh" + if ! test -x "$CHECK_DEPENDS"; then + CHECK_DEPENDS="osmo-gsm-manuals-check-depends" + fi + if ! $CHECK_DEPENDS; then + AC_MSG_ERROR("missing dependencies for --enable-manuals") + fi + + # Put in Makefile with absolute path + OSMO_GSM_MANUALS_DIR="$(realpath "$OSMO_GSM_MANUALS_DIR")" + AC_SUBST([OSMO_GSM_MANUALS_DIR]) +fi CFLAGS="$CFLAGS -std=gnu11" @@ -61,6 +101,8 @@ CPPFLAGS="$CPPFLAGS $WERROR_FLAGS" fi + + # https://www.freedesktop.org/software/systemd/man/daemon.html AC_ARG_WITH([systemdsystemunitdir], [AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],, @@ -150,5 +192,6 @@ contrib/osmo-pcap.spec doc/Makefile doc/examples/Makefile + doc/manuals/Makefile tests/Makefile Makefile) diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index c7d68d4..b0727d6 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -98,20 +98,51 @@ printf(" -T --timestamp. Print a timestamp in the debug output.\n"); printf(" -e --log-level number. Set a global loglevel.\n"); printf(" -c --config-file filename The config file to use.\n"); + + printf("\nVTY reference generation:\n"); + printf(" --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); +} + +static void handle_long_options(const char *prog_name, const int long_option) +{ + static int vty_ref_mode = VTY_REF_GEN_MODE_DEFAULT; + switch (long_option) { + case 1: + vty_ref_mode = get_string_value(vty_ref_gen_mode_names, optarg); + if (vty_ref_mode < 0) { + fprintf(stderr, "%s: Unknown VTY reference generation " + "mode '%s'\n", prog_name, optarg); + exit(2); + } + break; + case 2: + fprintf(stderr, "Generating the VTY reference in mode '%s' (%s)\n", + get_value_string(vty_ref_gen_mode_names, vty_ref_mode), + get_value_string(vty_ref_gen_mode_desc, vty_ref_mode)); + vty_dump_xml_ref_mode(stdout, (enum vty_ref_gen_mode) vty_ref_mode); + exit(0); + default: + fprintf(stderr, "%s: error parsing cmdline options\n", prog_name); + exit(2); + } } static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; + static int long_option = 0; static struct option long_options[] = { - {"help", 0, 0, 'h'}, - {"daemonize", 0, 0, 'D'}, - {"debug", 1, 0, 'd'}, - {"disable-color", 0, 0, 's'}, - {"timestamp", 0, 0, 'T'}, - {"log-level", 1, 0, 'e'}, - {"config-file", 1, 0, 'c'}, + { "help", 0, 0, 'h'}, + { "daemonize", 0, 0, 'D'}, + { "debug", 1, 0, 'd'}, + { "disable-color", 0, 0, 's'}, + { "timestamp", 0, 0, 'T'}, + { "log-level", 1, 0, 'e'}, + { "config-file", 1, 0, 'c'}, + { "vty-ref-mode", 1, &long_option, 1}, + { "vty-ref-xml", 0, &long_option, 2}, {0, 0, 0, 0} }; @@ -125,6 +156,9 @@ print_usage(); print_help(); exit(0); + case 0: + handle_long_options(argv[0], long_option); + break; case 'D': daemonize = 1; break; diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index 51441a7..ad6260c 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -108,20 +108,51 @@ printf(" -T --timestamp. Print a timestamp in the debug output.\n"); printf(" -e --log-level number. Set a global loglevel.\n"); printf(" -c --config-file filename The config file to use.\n"); + + printf("\nVTY reference generation:\n"); + printf(" --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); +} + +static void handle_long_options(const char *prog_name, const int long_option) +{ + static int vty_ref_mode = VTY_REF_GEN_MODE_DEFAULT; + switch (long_option) { + case 1: + vty_ref_mode = get_string_value(vty_ref_gen_mode_names, optarg); + if (vty_ref_mode < 0) { + fprintf(stderr, "%s: Unknown VTY reference generation " + "mode '%s'\n", prog_name, optarg); + exit(2); + } + break; + case 2: + fprintf(stderr, "Generating the VTY reference in mode '%s' (%s)\n", + get_value_string(vty_ref_gen_mode_names, vty_ref_mode), + get_value_string(vty_ref_gen_mode_desc, vty_ref_mode)); + vty_dump_xml_ref_mode(stdout, (enum vty_ref_gen_mode) vty_ref_mode); + exit(0); + default: + fprintf(stderr, "%s: error parsing cmdline options\n", prog_name); + exit(2); + } } static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; + static int long_option = 0; static struct option long_options[] = { - {"help", 0, 0, 'h'}, - {"daemonize", 0, 0, 'D'}, - {"debug", 1, 0, 'd'}, - {"disable-color", 0, 0, 's'}, - {"timestamp", 0, 0, 'T'}, - {"log-level", 1, 0, 'e'}, - {"config-file", 1, 0, 'c'}, + { "help", 0, 0, 'h'}, + { "daemonize", 0, 0, 'D'}, + { "debug", 1, 0, 'd'}, + { "disable-color", 0, 0, 's'}, + { "timestamp", 0, 0, 'T'}, + { "log-level", 1, 0, 'e'}, + { "config-file", 1, 0, 'c'}, + { "vty-ref-mode", 1, &long_option, 1}, + { "vty-ref-xml", 0, &long_option, 2}, {0, 0, 0, 0} }; @@ -135,6 +166,9 @@ print_usage(); print_help(); exit(0); + case 0: + handle_long_options(argv[0], long_option); + break; case 'D': daemonize = 1; break; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Gerrit-Change-Number: 23691 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 Apr 9 22:46:11 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 9 Apr 2021 22:46:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 ) Change subject: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655/1/pcu/PCU_Tests_SNS.ttcn File pcu/PCU_Tests_SNS.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655/1/pcu/PCU_Tests_SNS.ttcn at 228 PS1, Line 228: f > you could do this probably more elegant (and less dependent on VTY format changes) by using the CTRL [?] I see. It would be much nicer with ctrl. But I would argue we can migrate it once this test becomes unstable. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iac6c8966aafd1cb2fab515de091e94607eb7c040 Gerrit-Change-Number: 23655 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 09 Apr 2021 22:46:11 +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 Apr 10 01:37:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 10 Apr 2021 01:37:49 +0000 Subject: Change in osmo-gsm-manuals[master]: tests/Makefile.am: pring the contents of test-usermanual.adoc References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23692 ) Change subject: tests/Makefile.am: pring the contents of test-usermanual.adoc ...................................................................... tests/Makefile.am: pring the contents of test-usermanual.adoc Change-Id: I2d2d74bc210366439debb0a88e767708ec235d6b --- M tests/Makefile.am 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/92/23692/1 diff --git a/tests/Makefile.am b/tests/Makefile.am index 641b35c..f28255b 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -25,6 +25,7 @@ for chapter in $(COMMON_CHAPTERS); do \ echo "include::$${chapter}[]" >> $@; \ done; + cat $@ CLEAN_FILES = $(ASCIIDOC) include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23692 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: I2d2d74bc210366439debb0a88e767708ec235d6b Gerrit-Change-Number: 23692 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 Apr 10 02:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 10 Apr 2021 02:47:55 +0000 Subject: Change in osmo-gsm-manuals[master]: fix tests/Makefile.am: exclude file 'mgcp_extension_osmux.adoc' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23693 ) Change subject: fix tests/Makefile.am: exclude file 'mgcp_extension_osmux.adoc' ...................................................................... fix tests/Makefile.am: exclude file 'mgcp_extension_osmux.adoc' This file is included by 'osmux.adoc', so we end up including it twice in 'test-usermanual.adoc'. This makes xsltproc complain: /build/tests/test-usermanual.xml:643: element section: validity error : ID mgcp-extension-osmux already defined and sometimes causes sporadic build failures. Exclude it. Change-Id: I00efafc822f46126b59d20e86bb07ec991768c28 Related: OS#5112 --- M tests/Makefile.am 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/93/23693/1 diff --git a/tests/Makefile.am b/tests/Makefile.am index 641b35c..1be6308 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -12,7 +12,9 @@ # Generate adoc file that includes all chapters (OS#4183: glossary.adoc must be the last file) ASCIIDOC = test-usermanual.adoc ASCIIDOC_DEPS = -COMMON_CHAPTERS = $(shell find $(OSMO_GSM_MANUALS_DIR)/common/chapters -name '*.adoc' | grep -v glossary\.adoc) \ +COMMON_CHAPTERS = $(shell find $(OSMO_GSM_MANUALS_DIR)/common/chapters -name '*.adoc' \ + ! -name glossary.adoc \ + ! -name mgcp_extension_osmux.adoc) \ $(OSMO_GSM_MANUALS_DIR)/common/chapters/glossary.adoc $(ASCIIDOC): $(COMMON_CHAPTERS) echo ":gfdl-enabled:" > $@ -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23693 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: I00efafc822f46126b59d20e86bb07ec991768c28 Gerrit-Change-Number: 23693 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 Apr 10 02:58:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 10 Apr 2021 02:58:14 +0000 Subject: Change in osmo-gsm-manuals[master]: tests/Makefile.am: pring the contents of test-usermanual.adoc In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23692 ) Change subject: tests/Makefile.am: pring the contents of test-usermanual.adoc ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23692 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: I2d2d74bc210366439debb0a88e767708ec235d6b Gerrit-Change-Number: 23692 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 03:11:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 10 Apr 2021 03:11:33 +0000 Subject: Change in osmo-gsm-manuals[master]: build/Makefile.asciidoc.inc: detect more errors/warnings References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23694 ) Change subject: build/Makefile.asciidoc.inc: detect more errors/warnings ...................................................................... build/Makefile.asciidoc.inc: detect more errors/warnings Change-Id: I91f48705c156755c31835aeb524c827b0dc9d100 Related: OS#5112 --- M build/Makefile.asciidoc.inc 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/94/23694/1 diff --git a/build/Makefile.asciidoc.inc b/build/Makefile.asciidoc.inc index 1b7375e..e2016a2 100644 --- a/build/Makefile.asciidoc.inc +++ b/build/Makefile.asciidoc.inc @@ -100,4 +100,8 @@ touch $(notdir $@) # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). - @grep WARNING $(notdir $@) && exit 1 || exit 0 + @grep \ + -e "Error: no ID for constraint linkend:" \ + -e "XRef to nonexistent id:" \ + -e "WARNING" \ + $(notdir $@) && exit 1 || exit 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23694 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: I91f48705c156755c31835aeb524c827b0dc9d100 Gerrit-Change-Number: 23694 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 Apr 10 03:31:56 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 10 Apr 2021 03:31:56 +0000 Subject: Change in osmo-gsm-manuals[master]: fix missing and/or non-existent linked references References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23695 ) Change subject: fix missing and/or non-existent linked references ...................................................................... fix missing and/or non-existent linked references Change-Id: I5fe6263ac666e41cbe34407f09e9023aafa57d2c --- M common/chapters/bibliography.adoc M common/chapters/control_if.adoc M common/chapters/rf.adoc 3 files changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/95/23695/1 diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc index e447325..67f0cb9 100644 --- a/common/chapters/bibliography.adoc +++ b/common/chapters/bibliography.adoc @@ -81,6 +81,8 @@ https://ftp.osmocom.org/docs/latest/osmotrx-lms-vty-reference.pdf https://ftp.osmocom.org/docs/latest/osmotrx-ipc-vty-reference.pdf https://ftp.osmocom.org/docs/latest/osmotrx-usrp1-vty-reference.pdf +- [[[3gpp-ts-23-041]]] 3GPP TS 23.041: Technical realization of + Cell Broadcast Service (CBS) - [[[3gpp-ts-23-048]]] 3GPP TS 23.048: Security mechanisms for the (U)SIM application toolkit; Stage 2 https://www.3gpp.org/DynaReport/23048.htm @@ -160,7 +162,7 @@ system for telecommunication application providers https://www.etsi.org/deliver/etsi_ts/101200_101299/101220/12.00.00_60/ts_101220v120000p.pdf -- [[[ietf-rfc768]]] IETF RFC 768: Internet Protocol +- [[[ietf-rfc791]]] IETF RFC 791: Internet Protocol https://tools.ietf.org/html/rfc791 - [[[ietf-rfc793]]] IETF RFC 793: Transmission Control Protocol https://tools.ietf.org/html/rfc793 diff --git a/common/chapters/control_if.adoc b/common/chapters/control_if.adoc index 67ac045..e64f661 100644 --- a/common/chapters/control_if.adoc +++ b/common/chapters/control_if.adoc @@ -188,7 +188,7 @@ for a given Osmocom program and output it in csv format. This can be used to periodically (using systemd timer for example) retrieve data to build KPI and evaluate how it changes over time. -Internally it uses "+rate_ctr.*+" variable described in <> to get the list of counter groups +Internally it uses "+rate_ctr.*+" variable described in <> to get the list of counter groups and than request all the counters in each group. Applications interested in individual metrics can request it directly using `rate_ctr2csv.py` as an example. diff --git a/common/chapters/rf.adoc b/common/chapters/rf.adoc index f3f6dd9..637fb5e 100644 --- a/common/chapters/rf.adoc +++ b/common/chapters/rf.adoc @@ -45,7 +45,7 @@ . determine the frequency at which you will use the cable, as determined by the GSM frequency band of your BTS. Make sure you use the highest frequency that might occur, which is typically the upper end of the - transmit band, see <> + transmit band, see <> . determine the attenuation of your cable per 100m at the given frequency (check the cable data sheet) . scale that value by the actual length of the cable -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23695 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: I5fe6263ac666e41cbe34407f09e9023aafa57d2c Gerrit-Change-Number: 23695 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 Apr 10 07:27:13 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Sat, 10 Apr 2021 07:27:13 +0000 Subject: Change in pysim[master]: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23632 to look at the new patch set (#9). Change subject: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... Add option to set UE operation mode in EF_AD (Administrative Data) Use ``--opmode=OPMODE`` in cmdline mode or column ``OPMODE`` in csv mode to specify OPMODE as listed below. Details: The ``EF_AD`` field contains administrative data (AD). It consists of four bytes ``B1``, ``B2``, ``B3``, ``B4``, and optionally further bytes for future use. Previous implementation only sets the MNC field appropriately (located in `B4`) and sets all other bits/bytes to 0. However, `B1` also defines the *UE operation mode* (see below). For type approval operations, such as testing with a test uSIM, this value could be set to `0x80` rather than `0x00`(= normal operation). This may unlock some UE capabilities that are restricted in normal operation mode. Excerpt from [ETSI TS 131 102, 4.2.18](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` B1 - UE operation mode: Coding: Initial value - '00' normal operation. - '80' type approval operations. - '01' normal operation + specific facilities. - '81' type approval operations + specific facilities. - '02' maintenance (off line). - '04' cell test operation. B2 - Additional information: Coding: Reserved for future use B3 - Additional information: Coding: - B3.b1: OFM setting (Ciphering Indicator) - B3.others: Reserved for future use B4 - Length of MNC in the IMSI: Coding: - B4.b4..B4.b1: length: '0010' (= 2) or '0011' (=3) - B4.others: Reserved for future use ``` **Legend:** Byte X, bit Y: BX.bY Further reading: https://nickvsnetworking.com/usim-basics/ Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 --- M pySim-prog.py M pySim/cards.py 2 files changed, 71 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/32/23632/9 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 9 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 07:35:05 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Sat, 10 Apr 2021 07:35:05 +0000 Subject: Change in pysim[master]: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: Falkenber9 has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... Patch Set 9: > Patch Set 8: Code-Review+1 > > > I fully agree going the more generic way. > > Nevertheless, I think it is useful to have that option in pySim-prog. > > We use pySim-prog to conveniently batch-(re)program the Sysmocom uSIMs (the green and black ones) according to configuration in CSV files. Thereby we add "NAME" for SPN and "OPMODE" in additional columns. > > It would be great to work out some strategy for such batch-reprogramming uses cases basd on the new pySim-shell / filesystem.py infrastructure. pySim-shell is of course highly scriptable. > > Particularly with https://gerrit.osmocom.org/c/pysim/+/23661 and its jsonpath support we can now have a very elegant way to modify only certain logical bits/fields in larger binary files. > > scripting pySim-shell from external scripts however doesn't currently have any kind of CSV import > or the capability to wait for another card, etc. > > If you have any ideas on how this could/should happen, you now have the chance ot shape the implementation. I haven't really done much planning that way yet. Unfortunately, currently I do not have time to contribute much on that topic. So I have to leave that open (for now). > > > I will rebase the current code for now. Shall we update to use your new code as well? > > I don't currently see how you would use the filesystem/pySim-shell code from pySim-prog. not sure what you meant? Just updated the patch to use the EF_AD class as used for pySim-shell. Packing, unpacking and updating is way more convenient with the provided methods - thanks for that! -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 9 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 07:35: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 Sat Apr 10 09:35:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:35:35 +0000 Subject: Change in pysim[master]: transport: Make all calls go through base class send_apdu_raw() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23696 ) Change subject: transport: Make all calls go through base class send_apdu_raw() ...................................................................... transport: Make all calls go through base class send_apdu_raw() This allows us to add APDU tracing at one central location in the code Change-Id: Id0593a2e6d846cc3151443f1022ae7ee030e6673 --- M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py 5 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/96/23696/1 diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index fb8f31d..923787b 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -68,7 +68,7 @@ data : string (in hex) of returned data (ex. "074F4EFFFF") sw : string (in hex) of status word (ex. "9000") """ - pass + return self._send_apdu_raw(pdu) def send_apdu(self, pdu): """Sends an APDU and auto fetch response data diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py index 467d5ee..3c223e6 100644 --- a/pySim/transport/calypso.py +++ b/pySim/transport/calypso.py @@ -115,7 +115,7 @@ def wait_for_card(self, timeout = None, newcardonly = False): pass # Nothing to do really ... - def send_apdu_raw(self, pdu): + def _send_apdu_raw(self, pdu): # Request FULL reset req_msg = L1CTLMessageSIM(h2b(pdu)) diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py index fccd388..f5a0f23 100644 --- a/pySim/transport/modem_atcmd.py +++ b/pySim/transport/modem_atcmd.py @@ -97,7 +97,7 @@ def wait_for_card(self, timeout=None, newcardonly=False): pass # Nothing to do really ... - def send_apdu_raw(self, pdu): + def _send_apdu_raw(self, pdu): # Prepare the command as described in 8.17 cmd = 'AT+CSIM=%d,\"%s\"' % (len(pdu), pdu) diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index f08f71a..2433e79 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -71,7 +71,7 @@ self.connect() return 1 - def send_apdu_raw(self, pdu): + def _send_apdu_raw(self, pdu): apdu = h2i(pdu) diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py index 6d39303..22788a9 100644 --- a/pySim/transport/serial.py +++ b/pySim/transport/serial.py @@ -180,7 +180,7 @@ def _rx_byte(self): return self._sl.read() - def send_apdu_raw(self, pdu): + def _send_apdu_raw(self, pdu): pdu = h2b(pdu) data_len = ord(pdu[4]) # P3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id0593a2e6d846cc3151443f1022ae7ee030e6673 Gerrit-Change-Number: 23696 Gerrit-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 Apr 10 09:35:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:35:36 +0000 Subject: Change in pysim[master]: transport: Pass arbitrary kwargs to base-class constructor References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23697 ) Change subject: transport: Pass arbitrary kwargs to base-class constructor ...................................................................... transport: Pass arbitrary kwargs to base-class constructor Change-Id: I3cd5ba87cf53409ea97196d5789ed28eef072c68 --- M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py 5 files changed, 15 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/97/23697/1 diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 923787b..c176f8a 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -28,7 +28,8 @@ class LinkBase(object): """Base class for link/transport to card.""" - sw_interpreter = None + def __init__(self, sw_interpreter=None): + self.sw_interpreter = sw_interpreter def set_sw_interpreter(self, interp): """Set an (optional) status word interpreter.""" @@ -112,7 +113,7 @@ raise SwMatchError(rv[1], sw.lower(), self.sw_interpreter) return rv -def init_reader(opts) -> Optional[LinkBase]: +def init_reader(opts, **kwargs) -> Optional[LinkBase]: """ Init card reader driver """ @@ -121,19 +122,19 @@ if opts.pcsc_dev is not None: print("Using PC/SC reader interface") from pySim.transport.pcsc import PcscSimLink - sl = PcscSimLink(opts.pcsc_dev) + sl = PcscSimLink(opts.pcsc_dev, **kwargs) elif opts.osmocon_sock is not None: print("Using Calypso-based (OsmocomBB) reader interface") from pySim.transport.calypso import CalypsoSimLink - sl = CalypsoSimLink(sock_path=opts.osmocon_sock) + sl = CalypsoSimLink(sock_path=opts.osmocon_sock, **kwargs) elif opts.modem_dev is not None: print("Using modem for Generic SIM Access (3GPP TS 27.007)") from pySim.transport.modem_atcmd import ModemATCommandLink - sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud) + sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud, **kwargs) else: # Serial reader is default print("Using serial reader interface") from pySim.transport.serial import SerialSimLink - sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate) + sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate, **kwargs) return sl except Exception as e: print("Card reader initialization failed with exception:\n" + str(e)) diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py index 3c223e6..b55a089 100644 --- a/pySim/transport/calypso.py +++ b/pySim/transport/calypso.py @@ -71,7 +71,8 @@ class CalypsoSimLink(LinkBase): """Transport Link for Calypso based phones.""" - def __init__(self, sock_path:str = "/tmp/osmocom_l2"): + def __init__(self, sock_path:str = "/tmp/osmocom_l2", **kwargs): + super().__init__(**kwargs) # Make sure that a given socket path exists if not os.path.exists(sock_path): raise ReaderError("There is no such ('%s') UNIX socket" % sock_path) diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py index f5a0f23..ecf463c 100644 --- a/pySim/transport/modem_atcmd.py +++ b/pySim/transport/modem_atcmd.py @@ -29,7 +29,8 @@ class ModemATCommandLink(LinkBase): """Transport Link for 3GPP TS 27.007 compliant modems.""" - def __init__(self, device:str='/dev/ttyUSB0', baudrate:int=115200): + def __init__(self, device:str='/dev/ttyUSB0', baudrate:int=115200, **kwargs): + super().__init__(**kwargs) self._sl = serial.Serial(device, baudrate, timeout=5) self._device = device self._atr = None diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index 2433e79..73a99e8 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -30,7 +30,8 @@ class PcscSimLink(LinkBase): """ pySim: PCSC reader transport link.""" - def __init__(self, reader_number:int=0): + def __init__(self, reader_number:int=0, **kwargs): + super().__init__(**kwargs) r = readers() self._reader = r[reader_number] self._con = self._reader.createConnection() diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py index 22788a9..4f2b28f 100644 --- a/pySim/transport/serial.py +++ b/pySim/transport/serial.py @@ -29,7 +29,8 @@ """ pySim: Transport Link for serial (RS232) based readers included with simcard""" def __init__(self, device:str='/dev/ttyUSB0', baudrate:int=9600, rst:str='-rts', - debug:bool=False): + debug:bool=False, **kwargs): + super().__init__(**kwargs) if not os.path.exists(device): raise ValueError("device file %s does not exist -- abort" % device) self._sl = serial.Serial( -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3cd5ba87cf53409ea97196d5789ed28eef072c68 Gerrit-Change-Number: 23697 Gerrit-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 Apr 10 09:35:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:35:36 +0000 Subject: Change in pysim[master]: shell: Add 'apdu_trace' settable parameter for hex-dumping APDUs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23698 ) Change subject: shell: Add 'apdu_trace' settable parameter for hex-dumping APDUs ...................................................................... shell: Add 'apdu_trace' settable parameter for hex-dumping APDUs Change-Id: I0c957c0b86473413f31e4bd8bc4e633fc1470222 --- M docs/shell.rst M pySim-shell.py M pySim/transport/__init__.py 3 files changed, 39 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/98/23698/1 diff --git a/docs/shell.rst b/docs/shell.rst index 3ea6c56..dab9f56 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -332,6 +332,11 @@ If enabled, full python back-traces will be displayed in case of exceptions +apdu_trace +~~~~~~~~~~ + +Boolean variable that determines if a hex-dump of the command + response APDU shall be printed. + numeric_path ~~~~~~~~~~~~ diff --git a/pySim-shell.py b/pySim-shell.py index 3059f3f..21d611b 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -37,7 +37,7 @@ from pySim.exceptions import * from pySim.commands import SimCardCommands -from pySim.transport import init_reader +from pySim.transport import init_reader, ApduTracer from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, h2s from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex @@ -74,6 +74,9 @@ self.update_prompt() self.json_pretty_print = True self.add_settable(cmd2.Settable('json_pretty_print', bool, 'Pretty-Print JSON output')) + self.apdu_trace = False + self.add_settable(cmd2.Settable('apdu_trace', bool, 'Trace and display APDUs exchanged with card', + onchange_cb=self._onchange_apdu_trace)) def poutput_json(self, data, force_no_pretty = False): """line cmd2.putput() but for a json serializable dict.""" @@ -89,6 +92,20 @@ def _onchange_conserve_write(self, param_name, old, new): self.rs.conserve_write = new + def _onchange_apdu_trace(self, param_name, old, new): + if new == True: + self.card._scc._tp.apdu_tracer = self.Cmd2ApduTracer(self) + else: + self.card._scc._tp.apdu_tracer = None + + class Cmd2ApduTracer(ApduTracer): + def __init__(self, cmd2_app): + self.cmd2 = app + + def trace_response(self, cmd, sw, resp): + self.cmd2.poutput("-> %s %s" % (cmd[:10], cmd[10:])) + self.cmd2.poutput("<- %s: %s" % (sw, resp)) + def update_prompt(self): path_list = self.rs.selected_file.fully_qualified_path(not self.numeric_path) self.prompt = 'pySIM-shell (%s)> ' % ('/'.join(path_list)) diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index c176f8a..96ad974 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -25,11 +25,20 @@ # along with this program. If not, see . # +class ApduTracer: + def trace_command(self, cmd): + pass + + def trace_response(self, cmd, sw, resp): + pass + + class LinkBase(object): """Base class for link/transport to card.""" - def __init__(self, sw_interpreter=None): + def __init__(self, sw_interpreter=None, apdu_tracer=None): self.sw_interpreter = sw_interpreter + self.apdu_tracer = apdu_tracer def set_sw_interpreter(self, interp): """Set an (optional) status word interpreter.""" @@ -69,7 +78,12 @@ data : string (in hex) of returned data (ex. "074F4EFFFF") sw : string (in hex) of status word (ex. "9000") """ - return self._send_apdu_raw(pdu) + if self.apdu_tracer: + self.apdu_tracer.trace_command(pdu) + (data, sw) = self._send_apdu_raw(pdu) + if self.apdu_tracer: + self.apdu_tracer.trace_response(pdu, sw, data) + return (data, sw) def send_apdu(self, pdu): """Sends an APDU and auto fetch response data -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0c957c0b86473413f31e4bd8bc4e633fc1470222 Gerrit-Change-Number: 23698 Gerrit-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 Apr 10 09:37:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:37:53 +0000 Subject: Change in pysim[master]: pySim-shell: tree/export: catch errors during DF selection In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23686 ) Change subject: pySim-shell: tree/export: catch errors during DF selection ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I24ccf64965e7b0756c3db77eb2084b22c357a570 Gerrit-Change-Number: 23686 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 09:37:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 09:39:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:39:30 +0000 Subject: Change in pysim[master]: pySim-shell: allow generic USIM/ISIM cards to be used In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23689 ) Change subject: pySim-shell: allow generic USIM/ISIM cards to be used ...................................................................... Patch Set 1: > Patch Set 1: > > This may be a bit hackish, but comments are welcome. I would approach this differently: Have a proper generic card type at the pySim/cards.py level. One that doesn't do ATR matching to detect some very specific card, but one that tries to identify a USIM by what applications are on the card. Could later be extended to detecting classing SIM if only CLA=A0 works and DF.TELECOM + DF.GSM are selectable -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie1fa42400d236928659a7e5d34225487161d4b83 Gerrit-Change-Number: 23689 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 09: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 Sat Apr 10 09:39:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:39:34 +0000 Subject: Change in pysim[master]: pySim-shell: tree/export: catch errors during DF selection In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23686 ) Change subject: pySim-shell: tree/export: catch errors during DF selection ...................................................................... pySim-shell: tree/export: catch errors during DF selection When a DF is selected, then the method walk() does not catch the related execption, which causes the command to stop immediately. Lets also catch those exceptions and generate appropriate error messages during export. Change-Id: I24ccf64965e7b0756c3db77eb2084b22c357a570 Related: OS#4963 --- M pySim-shell.py 1 file changed, 31 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index 3059f3f..29138cc 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -176,10 +176,26 @@ output_str += " " + str(files[f].fid) output_str += " " + str(files[f].desc) self._cmd.poutput(output_str) + if isinstance(files[f], CardDF): - fcp_dec = self._cmd.rs.select(f, self._cmd) - self.walk(indent + 1, action, context) - fcp_dec = self._cmd.rs.select("..", self._cmd) + skip_df=False + try: + fcp_dec = self._cmd.rs.select(f, self._cmd) + except Exception as e: + skip_df=True + df = self._cmd.rs.selected_file + df_path_list = df.fully_qualified_path(True) + df_skip_reason_str = '/'.join(df_path_list) + "/" + str(f) + ", " + str(e) + if context: + context['DF_SKIP'] += 1 + context['DF_SKIP_REASON'].append(df_skip_reason_str) + + # If the DF was skipped, we never have entered the directory + # below, so we must not move up. + if skip_df == False: + self.walk(indent + 1, action, context) + fcp_dec = self._cmd.rs.select("..", self._cmd) + elif action: df_before_action = self._cmd.rs.selected_file action(f, context) @@ -251,7 +267,7 @@ @cmd2.with_argparser(export_parser) def do_export(self, opts): """Export files to script that can be imported back later""" - context = {'ERR':0, 'COUNT':0, 'BAD':[]} + context = {'ERR':0, 'COUNT':0, 'BAD':[], 'DF_SKIP':0, 'DF_SKIP_REASON':[]} if opts.filename: self.export(opts.filename, context) else: @@ -260,8 +276,17 @@ self._cmd.poutput("# bad files: %u" % context['ERR']) for b in context['BAD']: self._cmd.poutput("# " + b) - if context['ERR']: - raise RuntimeError("unable to export %i file(s)" % context['ERR']) + + self._cmd.poutput("# skipped dedicated files(s): %u" % context['DF_SKIP']) + for b in context['DF_SKIP_REASON']: + self._cmd.poutput("# " + b) + + if context['ERR'] and context['DF_SKIP']: + raise RuntimeError("unable to export %i elementry file(s) and %i dedicated file(s)" % (context['ERR'], context['DF_SKIP'])) + elif context['ERR']: + raise RuntimeError("unable to export %i elementry file(s)" % context['ERR']) + elif context['DF_SKIP']: + raise RuntimeError("unable to export %i dedicated files(s)" % context['ERR']) @with_default_category('ISO7816 Commands') -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I24ccf64965e7b0756c3db77eb2084b22c357a570 Gerrit-Change-Number: 23686 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 Sat Apr 10 09:42:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:42:23 +0000 Subject: Change in pysim[master]: shell: add edit_{record, binary}_decoded shell commands In-Reply-To: References: Message-ID: Hello Jenkins Builder, tnt, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23681 to look at the new patch set (#3). Change subject: shell: add edit_{record,binary}_decoded shell commands ...................................................................... shell: add edit_{record,binary}_decoded shell commands This allows the user to edit the file/record contents in its JSON representation inside the standard system text editor. Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 --- M docs/shell.rst M pySim/filesystem.py 2 files changed, 82 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/81/23681/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 Gerrit-Change-Number: 23681 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 09:48:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:48:01 +0000 Subject: Change in pysim[master]: Wavemobile: adjust test expectations about binary EF.AD content References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23699 ) Change subject: Wavemobile: adjust test expectations about binary EF.AD content ...................................................................... Wavemobile: adjust test expectations about binary EF.AD content Change-Id: Ib6ebe063a4d0d90b1cdc9bc7ec0773cef8d87fbc --- M pysim-testdata/Wavemobile-SIM.ok 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/99/23699/1 diff --git a/pysim-testdata/Wavemobile-SIM.ok b/pysim-testdata/Wavemobile-SIM.ok index 6cb4e2b..1c78cc9 100644 --- a/pysim-testdata/Wavemobile-SIM.ok +++ b/pysim-testdata/Wavemobile-SIM.ok @@ -49,7 +49,7 @@ HPLMNAcT: Can't read file -- SW match failed! Expected 9000 and got 6a82. ACC: abce MSISDN: Not available -Administrative data: 00ffff02 +Administrative data: 00000102 MS operation mode: normal operation Ciphering Indicator: enabled SIM Service Table: ff33ff0f3c00ff0f000cf0c0f0030000 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib6ebe063a4d0d90b1cdc9bc7ec0773cef8d87fbc Gerrit-Change-Number: 23699 Gerrit-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 Apr 10 09:48:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:48:41 +0000 Subject: Change in pysim[master]: pySim/filesystem.py: fix compatibility with Python 3.5 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23690 ) Change subject: pySim/filesystem.py: fix compatibility with Python 3.5 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia4021551bcd28e6020958964f6f4e9b6dc989d94 Gerrit-Change-Number: 23690 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 09:48:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 09:48:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:48:43 +0000 Subject: Change in pysim[master]: pySim/filesystem.py: fix compatibility with Python 3.5 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23690 ) Change subject: pySim/filesystem.py: fix compatibility with Python 3.5 ...................................................................... pySim/filesystem.py: fix compatibility with Python 3.5 Change-Id: Ia4021551bcd28e6020958964f6f4e9b6dc989d94 Related: OS#5111 --- M pySim/filesystem.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim/filesystem.py b/pySim/filesystem.py index e97fbf6..097661d 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -65,7 +65,7 @@ self.parent = parent if self.parent and self.parent != self and self.fid: self.parent.add_file(self) - self.shell_commands: List[CommandSet] = [] + self.shell_commands = [] # type: List[CommandSet] # Note: the basic properties (fid, name, ect.) are verified when # the file is attached to a parent file. See method add_file() in -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia4021551bcd28e6020958964f6f4e9b6dc989d94 Gerrit-Change-Number: 23690 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 Sat Apr 10 09:52:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 09:52:44 +0000 Subject: Change in pysim[master]: shell: add edit_{record, binary}_decoded shell commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23681 ) Change subject: shell: add edit_{record,binary}_decoded shell commands ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 Gerrit-Change-Number: 23681 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 10 Apr 2021 09:52: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 Sat Apr 10 11:51:12 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Sat, 10 Apr 2021 11:51:12 +0000 Subject: Change in pysim[master]: test please ignore References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23700 ) Change subject: test please ignore ...................................................................... test please ignore Change-Id: I836037e0fb79972b88e705fc091cf19767f676e6 --- A testme 1 file changed, 0 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/00/23700/1 diff --git a/testme b/testme new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/testme -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23700 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I836037e0fb79972b88e705fc091cf19767f676e6 Gerrit-Change-Number: 23700 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 Sat Apr 10 11:55:08 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Sat, 10 Apr 2021 11:55:08 +0000 Subject: Change in pysim[master]: Wavemobile: adjust test expectations about binary EF.AD content In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23699 ) Change subject: Wavemobile: adjust test expectations about binary EF.AD content ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib6ebe063a4d0d90b1cdc9bc7ec0773cef8d87fbc Gerrit-Change-Number: 23699 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Sat, 10 Apr 2021 11: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 Sat Apr 10 11:56:11 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Sat, 10 Apr 2021 11:56:11 +0000 Subject: Change in pysim[master]: test please ignore In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/23700 ) Change subject: test please ignore ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23700 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I836037e0fb79972b88e705fc091cf19767f676e6 Gerrit-Change-Number: 23700 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 14:08:07 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 10 Apr 2021 14:08:07 +0000 Subject: Change in osmo-gsm-manuals[master]: common/chapters: extend gb/ns2 chapters In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 ) Change subject: common/chapters: extend gb/ns2 chapters ...................................................................... Patch Set 6: (8 comments) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc File common/chapters/gb-ns2.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 13 PS4, Line 13: There are a multiple > Looks odd to me, maybe "there exist multiple ... [?] changed to "There are multiple" https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 62 PS4, Line 62: hdlcX > consistency: `hdlcX` Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 96 PS4, Line 96: SNS-WEIGHT procedures > missing dot ending sentence Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 124 PS4, Line 124: * No use of the NS-RESET, NS-BLOCK or NS-UNBLOCK procedures > missing dot ending sentence Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 158 PS4, Line 158: parts > parts: [?] I would leave it as it is. https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 171 PS4, Line 171: represent > represents Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 180 PS4, Line 180: persitant > persistent Done https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393/4/common/chapters/gb-ns2.adoc at 185 PS4, Line 185: describe > describes Done -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 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: I902b850528cbc04bd469590babd84cccf64300e8 Gerrit-Change-Number: 23393 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 10 Apr 2021 14:08:07 +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 Apr 10 14:09:19 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 10 Apr 2021 14:09:19 +0000 Subject: Change in osmo-gsm-manuals[master]: common/chapters: extend gb/ns2 chapters In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 to look at the new patch set (#7). Change subject: common/chapters: extend gb/ns2 chapters ...................................................................... common/chapters: extend gb/ns2 chapters Merge gb-variants.adoc into gb-ns2.adoc Add a general overview of the internal structure which is also used by the vty. Move the configuration into a seperate adoc to allow the PCU manual to skip the part which doesn't apply for it. Copy the timer configuration into gb.adoc to allow document newer timers. All users of the NS2 code will use the timer sub-chapter. Related: OS#5077 Change-Id: I902b850528cbc04bd469590babd84cccf64300e8 --- A common/chapters/gb-ns2-configuration-timer.adoc A common/chapters/gb-ns2-configuration.adoc A common/chapters/gb-ns2.adoc D common/chapters/gb-variants.adoc 4 files changed, 394 insertions(+), 179 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/93/23393/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 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: I902b850528cbc04bd469590babd84cccf64300e8 Gerrit-Change-Number: 23393 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge 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 Sat Apr 10 15:01:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 10 Apr 2021 15:01:15 +0000 Subject: Change in osmo-gsm-manuals[master]: build/Makefile.asciidoc.inc: detect more errors/warnings In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23694 ) Change subject: build/Makefile.asciidoc.inc: detect more errors/warnings ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23694 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: I91f48705c156755c31835aeb524c827b0dc9d100 Gerrit-Change-Number: 23694 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 16:41:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 16:41:26 +0000 Subject: Change in pysim[master]: shell: add edit_{record, binary}_decoded shell commands In-Reply-To: References: Message-ID: Hello Jenkins Builder, tnt, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23681 to look at the new patch set (#5). Change subject: shell: add edit_{record,binary}_decoded shell commands ...................................................................... shell: add edit_{record,binary}_decoded shell commands This allows the user to edit the file/record contents in its JSON representation inside the standard system text editor. Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 --- M docs/shell.rst M pySim/filesystem.py 2 files changed, 78 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/81/23681/5 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 Gerrit-Change-Number: 23681 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 16:41:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 16:41:27 +0000 Subject: Change in pysim[master]: pySim/filesystem: Fix more Python 3.5 compatibility issues References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23701 ) Change subject: pySim/filesystem: Fix more Python 3.5 compatibility issues ...................................................................... pySim/filesystem: Fix more Python 3.5 compatibility issues Change-Id: I277e86a0e6b16d53d2b5b48b74915ac9a48a4211 --- M pySim/filesystem.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/01/23701/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 097661d..d2b8443 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -336,7 +336,7 @@ def __init__(self, aid:str, **kwargs): super().__init__(**kwargs) # reference to CardApplication may be set from CardApplication constructor - self.application:Optional[CardApplication] = None + self.application = None # type: Optional[CardApplication] self.aid = aid # Application Identifier mf = self.get_mf() if mf: @@ -856,7 +856,7 @@ """ self.mf = CardMF() self.card = card - self.selected_file:CardDF = self.mf + self.selected_file = self.mf # type: CardDF self.profile = profile # add application ADFs + MF-files from profile apps = self._match_applications() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I277e86a0e6b16d53d2b5b48b74915ac9a48a4211 Gerrit-Change-Number: 23701 Gerrit-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 Apr 10 16:41:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 16:41:27 +0000 Subject: Change in pysim[master]: extend JSONEncoder to serialze 'bytes' style objects as hex strings References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23702 ) Change subject: extend JSONEncoder to serialze 'bytes' style objects as hex strings ...................................................................... extend JSONEncoder to serialze 'bytes' style objects as hex strings This means we can skip a lot of code that manually converts from bytes to hex before JSON serialization. Change-Id: I9c9eff0556d9d196e64553b5276e162f69d0c18f --- M pySim-shell.py M pySim/utils.py 2 files changed, 13 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/02/23702/1 diff --git a/pySim-shell.py b/pySim-shell.py index ce1b3bf..1d81eb8 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -39,7 +39,7 @@ from pySim.commands import SimCardCommands from pySim.transport import init_reader, ApduTracer from pySim.cards import card_detect, Card -from pySim.utils import h2b, swap_nibbles, rpad, h2s +from pySim.utils import h2b, swap_nibbles, rpad, h2s, JsonEncoder from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex from pySim.card_handler import card_handler @@ -81,9 +81,9 @@ def poutput_json(self, data, force_no_pretty = False): """line cmd2.putput() but for a json serializable dict.""" if force_no_pretty or self.json_pretty_print == False: - output = json.dumps(data) + output = json.dumps(data, cls=JsonEncoder) else: - output = json.dumps(data, indent=4) + output = json.dumps(data, cls=JsonEncoder, indent=4) self.poutput(output) def _onchange_numeric_path(self, param_name, old, new): diff --git a/pySim/utils.py b/pySim/utils.py index 6a093fa..5f66170 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -3,9 +3,12 @@ """ pySim: various utilities """ +import json +from io import BytesIO from typing import Optional, List, Dict, Any, Tuple # Copyright (C) 2009-2010 Sylvain Munaut +# Copyright (C) 2021 Harald Welte # # 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 @@ -831,3 +834,10 @@ format_str_row = (" " * lspace) + format_str_row table.append(format_str_row % tuple(str_list_row)) return '\n'.join(table) + +class JsonEncoder(json.JSONEncoder): + """Extend the standard library JSONEncoder with support for more types.""" + def default(self, o): + if isinstance(o, BytesIO) or isinstance(o, bytes) or isinstance(o, bytearray): + return b2h(o) + return json.JSONEncoder.default(self, o) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23702 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9c9eff0556d9d196e64553b5276e162f69d0c18f Gerrit-Change-Number: 23702 Gerrit-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 Apr 10 16:41:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 16:41:27 +0000 Subject: Change in pysim[master]: pySim-shell: Use poutput_json() whenever applicable References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23703 ) Change subject: pySim-shell: Use poutput_json() whenever applicable ...................................................................... pySim-shell: Use poutput_json() whenever applicable poutput_json() uses a customs JSONEncoder, and hence all JSON prenting should go through it. Change-Id: Ie023669e77311350ade4f8dbc65431e71b586052 --- M pySim-shell.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/03/23703/1 diff --git a/pySim-shell.py b/pySim-shell.py index 1d81eb8..cfba73f 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -322,7 +322,7 @@ path = opts.arg_list[0] fcp_dec = self._cmd.rs.select(path, self._cmd) self._cmd.update_prompt() - self._cmd.poutput(json.dumps(fcp_dec, indent=4)) + self._cmd.poutput_json(fcp_dec) def complete_select(self, text, line, begidx, endidx) -> List[str]: """Command Line tab completion for SELECT""" -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie023669e77311350ade4f8dbc65431e71b586052 Gerrit-Change-Number: 23703 Gerrit-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 Apr 10 16:41:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 16:41:28 +0000 Subject: Change in pysim[master]: setup.py: add missing comma in list of dependencies References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23704 ) Change subject: setup.py: add missing comma in list of dependencies ...................................................................... setup.py: add missing comma in list of dependencies Change-Id: If93d8c67cdfacc1f30307c8cfb38924fb2cbabbe --- M setup.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/04/23704/1 diff --git a/setup.py b/setup.py index a02e327..e7ab1c9 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ "pyscard", "serial", "pytlv", - "cmd2" + "cmd2", "jsonpath-ng" ], scripts=[ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93d8c67cdfacc1f30307c8cfb38924fb2cbabbe Gerrit-Change-Number: 23704 Gerrit-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 Apr 10 16:41:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 16:41:28 +0000 Subject: Change in pysim[master]: integrate 'construct' python library References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23705 ) Change subject: integrate 'construct' python library ...................................................................... integrate 'construct' python library 'construct' is a declarative symmetric encoder/decoder for user specified binary formats. It should come in extremely handy in tools like pySim. We start the integration by adding transport methods for transceiving APDUs with built-in encoding of the command data and decoding of the response data. Change-Id: Ibf457aa8b9480a8db5979defcfafd67674303f6c --- M docs/library.rst A pySim/construct.py M pySim/transport/__init__.py M requirements.txt M setup.py 5 files changed, 102 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/05/23705/1 diff --git a/docs/library.rst b/docs/library.rst index 656a780..e2e24a7 100644 --- a/docs/library.rst +++ b/docs/library.rst @@ -73,6 +73,14 @@ .. automodule:: pySim.transport.serial :members: + +pySim construct utilities +------------------------- + +.. automodule:: pySim.construct + :members: + + pySim utility functions ----------------------- diff --git a/pySim/construct.py b/pySim/construct.py new file mode 100644 index 0000000..03d284e --- /dev/null +++ b/pySim/construct.py @@ -0,0 +1,42 @@ +from construct import * +from pySim.utils import b2h, h2b + +"""Utility code related to the integration of the 'construct' declarative parser.""" + +# (C) 2021 by Harald Welte +# +# 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 . + + +class HexAdapter(Adapter): + """convert a bytes() type to a string of hex nibbles.""" + def _decode(self, obj, context, path): + return b2h(obj) + def _encode(self, obj, context, path): + return h2b(obj) + +def filter_dict(d, exclude_prefix='_'): + """filter the input dict to ensure no keys starting with 'exclude_prefix' remain.""" + res = {} + for (key, value) in d.items(): + if key.startswith(exclude_prefix): + continue + if type(value) is dict: + res[key] = filter_dict(value) + else: + res[key] = value + return res + +# here we collect some shared / common definitions of data types +LV = Prefixed(Int8ub, HexAdapter(GreedyBytes)) diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 96ad974..290bc7c 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -6,10 +6,12 @@ from typing import Optional from pySim.exceptions import * -from pySim.utils import sw_match +from pySim.construct import filter_dict +from pySim.utils import sw_match, b2h, h2b, i2h # # Copyright (C) 2009-2010 Sylvain Munaut +# Copyright (C) 2021 Harald Welte # # 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 @@ -127,6 +129,52 @@ raise SwMatchError(rv[1], sw.lower(), self.sw_interpreter) return rv + def send_apdu_constr(self, cla, ins, p1, p2, cmd_constr, cmd_data, resp_constr): + """Build and sends an APDU using a 'construct' definition; parses response. + + Args: + cla : string (in hex) ISO 7816 class byte + ins : string (in hex) ISO 7816 instruction byte + p1 : string (in hex) ISO 7116 Parameter 1 byte + p2 : string (in hex) ISO 7116 Parameter 2 byte + cmd_cosntr : defining how to generate binary APDU command data + cmd_data : command data passed to cmd_constr + resp_cosntr : defining how to decode binary APDU response data + Returns: + Tuple of (decoded_data, sw) + """ + cmd = cmd_constr.build(cmd_data) if cmd_data else '' + p3 = i2h([len(cmd)]) + pdu = ''.join([cla, ins, p1, p2, p3, b2h(cmd)]) + (data, sw) = self.send_apdu(pdu) + if data: + # filter the resulting dict to avoid '_io' members inside + rsp = filter_dict(resp_constr.parse(h2b(data))) + else: + rsp = None + return (rsp, sw) + + def send_apdu_constr_checksw(self, cla, ins, p1, p2, cmd_constr, cmd_data, resp_constr, + sw_exp="9000"): + """Build and sends an APDU using a 'construct' definition; parses response. + + Args: + cla : string (in hex) ISO 7816 class byte + ins : string (in hex) ISO 7816 instruction byte + p1 : string (in hex) ISO 7116 Parameter 1 byte + p2 : string (in hex) ISO 7116 Parameter 2 byte + cmd_cosntr : defining how to generate binary APDU command data + cmd_data : command data passed to cmd_constr + resp_cosntr : defining how to decode binary APDU response data + exp_sw : string (in hex) of status word (ex. "9000") + Returns: + Tuple of (decoded_data, sw) + """ + (rsp, sw) = self.send_apdu_constr(cla, ins, p1, p2, cmd_constr, cmd_data, resp_constr) + if not sw_match(sw, sw_exp): + raise SwMatchError(sw, sw_exp.lower(), self.sw_interpreter) + return (rsp, sw) + def init_reader(opts, **kwargs) -> Optional[LinkBase]: """ Init card reader driver diff --git a/requirements.txt b/requirements.txt index f203ed1..6da27cc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,3 +3,4 @@ pytlv cmd2 jsonpath-ng +construct diff --git a/setup.py b/setup.py index e7ab1c9..0fa3f1a 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,8 @@ "serial", "pytlv", "cmd2", - "jsonpath-ng" + "jsonpath-ng", + "construct", ], scripts=[ 'pySim-prog.py', -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibf457aa8b9480a8db5979defcfafd67674303f6c Gerrit-Change-Number: 23705 Gerrit-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 Apr 10 16:41:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 16:41:28 +0000 Subject: Change in pysim[master]: pySim-shell: Authenticate (3g) support References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23706 ) Change subject: pySim-shell: Authenticate (3g) support ...................................................................... pySim-shell: Authenticate (3g) support This adds support for AUTHENTICATE to the USIM and ISIM application, based on the newly-introduced 'construct' encoder/decoder support. Change-Id: Id5697463e29c3dceff98bcf80f5400f7f2bcaa6c --- M docs/shell.rst M pySim/commands.py M pySim/ts_31_102.py M pySim/ts_31_103.py 4 files changed, 56 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/06/23706/1 diff --git a/docs/shell.rst b/docs/shell.rst index 854944c..1072ee8 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -300,6 +300,17 @@ This allows for easy interactive modification of file contents. +USIM commands +------------- + +authenticate +~~~~~~~~~~~~ +.. argparse:: + :module: pySim.ts_31_102 + :func: ADF_USIM.AddlShellCommands.authenticate_parser + + + cmd2 settable parameters ------------------------ diff --git a/pySim/commands.py b/pySim/commands.py index 7919099..791b995 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -21,6 +21,8 @@ # along with this program. If not, see . # +from construct import * +from pySim.construct import LV from pySim.utils import rpad, b2h, sw_match from pySim.exceptions import SwMatchError @@ -274,6 +276,26 @@ self.select_path(['3f00', '7f20']) return self._tp.send_apdu(self.cla_byte + '88000010' + rand) + def authenticate(self, rand:str, autn:str, context='3g'): + """Execute AUTHENTICATE (USIM/ISIM).""" + # 3GPP TS 31.102 Section 7.1.2.1 + AuthCmd3G = Struct('rand'/LV, 'autn'/Optional(LV)) + AuthResp3GSyncFail = Struct(Const(b'\xDC'), 'auts'/LV) + AuthResp3GSuccess = Struct(Const(b'\xDB'), 'res'/LV, 'ck'/LV, 'ik'/LV, 'kc'/Optional(LV)) + AuthResp3G = Select(AuthResp3GSyncFail, AuthResp3GSuccess) + # build parameters + cmd_data = {'rand': rand, 'autn': autn} + if context == '3g': + p2 = '81' + elif context == 'gsm': + p2 = '80' + (data, sw) = self._tp.send_apdu_constr(self.cla_byte, '88', '00', p2, AuthCmd3G, cmd_data, AuthResp3G) + if 'auts' in data: + ret = {'synchronisation_failure': data} + else: + ret = {'successful_3g_authentication': data} + return (ret, sw) + def reset_card(self): """Physically reset the card""" return self._tp.reset_card() diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 267008d..cdb6612 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -268,6 +268,7 @@ # ADF.USIM ###################################################################### +from struct import unpack, pack from pySim.filesystem import * from pySim.ts_51_011 import EF_IMSI, EF_xPLMNwAcT, EF_SPN, EF_CBMI, EF_ACC, EF_PLMNsel, EF_AD from pySim.ts_51_011 import EF_CBMID, EF_CBMIR @@ -489,6 +490,8 @@ def __init__(self, aid='a0000000871002', name='ADF.USIM', fid=None, sfid=None, desc='USIM Application'): super().__init__(aid=aid, fid=fid, sfid=sfid, name=name, desc=desc) + # add those commands to the general commands of a TransparentEF + self.shell_commands += [self.AddlShellCommands()] files = [ EF_LI(sfid=0x02), @@ -520,6 +523,23 @@ def decode_select_response(self, data_hex): return pySim.ts_102_221.decode_select_response(data_hex) + @with_default_category('Application-Specific Commands') + class AddlShellCommands(CommandSet): + def __init__(self): + super().__init__() + + authenticate_parser = argparse.ArgumentParser() + authenticate_parser.add_argument('rand', help='Random challenge') + authenticate_parser.add_argument('autn', help='Authentication Nonce') + #authenticate_parser.add_argument('--context', help='Authentication context', default='3G') + @cmd2.with_argparser(authenticate_parser) + def do_authenticate(self, opts): + """Perform Authentication and Key Agreement (AKA).""" + (data, sw) = self._cmd.card._scc.authenticate(opts.rand, opts.autn) + self._cmd.poutput_json(data) + + + # TS 31.102 Section 7.3 sw_usim = { 'Security management': { diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index 8209845..effdbf7 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -25,6 +25,7 @@ from pySim.filesystem import * from pySim.utils import * from pySim.ts_51_011 import EF_AD +from pySim.ts_31_102 import ADF_USIM import pySim.ts_102_221 # Mapping between ISIM Service Number and its description @@ -186,6 +187,8 @@ EF_WebRTCURI(), ] self.add_files(files) + # add those commands to the general commands of a TransparentEF + self.shell_commands += [ADF_USIM.AddlShellCommands()] def decode_select_response(self, data_hex): return pySim.ts_102_221.decode_select_response(data_hex) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id5697463e29c3dceff98bcf80f5400f7f2bcaa6c Gerrit-Change-Number: 23706 Gerrit-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 Apr 10 16:41:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 16:41:29 +0000 Subject: Change in pysim[master]: pySim-shell: Adds support for DEACTIVATE FILE + ACTIVATE FILE References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23707 ) Change subject: pySim-shell: Adds support for DEACTIVATE FILE + ACTIVATE FILE ...................................................................... pySim-shell: Adds support for DEACTIVATE FILE + ACTIVATE FILE Change-Id: I22207dde20f991b0a22dea8f5dd695a0ec99da33 --- M docs/shell.rst M pySim-shell.py M pySim/commands.py 3 files changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/07/23707/1 diff --git a/docs/shell.rst b/docs/shell.rst index 1072ee8..f2ddba1 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -120,6 +120,14 @@ :module: pySim-shell :func: Iso7816Commands.verify_chv_parser +deactivate_file +~~~~~~~~~~~~~~~ +Deactivate the currently selected file. This used to be called INVALIDATE in TS 11.11. + + +activate_file +~~~~~~~~~~~~~ +Activate the currently selected file. This used to be called REHABILITATE in TS 11.11. pySim commands diff --git a/pySim-shell.py b/pySim-shell.py index cfba73f..b2ccb9a 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -403,6 +403,15 @@ (data, sw) = self._cmd.card._scc.enable_chv(opts.pin_nr, h2b(pin)) self._cmd.poutput("CHV enable successful") + def do_deactivate_file(self, opts): + """Deactivate the current EF""" + fid = self._cmd.rs.selected_file.fid + (data, sw) = self._cmd.card._scc.deactivate_file(fid) + + def do_activate_file(self, opts): + """Activate the current EF""" + fid = self._cmd.rs.selected_file.fid + (data, sw) = self._cmd.card._scc.activate_file(fid) def parse_options(): diff --git a/pySim/commands.py b/pySim/commands.py index 791b995..2894d31 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -296,6 +296,14 @@ ret = {'successful_3g_authentication': data} return (ret, sw) + def deactivate_file(self): + """Execute DECATIVATE FILE command as per TS 102 221 Section 11.1.14.""" + return self._tp.send_apdu_constr_checksw(self.cla_byte, '04', '00', '00', None, None, None) + + def activate_file(self): + """Execute ACTIVATE FILE command as per TS 102 221 Section 11.1.15.""" + return self._tp.send_apdu_constr_checksw(self.cla_byte, '44', '00', '00', None, None, None) + def reset_card(self): """Physically reset the card""" return self._tp.reset_card() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22207dde20f991b0a22dea8f5dd695a0ec99da33 Gerrit-Change-Number: 23707 Gerrit-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 Apr 10 16:41:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 16:41:30 +0000 Subject: Change in pysim[master]: pySim-shell: Add open_channel + close_channel commands References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23708 ) Change subject: pySim-shell: Add open_channel + close_channel commands ...................................................................... pySim-shell: Add open_channel + close_channel commands Change-Id: I53d9d7f7720eb5f10956bff74ea7ba9fd3b3bd19 --- M docs/shell.rst M pySim-shell.py M pySim/commands.py 3 files changed, 38 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/08/23708/1 diff --git a/docs/shell.rst b/docs/shell.rst index f2ddba1..30938fe 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -129,6 +129,18 @@ ~~~~~~~~~~~~~ Activate the currently selected file. This used to be called REHABILITATE in TS 11.11. +open_channel +~~~~~~~~~~~~ +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.open_chan_parser + +close_channel +~~~~~~~~~~~~~ +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.close_chan_parser + pySim commands -------------- diff --git a/pySim-shell.py b/pySim-shell.py index b2ccb9a..132733d 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -413,6 +413,23 @@ fid = self._cmd.rs.selected_file.fid (data, sw) = self._cmd.card._scc.activate_file(fid) + open_chan_parser = argparse.ArgumentParser() + open_chan_parser.add_argument('chan_nr', type=int, default=0, help='Channel Number') + + @cmd2.with_argparser(open_chan_parser) + def do_open_channel(self, opts): + """Open a logical channel.""" + (data, sw) = self._cmd.card._scc.manage_channel(mode='open', lchan_nr=opts.chan_nr) + + close_chan_parser = argparse.ArgumentParser() + close_chan_parser.add_argument('chan_nr', type=int, default=0, help='Channel Number') + + @cmd2.with_argparser(close_chan_parser) + def do_close_channel(self, opts): + """Close a logical channel.""" + (data, sw) = self._cmd.card._scc.manage_channel(mode='close', lchan_nr=opts.chan_nr) + + def parse_options(): parser = OptionParser(usage="usage: %prog [options]") diff --git a/pySim/commands.py b/pySim/commands.py index 2894d31..33aec12 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -304,6 +304,15 @@ """Execute ACTIVATE FILE command as per TS 102 221 Section 11.1.15.""" return self._tp.send_apdu_constr_checksw(self.cla_byte, '44', '00', '00', None, None, None) + def manage_channel(self, mode='open', lchan_nr=0): + """Execute MANAGE CHANNEL command as per TS 102 221 Section 11.1.17.""" + if mode == 'close': + p1 = 0x80 + else: + p1 = 0x00 + pdu = self.cla_byte + '70%02x%02x00' % (p1, lchan_nr) + return self._tp.send_apdu_checksw(pdu) + def reset_card(self): """Physically reset the card""" return self._tp.reset_card() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I53d9d7f7720eb5f10956bff74ea7ba9fd3b3bd19 Gerrit-Change-Number: 23708 Gerrit-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 Apr 10 17:10:41 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Sat, 10 Apr 2021 17:10:41 +0000 Subject: Change in pysim[master]: WIP: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23632 to look at the new patch set (#10). Change subject: WIP: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... WIP: Add option to set UE operation mode in EF_AD (Administrative Data) Use ``--opmode=OPMODE`` in cmdline mode or column ``OPMODE`` in csv mode to specify OPMODE as listed below. Details: The ``EF_AD`` field contains administrative data (AD). It consists of four bytes ``B1``, ``B2``, ``B3``, ``B4``, and optionally further bytes for future use. Previous implementation only sets the MNC field appropriately (located in `B4`) and sets all other bits/bytes to 0. However, `B1` also defines the *UE operation mode* (see below). For type approval operations, such as testing with a test uSIM, this value could be set to `0x80` rather than `0x00`(= normal operation). This may unlock some UE capabilities that are restricted in normal operation mode. Excerpt from [ETSI TS 131 102, 4.2.18](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` B1 - UE operation mode: Coding: Initial value - '00' normal operation. - '80' type approval operations. - '01' normal operation + specific facilities. - '81' type approval operations + specific facilities. - '02' maintenance (off line). - '04' cell test operation. B2 - Additional information: Coding: Reserved for future use B3 - Additional information: Coding: - B3.b1: OFM setting (Ciphering Indicator) - B3.others: Reserved for future use B4 - Length of MNC in the IMSI: Coding: - B4.b4..B4.b1: length: '0010' (= 2) or '0011' (=3) - B4.others: Reserved for future use ``` **Legend:** Byte X, bit Y: BX.bY Further reading: https://nickvsnetworking.com/usim-basics/ Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 --- M pySim-prog.py M pySim/cards.py 2 files changed, 71 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/32/23632/10 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 10 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 22:02:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:02:56 +0000 Subject: Change in pysim[master]: filesystem: Introduce 'construct' support References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23709 ) Change subject: filesystem: Introduce 'construct' support ...................................................................... filesystem: Introduce 'construct' support This allows for pure declarative encoders/decoders for linear fixed and transparent EFs. Change-Id: Id0765ec3ddb8c044838ce47d0ff8740720a32b15 --- M pySim/construct.py M pySim/filesystem.py 2 files changed, 36 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/09/23709/1 diff --git a/pySim/construct.py b/pySim/construct.py index 03d284e..839497c 100644 --- a/pySim/construct.py +++ b/pySim/construct.py @@ -1,5 +1,5 @@ from construct import * -from pySim.utils import b2h, h2b +from pySim.utils import b2h, h2b, swap_nibbles """Utility code related to the integration of the 'construct' declarative parser.""" @@ -26,6 +26,13 @@ def _encode(self, obj, context, path): return h2b(obj) +class BcdAdapter(Adapter): + """convert a bytes() type to a string of BCD nibbles.""" + def _decode(self, obj, context, path): + return swap_nibbles(b2h(obj)) + def _encode(self, obj, context, path): + return h2b(swap_nibbles(obj)) + def filter_dict(d, exclude_prefix='_'): """filter the input dict to ensure no keys starting with 'exclude_prefix' remain.""" res = {} diff --git a/pySim/filesystem.py b/pySim/filesystem.py index e771f3c..49520c3 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -35,6 +35,7 @@ from typing import cast, Optional, Iterable, List, Any, Dict, Tuple from pySim.utils import sw_match, h2b, b2h, is_hex +from pySim.construct import filter_dict from pySim.exceptions import * from pySim.jsonpath import js_path_find, js_path_modify @@ -466,6 +467,7 @@ size : tuple of (minimum_size, recommended_size) """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent) + self._construct = None self.size = size self.shell_commands = [self.ShellCommands()] @@ -487,6 +489,8 @@ method = getattr(self, '_decode_hex', None) if callable(method): return method(b2h(raw_bin_data)) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_bin_data.hex()} def decode_hex(self, raw_hex_data:str) -> dict: @@ -508,6 +512,8 @@ method = getattr(self, '_decode_bin', None) if callable(method): return method(raw_bin_data) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_bin_data.hex()} def encode_bin(self, abstract_data:dict) -> bytearray: @@ -528,6 +534,8 @@ method = getattr(self, '_encode_hex', None) if callable(method): return h2b(method(abstract_data)) + if self._construct: + return self._construct.build(abstract_data) raise NotImplementedError def encode_hex(self, abstract_data:dict) -> str: @@ -549,6 +557,8 @@ if callable(method): raw_bin_data = method(abstract_data) return b2h(raw_bin_data) + if self._construct: + return b2h(self._construct.build(abstract_data)) raise NotImplementedError @@ -683,6 +693,7 @@ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent) self.rec_len = rec_len self.shell_commands = [self.ShellCommands()] + self._construct = None def decode_record_hex(self, raw_hex_data:str) -> dict: """Decode raw (hex string) data into abstract representation. @@ -703,6 +714,8 @@ method = getattr(self, '_decode_record_bin', None) if callable(method): return method(raw_bin_data) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_bin_data.hex()} def decode_record_bin(self, raw_bin_data:bytearray) -> dict: @@ -724,6 +737,8 @@ method = getattr(self, '_decode_record_hex', None) if callable(method): return method(raw_hex_data) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_hex_data} def encode_record_hex(self, abstract_data:dict) -> str: @@ -745,6 +760,8 @@ if callable(method): raw_bin_data = method(abstract_data) return b2h(raw_bin_data) + if self._construct: + return b2h(self._construct.build(abstract_data)) raise NotImplementedError def encode_record_bin(self, abstract_data:dict) -> bytearray: @@ -765,6 +782,8 @@ method = getattr(self, '_encode_record_hex', None) if callable(method): return h2b(method(abstract_data)) + if self._construct: + return self._construct.build(abstract_data) raise NotImplementedError class CyclicEF(LinFixedEF): @@ -813,10 +832,12 @@ method = getattr(self, '_decode_record_hex', None) if callable(method): return method(raw_hex_data) + raw_bin_data = h2b(raw_hex_data) method = getattr(self, '_decode_record_bin', None) if callable(method): - raw_bin_data = h2b(raw_hex_data) return method(raw_bin_data) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_hex_data} def decode_record_bin(self, raw_bin_data:bytearray) -> dict: @@ -838,6 +859,8 @@ method = getattr(self, '_decode_record_hex', None) if callable(method): return method(raw_hex_data) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_hex_data} def encode_record_hex(self, abstract_data:dict) -> str: @@ -858,6 +881,8 @@ method = getattr(self, '_encode_record_bin', None) if callable(method): return b2h(method(abstract_data)) + if self._construct: + return b2h(filter_dict(self._construct.build(abstract_data))) raise NotImplementedError def encode_record_bin(self, abstract_data:dict) -> bytearray: @@ -878,6 +903,8 @@ method = getattr(self, '_encode_record_hex', None) if callable(method): return h2b(method(abstract_data)) + if self._construct: + return filter_dict(self._construct.build(abstract_data)) raise NotImplementedError def _decode_bin(self, raw_bin_data:bytearray): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id0765ec3ddb8c044838ce47d0ff8740720a32b15 Gerrit-Change-Number: 23709 Gerrit-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 Apr 10 22:02:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:02:56 +0000 Subject: Change in pysim[master]: ts_31_102.py: switch EF.Keys from imperative to declarative codec References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23710 ) Change subject: ts_31_102.py: switch EF.Keys from imperative to declarative codec ...................................................................... ts_31_102.py: switch EF.Keys from imperative to declarative codec Change-Id: I215a61c1e44ee2c5df70a8ca96344b4dd4d93c00 --- M pySim/ts_31_102.py 1 file changed, 3 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/10/23710/1 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index cdb6612..320a2cd 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -269,6 +269,8 @@ ###################################################################### from struct import unpack, pack +from construct import * +from pySim.construct import HexAdapter from pySim.filesystem import * from pySim.ts_51_011 import EF_IMSI, EF_xPLMNwAcT, EF_SPN, EF_CBMI, EF_ACC, EF_PLMNsel, EF_AD from pySim.ts_51_011 import EF_CBMID, EF_CBMIR @@ -416,12 +418,7 @@ def __init__(self, fid='6f08', sfid=0x08, name='EF.Keys', size={33,33}, desc='Ciphering and Integrity Keys'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) - def _decode_bin(self, in_bin): - return {'ksi': in_bin[0], - 'ck': b2h(in_bin[1:17]), - 'ik': b2h(in_bin[17:33])} - def _encode_bin(self, in_json): - return h2b(in_json['ksi']) + h2b(in_json['ck']) + h2b(in_json['ik']) + self._construct = Struct('ksi'/Int8ub, 'ck'/HexAdapter(Bytes(16)), 'ik'/HexAdapter(Bytes(16))) # TS 31.103 Section 4.2.7 class EF_UST(TransparentEF): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I215a61c1e44ee2c5df70a8ca96344b4dd4d93c00 Gerrit-Change-Number: 23710 Gerrit-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 Apr 10 22:02:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:02:56 +0000 Subject: Change in pysim[master]: lots of file definitions for classic SIM and USIM References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23711 ) Change subject: lots of file definitions for classic SIM and USIM ...................................................................... lots of file definitions for classic SIM and USIM Change-Id: I91475df4a5eaca423473aaebba8c69c54c9a0c1a --- M pySim/ts_31_102.py M pySim/ts_51_011.py 2 files changed, 490 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/11/23711/1 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 320a2cd..7b3a9e1 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -6,6 +6,7 @@ # # Copyright (C) 2020 Supreeth Herle +# Copyright (C) 2021 Harald Welte # # 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 @@ -270,10 +271,14 @@ from struct import unpack, pack from construct import * -from pySim.construct import HexAdapter +from pySim.construct import LV, HexAdapter, BcdAdapter from pySim.filesystem import * +from pySim.ts_102_221 import EF_ARR from pySim.ts_51_011 import EF_IMSI, EF_xPLMNwAcT, EF_SPN, EF_CBMI, EF_ACC, EF_PLMNsel, EF_AD -from pySim.ts_51_011 import EF_CBMID, EF_CBMIR +from pySim.ts_51_011 import EF_CBMID, EF_CBMIR, EF_ADN, EF_SMS, EF_MSISDN, EF_SMSP, EF_SMSS +from pySim.ts_51_011 import EF_SMSR, EF_DCK, EF_EXT, EF_CNL, EF_OPL, EF_MBI, EF_MWIS +from pySim.ts_51_011 import EF_MMSN, EF_MMSICP, EF_MMSUP, EF_MMSUCP, EF_VGCS, EF_VGCSS, EF_NIA +from pySim.ts_51_011 import EF_ACMmax, EF_AAeM, EF_eMLPP, EF_CMI import pySim.ts_102_221 @@ -422,8 +427,8 @@ # TS 31.103 Section 4.2.7 class EF_UST(TransparentEF): - def __init__(self, fid='6f38', sfid=0x04, name='EF.UST', desc='USIM Service Table'): - super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, size={1,17}) + def __init__(self, fid='6f38', sfid=0x04, name='EF.UST', desc='USIM Service Table', size={1,17}): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, size=size) # add those commands to the general commands of a TransparentEF self.shell_commands += [self.AddlShellCommands()] def _decode_bin(self, in_bin): @@ -464,23 +469,182 @@ desc='Emergency Call Codes'): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={4,20}) +# TS 31.102 Section 4.2.17 +class EF_LOCI(TransparentEF): + def __init__(self, fid='6f7e', sfid=0x0b, name='EF.LOCI', desc='Locationn information', size={11,11}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('tmsi'/HexAdapter(Bytes(4)), 'lai'/HexAdapter(Bytes(5)), 'rfu'/Int8ub, + 'lu_status'/Int8ub) + +# TS 31.102 Section 4.2.23 +class EF_PSLOCI(TransparentEF): + def __init__(self, fid='6f73', sfid=0x0c, name='EF.PSLOCI', desc='PS Locationn information', size={14,14}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('ptmsi'/HexAdapter(Bytes(4)), 'ptmsi_sig'/HexAdapter(Bytes(3)), + 'rai'/HexAdapter(Bytes(6)), 'rau_status'/Int8ub) + +# TS 31.102 Section 4.2.33 +class EF_ICI(CyclicEF): + def __init__(self, fid='6f80', sfid=0x14, name='EF.ICI', rec_len={28,48}, + desc='Incoming Call Information'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('alpha_id'/Bytes(this._.total_len-28), + 'len_of_bcd_contents'/Int8ub, + 'ton_npi'/Int8ub, + 'call_number'/BcdAdapter(Bytes(10)), + 'cap_cfg2_record_id'/Int8ub, + 'ext5_record_id'/Int8ub, + 'date_and_time'/BcdAdapter(Bytes(7)), + 'duration'/Int24ub, + 'status'/Byte, + 'link_to_phonebook'/Bytes(3)) + +# TS 31.102 Section 4.2.34 +class EF_OCI(CyclicEF): + def __init__(self, fid='6f81', sfid=0x15, name='EF.OCI', rec_len={27,47}, + desc='Outgoing Call Information'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('alpha_id'/Bytes(this._.total_len-27), + 'len_of_bcd_contents'/Int8ub, + 'ton_npi'/Int8ub, + 'call_number'/BcdAdapter(Bytes(10)), + 'cap_cfg2_record_id'/Int8ub, + 'ext5_record_id'/Int8ub, + 'date_and_time'/BcdAdapter(Bytes(7)), + 'duration'/Int24ub, + 'link_to_phonebook'/Bytes(3)) + +# TS 31.102 Section 4.2.35 +class EF_ICT(CyclicEF): + def __init__(self, fid='6f82', sfid=None, name='EF.ICT', rec_len={3,3}, + desc='Incoming Call Timer'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('accumulated_call_timer'/Int24ub) + +# TS 31.102 Section 4.2.38 +class EF_CCP2(LinFixedEF): + def __init__(self, fid='6f4f', sfid=0x16, name='EF.CCP2', desc='Capability Configuration Parameters 2'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={15,None}) + +# TS 31.102 Section 4.2.48 +class EF_ACL(TransparentEF): + def __init__(self, fid='6f57', sfid=None, name='EF.ACL', size={32,None}, + desc='Access Point Name Control List'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('num_of_apns'/Int8ub, 'tlvs'/GreedyBytes) + +# TS 31.102 Section 4.2.51 +class EF_START_HFN(TransparentEF): + def __init__(self, fid='6f5b', sfid=0x0f, name='EF.START-HFN', size={6,6}, + desc='Initialisation values for Hyperframe number'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('start_cs'/Int24ub, 'start_ps'/Int24ub) + +# TS 31.102 Section 4.2.52 +class EF_THRESHOLD(TransparentEF): + def __init__(self, fid='6f5c', sfid=0x10, name='EF.THRESHOLD', size={3,3}, + desc='Maximum value of START'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('max_start'/Int24ub) + +# TS 31.102 Section 4.2.77 +class EF_VGCSCA(TransRecEF): + def __init__(self, fid='6fd4', sfid=None, name='EF.VGCSCA', size={2,100}, rec_len=2, + desc='Voice Group Call Service Ciphering Algorithm'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) + self._construct = Struct('alg_v_ki_1'/Int8ub, 'alg_v_ki_2'/Int8ub) + +# TS 31.102 Section 4.2.79 +class EF_GBABP(TransparentEF): + def __init__(self, fid='6fd6', sfid=None, name='EF.GBABP', size={3,50}, + desc='GBA Bootstrapping parameters'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('rand'/LV, 'b_tid'/LV, 'key_lifetime'/LV) + +# TS 31.102 Section 4.2.80 +class EF_MSK(LinFixedEF): + def __init__(self, fid='6fd7', sfid=None, name='EF.MSK', desc='MBMS Service Key List'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={20,None}) + msk_ts_constr = Struct('msk_id'/Int32ub, 'timestamp_counter'/Int32ub) + self._construct = Struct('key_domain_id'/Bytes(3), + 'num_msk_id'/Int8ub, + 'msk_ids'/msk_ts_constr[this.num_msk_id]) + +# TS 31.102 Section 4.2.85 +class EF_EHPLMNPI(TransparentEF): + def __init__(self, fid='6fdb', sfid=None, name='EF.EHPLMNPI', size={1,1}, + desc='Equivalent HPLMN Presentation Indication'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('presentation_ind'/ + Enum(Byte, no_preference=0, display_highest_prio_only=1, display_all=2)) +# TS 31.102 Section 4.2.91 +class EF_EPSLOCI(TransparentEF): + def __init__(self, fid='6fe3', sfid=0x1e, name='EF.EPSLOCI', size={18,18}, + desc='EPS Location Information'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + upd_status_constr = Enum(Byte, updated=0, not_updated=1, roaming_not_allowed=2) + self._construct = Struct('guti'/Bytes(12), 'last_visited_registered_tai'/Bytes(5), + 'eps_update_status'/upd_status_constr) + +# TS 31.102 Section 4.2.96 +class EF_PWS(TransparentEF): + def __init__(self, fid='6fec', sfid=None, name='EF.PWS', desc='Public Warning System', size={1,1}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + pws_config = FlagsEnum(Byte, ignore_pws_in_hplmn_and_equivalent=1, ignore_pws_in_vplmn=2) + self._construct = Struct('pws_configuration'/pws_config) + +# TS 31.102 Section 4.2.101 +class EF_IPS(CyclicEF): + def __init__(self, fid='6ff1', sfid=None, name='EF.IPS', rec_len={4,4}, + desc='IMEI(SV) Pairing Status'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('status'/PaddedString(2, 'ascii'), + 'link_to_ef_ipd'/Int8ub, 'rfu'/Byte) + +###################################################################### +# DF.5GS +###################################################################### + +# TS 31.102 Section 4.4.11.2 +class EF_5GS3GPPLOCI(TransparentEF): + def __init__(self, fid='4f01', sfid=0x01, name='EF.5GS3GPPLOCI', size={20,20}, + desc='5S 3GP location information'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + upd_status_constr = Enum(Byte, updated=0, not_updated=1, roaming_not_allowed=2) + self._construct = Struct('5g_guti'/Bytes(13), 'last_visited_registered_tai_in_5gs'/Bytes(6), + '5gs_update_status'/upd_status_constr) + +# TS 31.102 Section 4.4.11.7 +class EF_UAC_AIC(TransparentEF): + def __init__(self, fid='4f06', sfid=0x06, name='EF.UAC_AIC', size={4,4}, + desc='UAC Access Identities Configuration'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + cfg_constr = FlagsEnum(Byte, multimedia_priority_service=1, + mission_critical_service=2) + self._construct = Struct('uac_access_id_config'/cfg_constr) + +# TS 31.102 Section 4.4.11.10 +class EF_OPL5G(LinFixedEF): + def __init__(self, fid='6f08', sfid=0x08, name='EF.OPL5G', desc='5GS Operator PLMN List'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={10,None}) + self._construct = Struct('tai'/Bytes(9), 'pnn_record_id'/Int8ub) + class DF_USIM_5GS(CardDF): def __init__(self, fid='5FC0', name='DF.5GS', desc='5GS related files'): super().__init__(fid=fid, name=name, desc=desc) files = [ # I'm looking at 31.102 R15.9 - TransparentEF('4F01', None, 'EF.5GS3GPPLOCI', '5GS 3GPP location information', size={20,20}), - TransparentEF('4F02', None, 'EF.5GSN3GPPLOCI', '5GS non-3GPP location information', size={20,20}), - #LinFixedEF('4F03', None, 'EF.5GS3GPPNSC', '5GS 3GPP Access NAS Security Context'), - #LinFixedEF('4F04', None, 'EF.5GSN3GPPNSC', '5GS non-3GPP Access NAS Security Context'), - TransparentEF('4F05', None, 'EF.5GAUTHKEYS', '5G authentication keys', size={68, None}), - TransparentEF('4F06', None, 'EF.UAC_AIC', 'UAC Access Identities Configuration', size={4, 4}), - EF_SUCI_Calc_Info(), #TransparentEF('4F07', None, 'EF.SUCI_Calc_Info', 'SUCI Calculation Information', size={2, None}), - LinFixedEF('4F08', None, 'EF.OPL5G', '5GS Operator PLMN List', rec_len={10, None}), - # TransparentEF('4F09', None, 'EF.NSI', 'Network Specific Identifier'), # FFS - TransparentEF('4F0A', None, 'EF.Routing_Indicator', 'Routing Indicator', size={4,4}), + EF_5GS3GPPLOCI(), + EF_5GS3GPPLOCI('4f02', 0x02, 'EF.5GSN3GPPLOCI', '5GS non-3GPP location information'), + LinFixedEF('4F03', 0x03, 'EF.5GS3GPPNSC', '5GS 3GPP Access NAS Security Context', rec_len={57,None}), + LinFixedEF('4F04', 0x04, 'EF.5GSN3GPPNSC', '5GS non-3GPP Access NAS Security Context', rec_len={57,None}), + TransparentEF('4F05', 0x05, 'EF.5GAUTHKEYS', '5G authentication keys', size={68, None}), + EF_UAC_AIC(), + EF_SUCI_Calc_Info(), + EF_OPL5G(), + TransparentEF('4F09', 0x09, 'EF.NSI', 'Network Specific Identifier'), + TransparentEF('4F0A', 0x0a, 'EF.Routing_Indicator', 'Routing Indicator', size={4,4}), ] - self.add_files(files) class ADF_USIM(CardADF): @@ -498,7 +662,7 @@ EF_xPLMNwAcT('6f60', 0x0a, 'EF.PLMNwAcT', 'User controlled PLMN Selector with Access Technology'), TransparentEF('6f31', 0x12, 'EF.HPPLMN', 'Higher Priority PLMN search period'), - # EF.ACMmax + EF_ACMmax(), EF_UST(), CyclicEF('6f39', None, 'EF.ACM', 'Accumulated call meter', rec_len={3,3}), TransparentEF('6f3e', None, 'EF.GID1', 'Group Identifier Level 1'), @@ -508,11 +672,92 @@ EF_CBMI(), EF_ACC(sfid=0x06), EF_PLMNsel('6f7b', 0x0d, 'EF.FPLMN', 'Forbidden PLMNs', size={12,None}), - TransparentEF('6f7e', 0x0b, 'EF.LOCI', 'Locationn information', size={11,11}), + EF_LOCI(), EF_AD(sfid=0x03), EF_CBMID(sfid=0x0e), EF_ECC(), EF_CBMIR(), + EF_PSLOCI(), + EF_ADN('6f3b', None, 'EF.FDN', 'Fixed Dialling Numbers'), + EF_SMS('6f3c', None), + EF_MSISDN(), + EF_SMSP(), + EF_SMSS(), + EF_ADN('6f49', None, 'EF.SDN', 'Service Dialling Numbers'), + EF_EXT('6f4b', None, 'EF.EXT2', 'Extension2 (FDN)'), + EF_EXT('6f4c', None, 'EF.EXT3', 'Extension2 (SDN)'), + EF_SMSR(), + EF_ICI(), + EF_OCI(), + EF_ICT(), + EF_ICT('6f83', None, 'EF.OCT', 'Outgoing Call Timer'), + EF_EXT('6f4e', None, 'EF.EXT5', 'Extension5 (ICI/OCI/MSISDN)'), + EF_CCP2(), + EF_eMLPP(), + EF_AAeM(), + # EF_Hiddenkey + EF_ADN('6f4d', None, 'EF.BDN', 'Barred Dialling Numbers'), + EF_EXT('6f55', None, 'EF.EXT4', 'Extension4 (BDN/SSC)'), + EF_CMI(), + EF_UST('6f56', 0x05, 'EF.EST', 'Enabled Services Table', size={1,None}), + EF_ACL(), + EF_DCK(), + EF_CNL(), + EF_START_HFN(), + EF_THRESHOLD(), + EF_xPLMNwAcT('6f61', 0x11, 'EF.OPLMNwAcT', + 'User controlled PLMN Selector with Access Technology'), + EF_ARR('6f06', 0x17), + TransparentEF('6fc4', None, 'EF.NETPAR', 'Network Parameters'), + TransparentEF('6fc5', 0x19, 'EF.PNN', 'PLMN Network Name'), + EF_OPL(), + EF_ADN('6fc7', None, 'EF.MBDN', 'Mailbox Dialling Numbers'), + EF_MBI(), + EF_MWIS(), + EF_ADN('6fcb', None, 'EF.CFIS', 'Call Forwarding Indication Status'), + EF_EXT('6fcc', None, 'EF.EXT7', 'Extension7 (CFIS)'), + TransparentEF('6fcd', None, 'EF.SPDI', 'Service Provider Display Information'), + EF_MMSN(), + EF_EXT('6fcf', None, 'EF.EXT8', 'Extension8 (MMSN)'), + EF_MMSICP(), + EF_MMSUP(), + EF_MMSUCP(), + EF_NIA(), + EF_VGCS(), + EF_VGCSS(), + EF_VGCS('6fb3', None, 'EF.VBS', 'Voice Broadcast Service'), + EF_VGCSS('6fb4', None, 'EF.VBSS', 'Voice Broadcast Service Status'), + EF_VGCSCA(), + EF_VGCSCA('6fd5', None, 'EF.VBCSCA', 'Voice Broadcast Service Ciphering Algorithm'), + EF_GBABP(), + EF_MSK(), + TransparentEF('6fd8', None, 'EF.MUK', 'MBMS User Key'), + TransparentEF('6fda', None, 'EF.GBANL', 'GBA NFA List'), + EF_PLMNsel('6fd9', 0x1d, 'EF.EHPLMN', 'Equivalent HPLMN', size={12,None}), + EF_EHPLMNPI(), + TransparentEF('6fdd', None, 'EF.NAFKCA', 'NAF Key Centre Address'), + TransparentEF('6fde', None, 'EF.SPNI', 'Service Provider Name Icon'), + LinFixedEF('6fdf', None, 'EF.PNNI', 'PLMN Network Name Icon'), + TransparentEF('6fe2', None, 'EF.NCP-IP', 'Network Connectivity Parameters for USIM IP connections'), + EF_EPSLOCI('6fe3', 0x1e, 'EF.EPSLOCI', 'EPS location information'), + LinFixedEF('6fe4', 0x18, 'EF.EPSNSC', 'EPS NAS Security Context', rec_len={54,128}), + TransparentEF('6fe6', None, 'EF.UFC', 'USAT Facility Control', size={1,16}), + TransparentEF('6fe8', None, 'EF.NASCONFIG', 'Non Access Stratum Configuration'), + # UICC IARI (only in cards that have no ISIM) + EF_PWS(), + LinFixedEF('6fed', None, 'EF.FDNURI', 'Fixed Dialling Numbers URI'), + LinFixedEF('6fee', None, 'EF.BDNURI', 'Barred Dialling Numbers URI'), + LinFixedEF('6fef', None, 'EF.SDNURI', 'Service Dialling Numbers URI'), + EF_IPS(), + # FIXME: from EF_ePDGid onwards + # FIXME: DF_SoLSA + # FIXME: DF_PHONEBOOK + # FIXME: DF_GSM_ACCESS + # FIXME: DF_WLAN + # FIXME: DF_HNB + # FIXME: DF_ProSe + # FIXME: DF_ACDC + # FIXME: DF_TV DF_USIM_5GS(), ] self.add_files(files) diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index bd71114..498b9a4 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -332,6 +332,9 @@ from pySim.utils import * from struct import pack, unpack +from construct import * +from construct import Optional as COptional +from pySim.construct import HexAdapter, BcdAdapter from pySim.filesystem import * import pySim.ts_102_221 @@ -395,6 +398,35 @@ def __init__(self, fid='6f42', sfid=None, name='EF.SMSP', desc='Short message service parameters'): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={28, None}) +# TS 51.011 Section 10.5.7 +class EF_SMSS(TransparentEF): + class MemCapAdapter(Adapter): + def _decode(self, obj, context, path): + return False if obj & 1 else True + def _encode(self, obj, context, path): + return 0 if obj else 1 + def __init__(self, fid='6f43', sfid=None, name='EF.SMSS', desc='SMS status', size={2,8}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('last_used_tpmr'/Int8ub, 'memory_capacity_exceeded'/self.MemCapAdapter(Int8ub)) + +# TS 51.011 Section 10.5.8 +class EF_SMSR(LinFixedEF): + def __init__(self, fid='6f47', sfid=None, name='EF.SMSR', desc='SMS status reports', rec_len={30,30}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('sms_record_id'/Int8ub, 'sms_status_report'/HexAdapter(Bytes(29))) + +class EF_EXT(LinFixedEF): + def __init__(self, fid, sfid=None, name='EF.EXT', desc='Extension', rec_len={13,13}): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('record_type'/Int8ub, 'extension_data'/HexAdapter(Bytes(11)), 'identifier'/Int8ub) + +# TS 51.011 Section 10.5.16 +class EF_CMI(LinFixedEF): + def __init__(self, fid='6f58', sfid=None, name='EF.CMI', rec_len={2,21}, + desc='Comparison Method Informatoin'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('alpha_id'/Bytes(this._.total_len-1), 'comparison_method_id'/Int8ub) + class DF_TELECOM(CardDF): def __init__(self, fid='7f10', name='DF.TELECOM', desc=None): super().__init__(fid=fid, name=name, desc=desc) @@ -406,10 +438,15 @@ LinFixedEF(fid='6f4f', name='EF.ECCP', desc='Extended Capability Configuration Parameters', rec_len={15,32}), EF_MSISDN(), EF_SMSP(), - TransparentEF(fid='6f43', name='EF.SMSS', desc='SMS status', size={2,8}), - # LND, SDN, EXT1, EXT2, EXT3, BDN, EXT4 - LinFixedEF(fid='6f47', name='EF.SMSR', desc='SMS status reports', rec_len={30,30}), - # CMI + EF_SMSS(), + # LND, SDN + EF_EXT('6f4a', None, 'EF.EXT1', 'Extension1 (ADN/SSC)'), + EF_EXT('6f4b', None, 'EF.EXT2', 'Extension2 (FDN/SSC)'), + EF_EXT('6f4c', None, 'EF.EXT3', 'Extension3 (SDN)'), + EF_ADN(fid='6f4d', name='EF.BDN', desc='Barred Dialling Numbers'), + EF_EXT('6f4e', None, 'EF.EXT4', 'Extension4 (BDN/SSC)'), + EF_SMSR(), + EF_CMI(), ] self.add_files(files) @@ -455,6 +492,13 @@ else: return enc_plmn(in_json['mcc'], in_json['mnc']) +# TS 51.011 Section 10.3.6 +class EF_ACMmax(TransparentEF): + def __init__(self, fid='6f37', sfid=None, name='EF.ACMmax', size={3,3}, + desc='ACM maximum value'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('acm_max'/Int24ub) + # TS 51.011 Section 10.3.7 class EF_ServiceTable(TransparentEF): def __init__(self, fid, sfid, name, desc, size, table): @@ -499,6 +543,14 @@ def _encode_bin(self, abstract): return pack('!H', abstract['acc']) +# TS 51.011 Section 10.3.16 +class EF_LOCI(TransparentEF): + def __init__(self, fid='6f7e', sfid=None, name='EF.LOCI', desc='Location Information', size={11,11}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('tmsi'/Bytes(4), 'lai'/Bytes(5), 'tmsi_time'/Int8ub, + 'lu_status'/Enum(Byte, updated=0, not_updated=1, plmn_not_allowed=2, + location_area_not_allowed=3)) + # TS 51.011 Section 10.3.18 class EF_AD(TransparentEF): OP_MODE = { @@ -526,7 +578,37 @@ res += pack('!B', abstract['len_of_mnc_in_imsi']) return res -# TS 51.011 Section 10.3.13 +# TS 51.011 Section 10.3.20 / 10.3.22 +class EF_VGCS(TransRecEF): + def __init__(self, fid='6fb1', sfid=None, name='EF.VGCS', size={4,200}, rec_len=4, + desc='Voice Group Call Service'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) + self._construct = BcdAdapter(Bytes(4)) + +# TS 51.011 Section 10.3.21 / 10.3.23 +class EF_VGCSS(TransparentEF): + def __init__(self, fid='6fb2', sfid=None, name='EF.VGCSS', size={7,7}, + desc='Voice Group Call Service Status'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = BitStruct('flags'/Bit[50], Padding(6, pattern=b'\xff')) + +# TS 51.011 Section 10.3.24 +class EF_eMLPP(TransparentEF): + def __init__(self, fid='6fb5', sfid=None, name='EF.eMLPP', size={2,2}, + desc='enhanced Multi Level Pre-emption and Priority'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + FlagsConstruct = FlagsEnum(Byte, A=1, B=2, zero=4, one=8, two=16, three=32, four=64) + self._construct = Struct('levels'/FlagsConstruct, 'fast_call_setup_cond'/FlagsConstruct) + +# TS 51.011 Section 10.3.25 +class EF_AAeM(TransparentEF): + def __init__(self, fid='6fb6', sfid=None, name='EF.AAeM', size={1,1}, + desc='Automatic Answer for eMLPP Service'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + FlagsConstruct = FlagsEnum(Byte, A=1, B=2, zero=4, one=8, two=16, three=32, four=64) + self._construct = Struct('auto_answer_prio_levels'/FlagsConstruct) + +# TS 51.011 Section 10.3.26 class EF_CBMID(EF_CBMI): def __init__(self, fid='6f48', sfid=None, name='EF.CBMID', size={2,None}, rec_len=2, desc='Cell Broadcast Message Identifier for Data Download'): @@ -544,6 +626,52 @@ desc='Cell Broadcast message identifier range selection'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) +# TS 51.011 Section 10.3.29 +class EF_DCK(TransparentEF): + def __init__(self, fid='6f2c', sfid=None, name='EF.DCK', size={16,16}, + desc='Depersonalisation Control Keys'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('network'/BcdAdapter(Bytes(4)), + 'network_subset'/BcdAdapter(Bytes(4)), + 'service_provider'/BcdAdapter(Bytes(4)), + 'corporate'/BcdAdapter(Bytes(4))) +# TS 51.011 Section 10.3.30 +class EF_CNL(TransRecEF): + def __init__(self, fid='6f32', sfid=None, name='EF.CNL', size={6,None}, rec_len=6, + desc='Co-operative Network List'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) + def _decode_record_hex(self, in_hex): + (in_plmn, sub, svp, corp) = unpack('!3sBBB', h2b(in_hex)) + res = dec_plmn(b2h(in_plmn)) + res['network_subset'] = sub + res['service_provider_id'] = svp + res['corporate_id'] = corp + return res + def _encode_record_hex(self, in_json): + plmn = enc_plmn(in_json['mcc'], in_json['mnc']) + return b2h(pack('!3sBBB', h2b(plmn), res['network_subset'], res['service_provider_id'], + res['corporate_id'])) + +# TS 51.011 Section 10.3.31 +class EF_NIA(LinFixedEF): + def __init__(self, fid='6f51', sfid=None, name='EF.NIA', rec_len={1,32}, + desc='Network\'s Indication of Alerting'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('alerting_category'/Int8ub, 'category'/GreedyBytes) + +# TS 51.011 Section 10.3.32 +class EF_Kc(TransparentEF): + def __init__(self, fid='6f20', sfid=None, name='EF.Kc', desc='Ciphering key Kc', size={9,9}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('kc'/HexAdapter(Bytes(8)), 'cksn'/Int8ub) + +# TS 51.011 Section 10.3.33 +class EF_LOCIGPRS(TransparentEF): + def __init__(self, fid='6f53', sfid=None, name='EF.LOCIGPRS', desc='GPRS Location Information', size={14,14}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('ptmsi'/Bytes(4), 'ptmsi_sig'/Int8ub, 'rai'/Bytes(6), + 'rau_status'/Enum(Byte, updated=0, not_updated=1, plmn_not_allowed=2, + routing_area_not_allowed=3)) # TS 51.011 Section 10.3.35..37 class EF_xPLMNwAcT(TransRecEF): @@ -589,6 +717,68 @@ u16 |= 0x0088 return '%04X'%(u16) +# TS 51.011 Section 10.3.38 +class EF_CPBCCH(TransRecEF): + def __init__(self, fid='6f63', sfid=None, name='EF.CPBCCH', size={2,14}, rec_len=2, + desc='CPBCCH Information'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) + self._construct = Struct('cpbcch'/Int16ub) + +# TS 51.011 Section 10.3.39 +class EF_InvScan(TransparentEF): + def __init__(self, fid='6f64', sfid=None, name='EF.InvScan', size={1,1}, + desc='IOnvestigation Scan'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = FlagsEnum(Byte, in_limited_service_mode=1, after_successful_plmn_selection=2) + +# TS 51.011 Section 10.3.42 +class EF_OPL(LinFixedEF): + def __init__(self, fid='6fc6', sfid=None, name='EF.OPL', rec_len={8,8}, desc='Operator PLMN List'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('lai'/Bytes(5), 'pnn_record_id'/Int8ub) + +# TS 51.011 Section 10.3.44 + TS 31.102 4.2.62 +class EF_MBI(LinFixedEF): + def __init__(self, fid='6fc9', sfid=None, name='EF.MBI', rec_len={4,5}, desc='Mailbox Identifier'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('mbi_voicemail'/Int8ub, 'mbi_fax'/Int8ub, 'mbi_email'/Int8ub, + 'mbi_other'/Int8ub, 'mbi_videocall'/COptional(Int8ub)) + +# TS 51.011 Section 10.3.45 + TS 31.102 4.2.63 +class EF_MWIS(LinFixedEF): + def __init__(self, fid='6fca', sfid=None, name='EF.MWIS', rec_len={5,6}, + desc='Message Waiting Indication Status'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('mwi_status'/FlagsEnum(Byte, voicemail=1, fax=2, email=4, other=8, videomail=16), + 'num_waiting_voicemail'/Int8ub, + 'num_waiting_fax'/Int8ub, 'num_waiting_email'/Int8ub, + 'num_waiting_other'/Int8ub, 'num_waiting_videomail'/COptional(Int8ub)) + +# TS 51.011 Section 10.3.51 +class EF_MMSN(LinFixedEF): + def __init__(self, fid='6fce', sfid=None, name='EF.MMSN', rec_len={4,20}, desc='MMS Notification'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('mms_status'/Bytes(2), 'mms_implementation'/Bytes(1), + 'mms_notification'/Bytes(this._.total_len-4), 'ext_record_nr'/Byte) + +# TS 51.011 Section 10.3.53 +class EF_MMSICP(TransparentEF): + def __init__(self, fid='6fd0', sfid=None, name='EF.MMSICP', size={1,None}, + desc='MMS Issuer Connectivity Parameters'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + +# TS 51.011 Section 10.3.54 +class EF_MMSUP(TransparentEF): + def __init__(self, fid='6fd1', sfid=None, name='EF.MMSUP', size={1,None}, + desc='MMS User Preferences'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + +# TS 51.011 Section 10.3.55 +class EF_MMSUCP(TransparentEF): + def __init__(self, fid='6fd2', sfid=None, name='EF.MMSUCP', size={1,None}, + desc='MMS User Connectivity Parameters'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + class DF_GSM(CardDF): def __init__(self, fid='7f20', name='DF.GSM', desc='GSM Network related files'): @@ -596,12 +786,12 @@ files = [ EF_LP(), EF_IMSI(), - TransparentEF('5f20', None, 'EF.Kc', 'Ciphering key Kc'), + EF_Kc(), EF_PLMNsel(), TransparentEF('6f31', None, 'EF.HPPLMN', 'Higher Priority PLMN search period'), - # ACMmax - EF_ServiceTable('6f37', None, 'EF.SST', 'SIM service table', table=EF_SST_map, size={2,16}), - CyclicEF('6f39', None, 'EF.ACM', 'Accumulated call meter', rec_len={4,3}), + EF_ACMmax(), + EF_ServiceTable('6f38', None, 'EF.SST', 'SIM service table', table=EF_SST_map, size={2,16}), + CyclicEF('6f39', None, 'EF.ACM', 'Accumulated call meter', rec_len={3,3}), TransparentEF('6f3e', None, 'EF.GID1', 'Group Identifier Level 1'), TransparentEF('6f3f', None, 'EF.GID2', 'Group Identifier Level 2'), EF_SPN(), @@ -610,21 +800,45 @@ TransparentEF('6f7f', None, 'EF.BCCH', 'Broadcast control channels', size={16,16}), EF_ACC(), EF_PLMNsel('6f7b', None, 'EF.FPLMN', 'Forbidden PLMNs', size={12,12}), - TransparentEF('6f7e', None, 'EF.LOCI', 'Locationn information', size={11,11}), + EF_LOCI(), EF_AD(), TransparentEF('6fa3', None, 'EF.Phase', 'Phase identification', size={1,1}), - # TODO EF.VGCS VGCSS, VBS, VBSS, eMLPP, AAeM + EF_VGCS(), + EF_VGCSS(), + EF_VGCS('6fb3', None, 'EF.VBS', 'Voice Broadcast Service'), + EF_VGCSS('6fb4', None, 'EF.VBSS', 'Voice Broadcast Service Status'), + EF_eMLPP(), + EF_AAeM(), EF_CBMID(), EF_ECC(), EF_CBMIR(), - # DCK, CNL, NIA, KcGRS, LOCIGPRS, SUME + EF_DCK(), + EF_CNL(), + EF_NIA(), + EF_Kc('6f52', None, 'EF.KcGPRS', 'GPRS Ciphering key KcGPRS'), + EF_LOCIGPRS(), + TransparentEF('6f54', None, 'SetUpMenu Elements'), EF_xPLMNwAcT('6f60', None, 'EF.PLMNwAcT', 'User controlled PLMN Selector with Access Technology'), EF_xPLMNwAcT('6f61', None, 'EF.OPLMNwAcT', 'Operator controlled PLMN Selector with Access Technology'), EF_xPLMNwAcT('6f62', None, 'EF.HPLMNwAcT', 'HPLMN Selector with Access Technology'), - # CPBCCH, InvScan, PNN, OPL, MBDN, MBI, MWIS, CFIS, EXT5, EXT6, EXT7, SPDI, MMSN, EXT8 - # MMSICP, MMSUP, MMSUCP + EF_CPBCCH(), + EF_InvScan(), + TransparentEF('6fc5', None,'EF.PNN', 'PLMN Network Name'), + EF_OPL(), + EF_ADN('6fc7', None, 'EF.MBDN', 'Mailbox Dialling Numbers'), + EF_MBI(), + EF_MWIS(), + EF_ADN('6fcb', None, 'EF.CFIS', 'Call Forwarding Indication Status'), + EF_EXT('6fc8', None, 'EF.EXT6', 'Externsion6 (MBDN)'), + EF_EXT('6fcc', None, 'EF.EXT7', 'Externsion7 (CFIS)'), + TransparentEF('6fcd', None, 'EF.SPDI', 'Service Provider Display Information'), + EF_MMSN(), + EF_EXT('6fcf', None, 'EF.EXT8', 'Extension8 (MMSN)'), + EF_MMSICP(), + EF_MMSUP(), + EF_MMSUCP(), ] self.add_files(files) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I91475df4a5eaca423473aaebba8c69c54c9a0c1a Gerrit-Change-Number: 23711 Gerrit-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 Apr 10 22:11:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:11:29 +0000 Subject: Change in pysim[master]: lots of file definitions for classic SIM and USIM 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/+/23711 to look at the new patch set (#2). Change subject: lots of file definitions for classic SIM and USIM ...................................................................... lots of file definitions for classic SIM and USIM Change-Id: I91475df4a5eaca423473aaebba8c69c54c9a0c1a --- M pySim/ts_31_102.py M pySim/ts_51_011.py 2 files changed, 490 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/11/23711/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I91475df4a5eaca423473aaebba8c69c54c9a0c1a Gerrit-Change-Number: 23711 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 Apr 10 22:12:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:12:40 +0000 Subject: Change in pysim[master]: pySim/filesystem: Fix more Python 3.5 compatibility issues In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23701 ) Change subject: pySim/filesystem: Fix more Python 3.5 compatibility issues ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I277e86a0e6b16d53d2b5b48b74915ac9a48a4211 Gerrit-Change-Number: 23701 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 22:12:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 22:12:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:12:48 +0000 Subject: Change in pysim[master]: shell: add edit_{record, binary}_decoded shell commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23681 ) Change subject: shell: add edit_{record,binary}_decoded shell commands ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 Gerrit-Change-Number: 23681 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 10 Apr 2021 22:12:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 22:12:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:12:55 +0000 Subject: Change in pysim[master]: Wavemobile: adjust test expectations about binary EF.AD content In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23699 ) Change subject: Wavemobile: adjust test expectations about binary EF.AD content ...................................................................... Wavemobile: adjust test expectations about binary EF.AD content Change-Id: Ib6ebe063a4d0d90b1cdc9bc7ec0773cef8d87fbc --- M pysim-testdata/Wavemobile-SIM.ok 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved diff --git a/pysim-testdata/Wavemobile-SIM.ok b/pysim-testdata/Wavemobile-SIM.ok index 6cb4e2b..1c78cc9 100644 --- a/pysim-testdata/Wavemobile-SIM.ok +++ b/pysim-testdata/Wavemobile-SIM.ok @@ -49,7 +49,7 @@ HPLMNAcT: Can't read file -- SW match failed! Expected 9000 and got 6a82. ACC: abce MSISDN: Not available -Administrative data: 00ffff02 +Administrative data: 00000102 MS operation mode: normal operation Ciphering Indicator: enabled SIM Service Table: ff33ff0f3c00ff0f000cf0c0f0030000 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib6ebe063a4d0d90b1cdc9bc7ec0773cef8d87fbc Gerrit-Change-Number: 23699 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 Sat Apr 10 22:12:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:12:56 +0000 Subject: Change in pysim[master]: pySim/filesystem: Fix more Python 3.5 compatibility issues In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23701 ) Change subject: pySim/filesystem: Fix more Python 3.5 compatibility issues ...................................................................... pySim/filesystem: Fix more Python 3.5 compatibility issues Change-Id: I277e86a0e6b16d53d2b5b48b74915ac9a48a4211 --- M pySim/filesystem.py 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 097661d..d2b8443 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -336,7 +336,7 @@ def __init__(self, aid:str, **kwargs): super().__init__(**kwargs) # reference to CardApplication may be set from CardApplication constructor - self.application:Optional[CardApplication] = None + self.application = None # type: Optional[CardApplication] self.aid = aid # Application Identifier mf = self.get_mf() if mf: @@ -856,7 +856,7 @@ """ self.mf = CardMF() self.card = card - self.selected_file:CardDF = self.mf + self.selected_file = self.mf # type: CardDF self.profile = profile # add application ADFs + MF-files from profile apps = self._match_applications() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I277e86a0e6b16d53d2b5b48b74915ac9a48a4211 Gerrit-Change-Number: 23701 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 Apr 10 22:12:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:12:56 +0000 Subject: Change in pysim[master]: shell: add edit_{record, binary}_decoded shell commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23681 ) Change subject: shell: add edit_{record,binary}_decoded shell commands ...................................................................... shell: add edit_{record,binary}_decoded shell commands This allows the user to edit the file/record contents in its JSON representation inside the standard system text editor. Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 --- M docs/shell.rst M pySim/filesystem.py 2 files changed, 78 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/shell.rst b/docs/shell.rst index 652e572..06e7f42 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -206,6 +206,24 @@ :func: LinFixedEF.ShellCommands.upd_rec_dec_parser +edit_record_decoded +~~~~~~~~~~~~~~~~~~~ +.. argparse:: + :module: pySim.filesystem + :func: LinFixedEF.ShellCommands.edit_rec_dec_parser + +This command will read the selected record, decode it to its JSON representation, save +that JSON to a temporary file on your computer, and launch your configured text editor. + +You may then perform whatever modifications to the JSON representation, save + leave your +text editor. + +Afterwards, the modified JSON will be re-encoded to the binary format, and the result written +back to the record on the SIM card. + +This allows for easy interactive modification of records. + + Transparent EF commands ----------------------- @@ -268,6 +286,19 @@ } +edit_binary_decoded +~~~~~~~~~~~~~~~~~~~ +This command will read the selected binary EF, decode it to its JSON representation, save +that JSON to a temporary file on your computer, and launch your configured text editor. + +You may then perform whatever modifications to the JSON representation, save + leave your +text editor. + +Afterwards, the modified JSON will be re-encoded to the binary format, and the result written +to the SIM card. + +This allows for easy interactive modification of file contents. + cmd2 settable parameters ------------------------ diff --git a/pySim/filesystem.py b/pySim/filesystem.py index d2b8443..e771f3c 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -25,6 +25,7 @@ # along with this program. If not, see . import code +import tempfile import json import cmd2 @@ -433,6 +434,26 @@ if data: self._cmd.poutput_json(data) + def do_edit_binary_decoded(self, opts): + """Edit the JSON representation of the EF contents in an editor.""" + (orig_json, sw) = self._cmd.rs.read_binary_dec() + with tempfile.TemporaryDirectory(prefix='pysim_') as dirname: + filename = '%s/file' % dirname + # write existing data as JSON to file + with open(filename, 'w') as text_file: + json.dump(orig_json, text_file, indent=4) + # run a text editor + self._cmd._run_editor(filename) + with open(filename, 'r') as text_file: + edited_json = json.load(text_file) + if edited_json == orig_json: + self._cmd.poutput("Data not modified, skipping write") + else: + (data, sw) = self._cmd.rs.update_binary_dec(edited_json) + if data: + self._cmd.poutput_json(data) + + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:CardDF=None, size={1,None}): """ @@ -622,6 +643,32 @@ if data: self._cmd.poutput(data) + edit_rec_dec_parser = argparse.ArgumentParser() + edit_rec_dec_parser.add_argument('record_nr', type=int, help='Number of record to be edited') + @cmd2.with_argparser(edit_rec_dec_parser) + def do_edit_record_decoded(self, opts): + """Edit the JSON representation of one record in an editor.""" + (orig_json, sw) = self._cmd.rs.read_record_dec(opts.record_nr) + dirname = tempfile.mkdtemp(prefix='pysim_') + try: + filename = '%s/file' % dirname + # write existing data as JSON to file + with open(filename, 'w') as text_file: + json.dump(orig_json, text_file, indent=4) + # run a text editor + self._cmd._run_editor(filename) + with open(filename, 'r') as text_file: + edited_json = json.load(text_file) + if edited_json == orig_json: + self._cmd.poutput("Data not modified, skipping write") + else: + (data, sw) = self._cmd.rs.update_record_dec(opts.record_nr, edited_json) + if data: + self._cmd.poutput_json(data) + finally: + shutil.rmtree(dirname) + + def __init__(self, fid:str, sfid:str=None, name:str=None, desc:str=None, parent:Optional[CardDF]=None, rec_len={1,None}): """ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf6a6e8529e7664c5645519fb4bdd55b35f34664 Gerrit-Change-Number: 23681 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sat Apr 10 22:13:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:08 +0000 Subject: Change in pysim[master]: transport: Make all calls go through base class send_apdu_raw() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23696 ) Change subject: transport: Make all calls go through base class send_apdu_raw() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id0593a2e6d846cc3151443f1022ae7ee030e6673 Gerrit-Change-Number: 23696 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 22: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 Sat Apr 10 22:13:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:19 +0000 Subject: Change in pysim[master]: transport: Pass arbitrary kwargs to base-class constructor In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23697 ) Change subject: transport: Pass arbitrary kwargs to base-class constructor ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3cd5ba87cf53409ea97196d5789ed28eef072c68 Gerrit-Change-Number: 23697 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 22:13:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 22:13:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:31 +0000 Subject: Change in pysim[master]: shell: Add 'apdu_trace' settable parameter for hex-dumping APDUs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23698 ) Change subject: shell: Add 'apdu_trace' settable parameter for hex-dumping APDUs ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0c957c0b86473413f31e4bd8bc4e633fc1470222 Gerrit-Change-Number: 23698 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 22:13: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 Apr 10 22:13:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:44 +0000 Subject: Change in pysim[master]: extend JSONEncoder to serialze 'bytes' style objects as hex strings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23702 ) Change subject: extend JSONEncoder to serialze 'bytes' style objects as hex strings ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23702 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9c9eff0556d9d196e64553b5276e162f69d0c18f Gerrit-Change-Number: 23702 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 22:13: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 Sat Apr 10 22:13:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:50 +0000 Subject: Change in pysim[master]: pySim-shell: Use poutput_json() whenever applicable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23703 ) Change subject: pySim-shell: Use poutput_json() whenever applicable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie023669e77311350ade4f8dbc65431e71b586052 Gerrit-Change-Number: 23703 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 22:13: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 Apr 10 22:13:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:54 +0000 Subject: Change in pysim[master]: setup.py: add missing comma in list of dependencies In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23704 ) Change subject: setup.py: add missing comma in list of dependencies ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93d8c67cdfacc1f30307c8cfb38924fb2cbabbe Gerrit-Change-Number: 23704 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 10 Apr 2021 22:13:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 22:13:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:57 +0000 Subject: Change in pysim[master]: transport: Make all calls go through base class send_apdu_raw() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23696 ) Change subject: transport: Make all calls go through base class send_apdu_raw() ...................................................................... transport: Make all calls go through base class send_apdu_raw() This allows us to add APDU tracing at one central location in the code Change-Id: Id0593a2e6d846cc3151443f1022ae7ee030e6673 --- M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py 5 files changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index fb8f31d..923787b 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -68,7 +68,7 @@ data : string (in hex) of returned data (ex. "074F4EFFFF") sw : string (in hex) of status word (ex. "9000") """ - pass + return self._send_apdu_raw(pdu) def send_apdu(self, pdu): """Sends an APDU and auto fetch response data diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py index 467d5ee..3c223e6 100644 --- a/pySim/transport/calypso.py +++ b/pySim/transport/calypso.py @@ -115,7 +115,7 @@ def wait_for_card(self, timeout = None, newcardonly = False): pass # Nothing to do really ... - def send_apdu_raw(self, pdu): + def _send_apdu_raw(self, pdu): # Request FULL reset req_msg = L1CTLMessageSIM(h2b(pdu)) diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py index fccd388..f5a0f23 100644 --- a/pySim/transport/modem_atcmd.py +++ b/pySim/transport/modem_atcmd.py @@ -97,7 +97,7 @@ def wait_for_card(self, timeout=None, newcardonly=False): pass # Nothing to do really ... - def send_apdu_raw(self, pdu): + def _send_apdu_raw(self, pdu): # Prepare the command as described in 8.17 cmd = 'AT+CSIM=%d,\"%s\"' % (len(pdu), pdu) diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index f08f71a..2433e79 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -71,7 +71,7 @@ self.connect() return 1 - def send_apdu_raw(self, pdu): + def _send_apdu_raw(self, pdu): apdu = h2i(pdu) diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py index 6d39303..22788a9 100644 --- a/pySim/transport/serial.py +++ b/pySim/transport/serial.py @@ -180,7 +180,7 @@ def _rx_byte(self): return self._sl.read() - def send_apdu_raw(self, pdu): + def _send_apdu_raw(self, pdu): pdu = h2b(pdu) data_len = ord(pdu[4]) # P3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id0593a2e6d846cc3151443f1022ae7ee030e6673 Gerrit-Change-Number: 23696 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 Apr 10 22:13:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:58 +0000 Subject: Change in pysim[master]: transport: Pass arbitrary kwargs to base-class constructor In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23697 ) Change subject: transport: Pass arbitrary kwargs to base-class constructor ...................................................................... transport: Pass arbitrary kwargs to base-class constructor Change-Id: I3cd5ba87cf53409ea97196d5789ed28eef072c68 --- M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py 5 files changed, 15 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 923787b..c176f8a 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -28,7 +28,8 @@ class LinkBase(object): """Base class for link/transport to card.""" - sw_interpreter = None + def __init__(self, sw_interpreter=None): + self.sw_interpreter = sw_interpreter def set_sw_interpreter(self, interp): """Set an (optional) status word interpreter.""" @@ -112,7 +113,7 @@ raise SwMatchError(rv[1], sw.lower(), self.sw_interpreter) return rv -def init_reader(opts) -> Optional[LinkBase]: +def init_reader(opts, **kwargs) -> Optional[LinkBase]: """ Init card reader driver """ @@ -121,19 +122,19 @@ if opts.pcsc_dev is not None: print("Using PC/SC reader interface") from pySim.transport.pcsc import PcscSimLink - sl = PcscSimLink(opts.pcsc_dev) + sl = PcscSimLink(opts.pcsc_dev, **kwargs) elif opts.osmocon_sock is not None: print("Using Calypso-based (OsmocomBB) reader interface") from pySim.transport.calypso import CalypsoSimLink - sl = CalypsoSimLink(sock_path=opts.osmocon_sock) + sl = CalypsoSimLink(sock_path=opts.osmocon_sock, **kwargs) elif opts.modem_dev is not None: print("Using modem for Generic SIM Access (3GPP TS 27.007)") from pySim.transport.modem_atcmd import ModemATCommandLink - sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud) + sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud, **kwargs) else: # Serial reader is default print("Using serial reader interface") from pySim.transport.serial import SerialSimLink - sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate) + sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate, **kwargs) return sl except Exception as e: print("Card reader initialization failed with exception:\n" + str(e)) diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py index 3c223e6..b55a089 100644 --- a/pySim/transport/calypso.py +++ b/pySim/transport/calypso.py @@ -71,7 +71,8 @@ class CalypsoSimLink(LinkBase): """Transport Link for Calypso based phones.""" - def __init__(self, sock_path:str = "/tmp/osmocom_l2"): + def __init__(self, sock_path:str = "/tmp/osmocom_l2", **kwargs): + super().__init__(**kwargs) # Make sure that a given socket path exists if not os.path.exists(sock_path): raise ReaderError("There is no such ('%s') UNIX socket" % sock_path) diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py index f5a0f23..ecf463c 100644 --- a/pySim/transport/modem_atcmd.py +++ b/pySim/transport/modem_atcmd.py @@ -29,7 +29,8 @@ class ModemATCommandLink(LinkBase): """Transport Link for 3GPP TS 27.007 compliant modems.""" - def __init__(self, device:str='/dev/ttyUSB0', baudrate:int=115200): + def __init__(self, device:str='/dev/ttyUSB0', baudrate:int=115200, **kwargs): + super().__init__(**kwargs) self._sl = serial.Serial(device, baudrate, timeout=5) self._device = device self._atr = None diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index 2433e79..73a99e8 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -30,7 +30,8 @@ class PcscSimLink(LinkBase): """ pySim: PCSC reader transport link.""" - def __init__(self, reader_number:int=0): + def __init__(self, reader_number:int=0, **kwargs): + super().__init__(**kwargs) r = readers() self._reader = r[reader_number] self._con = self._reader.createConnection() diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py index 22788a9..4f2b28f 100644 --- a/pySim/transport/serial.py +++ b/pySim/transport/serial.py @@ -29,7 +29,8 @@ """ pySim: Transport Link for serial (RS232) based readers included with simcard""" def __init__(self, device:str='/dev/ttyUSB0', baudrate:int=9600, rst:str='-rts', - debug:bool=False): + debug:bool=False, **kwargs): + super().__init__(**kwargs) if not os.path.exists(device): raise ValueError("device file %s does not exist -- abort" % device) self._sl = serial.Serial( -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3cd5ba87cf53409ea97196d5789ed28eef072c68 Gerrit-Change-Number: 23697 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 Apr 10 22:13:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:58 +0000 Subject: Change in pysim[master]: shell: Add 'apdu_trace' settable parameter for hex-dumping APDUs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23698 ) Change subject: shell: Add 'apdu_trace' settable parameter for hex-dumping APDUs ...................................................................... shell: Add 'apdu_trace' settable parameter for hex-dumping APDUs Change-Id: I0c957c0b86473413f31e4bd8bc4e633fc1470222 --- M docs/shell.rst M pySim-shell.py M pySim/transport/__init__.py 3 files changed, 39 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/shell.rst b/docs/shell.rst index 06e7f42..854944c 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -328,6 +328,11 @@ If enabled, full python back-traces will be displayed in case of exceptions +apdu_trace +~~~~~~~~~~ + +Boolean variable that determines if a hex-dump of the command + response APDU shall be printed. + numeric_path ~~~~~~~~~~~~ diff --git a/pySim-shell.py b/pySim-shell.py index 29138cc..ce1b3bf 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -37,7 +37,7 @@ from pySim.exceptions import * from pySim.commands import SimCardCommands -from pySim.transport import init_reader +from pySim.transport import init_reader, ApduTracer from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, h2s from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex @@ -74,6 +74,9 @@ self.update_prompt() self.json_pretty_print = True self.add_settable(cmd2.Settable('json_pretty_print', bool, 'Pretty-Print JSON output')) + self.apdu_trace = False + self.add_settable(cmd2.Settable('apdu_trace', bool, 'Trace and display APDUs exchanged with card', + onchange_cb=self._onchange_apdu_trace)) def poutput_json(self, data, force_no_pretty = False): """line cmd2.putput() but for a json serializable dict.""" @@ -89,6 +92,20 @@ def _onchange_conserve_write(self, param_name, old, new): self.rs.conserve_write = new + def _onchange_apdu_trace(self, param_name, old, new): + if new == True: + self.card._scc._tp.apdu_tracer = self.Cmd2ApduTracer(self) + else: + self.card._scc._tp.apdu_tracer = None + + class Cmd2ApduTracer(ApduTracer): + def __init__(self, cmd2_app): + self.cmd2 = app + + def trace_response(self, cmd, sw, resp): + self.cmd2.poutput("-> %s %s" % (cmd[:10], cmd[10:])) + self.cmd2.poutput("<- %s: %s" % (sw, resp)) + def update_prompt(self): path_list = self.rs.selected_file.fully_qualified_path(not self.numeric_path) self.prompt = 'pySIM-shell (%s)> ' % ('/'.join(path_list)) diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index c176f8a..96ad974 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -25,11 +25,20 @@ # along with this program. If not, see . # +class ApduTracer: + def trace_command(self, cmd): + pass + + def trace_response(self, cmd, sw, resp): + pass + + class LinkBase(object): """Base class for link/transport to card.""" - def __init__(self, sw_interpreter=None): + def __init__(self, sw_interpreter=None, apdu_tracer=None): self.sw_interpreter = sw_interpreter + self.apdu_tracer = apdu_tracer def set_sw_interpreter(self, interp): """Set an (optional) status word interpreter.""" @@ -69,7 +78,12 @@ data : string (in hex) of returned data (ex. "074F4EFFFF") sw : string (in hex) of status word (ex. "9000") """ - return self._send_apdu_raw(pdu) + if self.apdu_tracer: + self.apdu_tracer.trace_command(pdu) + (data, sw) = self._send_apdu_raw(pdu) + if self.apdu_tracer: + self.apdu_tracer.trace_response(pdu, sw, data) + return (data, sw) def send_apdu(self, pdu): """Sends an APDU and auto fetch response data -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0c957c0b86473413f31e4bd8bc4e633fc1470222 Gerrit-Change-Number: 23698 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 Apr 10 22:13:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:58 +0000 Subject: Change in pysim[master]: extend JSONEncoder to serialze 'bytes' style objects as hex strings In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23702 ) Change subject: extend JSONEncoder to serialze 'bytes' style objects as hex strings ...................................................................... extend JSONEncoder to serialze 'bytes' style objects as hex strings This means we can skip a lot of code that manually converts from bytes to hex before JSON serialization. Change-Id: I9c9eff0556d9d196e64553b5276e162f69d0c18f --- M pySim-shell.py M pySim/utils.py 2 files changed, 13 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index ce1b3bf..1d81eb8 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -39,7 +39,7 @@ from pySim.commands import SimCardCommands from pySim.transport import init_reader, ApduTracer from pySim.cards import card_detect, Card -from pySim.utils import h2b, swap_nibbles, rpad, h2s +from pySim.utils import h2b, swap_nibbles, rpad, h2s, JsonEncoder from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex from pySim.card_handler import card_handler @@ -81,9 +81,9 @@ def poutput_json(self, data, force_no_pretty = False): """line cmd2.putput() but for a json serializable dict.""" if force_no_pretty or self.json_pretty_print == False: - output = json.dumps(data) + output = json.dumps(data, cls=JsonEncoder) else: - output = json.dumps(data, indent=4) + output = json.dumps(data, cls=JsonEncoder, indent=4) self.poutput(output) def _onchange_numeric_path(self, param_name, old, new): diff --git a/pySim/utils.py b/pySim/utils.py index 6a093fa..5f66170 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -3,9 +3,12 @@ """ pySim: various utilities """ +import json +from io import BytesIO from typing import Optional, List, Dict, Any, Tuple # Copyright (C) 2009-2010 Sylvain Munaut +# Copyright (C) 2021 Harald Welte # # 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 @@ -831,3 +834,10 @@ format_str_row = (" " * lspace) + format_str_row table.append(format_str_row % tuple(str_list_row)) return '\n'.join(table) + +class JsonEncoder(json.JSONEncoder): + """Extend the standard library JSONEncoder with support for more types.""" + def default(self, o): + if isinstance(o, BytesIO) or isinstance(o, bytes) or isinstance(o, bytearray): + return b2h(o) + return json.JSONEncoder.default(self, o) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23702 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9c9eff0556d9d196e64553b5276e162f69d0c18f Gerrit-Change-Number: 23702 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 Apr 10 22:13:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:13:59 +0000 Subject: Change in pysim[master]: pySim-shell: Use poutput_json() whenever applicable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23703 ) Change subject: pySim-shell: Use poutput_json() whenever applicable ...................................................................... pySim-shell: Use poutput_json() whenever applicable poutput_json() uses a customs JSONEncoder, and hence all JSON prenting should go through it. Change-Id: Ie023669e77311350ade4f8dbc65431e71b586052 --- M pySim-shell.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index 1d81eb8..cfba73f 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -322,7 +322,7 @@ path = opts.arg_list[0] fcp_dec = self._cmd.rs.select(path, self._cmd) self._cmd.update_prompt() - self._cmd.poutput(json.dumps(fcp_dec, indent=4)) + self._cmd.poutput_json(fcp_dec) def complete_select(self, text, line, begidx, endidx) -> List[str]: """Command Line tab completion for SELECT""" -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie023669e77311350ade4f8dbc65431e71b586052 Gerrit-Change-Number: 23703 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 Apr 10 22:14:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:14:00 +0000 Subject: Change in pysim[master]: setup.py: add missing comma in list of dependencies In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23704 ) Change subject: setup.py: add missing comma in list of dependencies ...................................................................... setup.py: add missing comma in list of dependencies Change-Id: If93d8c67cdfacc1f30307c8cfb38924fb2cbabbe --- M setup.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/setup.py b/setup.py index a02e327..e7ab1c9 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ "pyscard", "serial", "pytlv", - "cmd2" + "cmd2", "jsonpath-ng" ], scripts=[ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93d8c67cdfacc1f30307c8cfb38924fb2cbabbe Gerrit-Change-Number: 23704 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 Apr 10 22:15:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 10 Apr 2021 22:15:29 +0000 Subject: Change in pysim[master]: integrate 'construct' python library In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23705 ) Change subject: integrate 'construct' python library ...................................................................... Patch Set 1: python-construct is a nice framework! -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibf457aa8b9480a8db5979defcfafd67674303f6c Gerrit-Change-Number: 23705 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Sat, 10 Apr 2021 22:15: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 Sat Apr 10 22:16:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 10 Apr 2021 22:16:46 +0000 Subject: Change in pysim[master]: integrate 'construct' python library 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/+/23705 to look at the new patch set (#2). Change subject: integrate 'construct' python library ...................................................................... integrate 'construct' python library 'construct' is a declarative symmetric encoder/decoder for user specified binary formats. It should come in extremely handy in tools like pySim. We start the integration by adding transport methods for transceiving APDUs with built-in encoding of the command data and decoding of the response data. Change-Id: Ibf457aa8b9480a8db5979defcfafd67674303f6c --- M contrib/jenkins.sh M docs/library.rst A pySim/construct.py M pySim/transport/__init__.py M requirements.txt M setup.py 6 files changed, 103 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/05/23705/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibf457aa8b9480a8db5979defcfafd67674303f6c Gerrit-Change-Number: 23705 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 10 22:26:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 10 Apr 2021 22:26:08 +0000 Subject: Change in pysim[master]: integrate 'construct' python library In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23705 ) Change subject: integrate 'construct' python library ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibf457aa8b9480a8db5979defcfafd67674303f6c Gerrit-Change-Number: 23705 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 10 Apr 2021 22:26:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 11 08:18:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 08:18:42 +0000 Subject: Change in pysim[master]: lots of file definitions for classic SIM and USIM In-Reply-To: References: Message-ID: Hello Jenkins Builder, tnt, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23711 to look at the new patch set (#4). Change subject: lots of file definitions for classic SIM and USIM ...................................................................... lots of file definitions for classic SIM and USIM Change-Id: I91475df4a5eaca423473aaebba8c69c54c9a0c1a --- M pySim/ts_31_102.py M pySim/ts_51_011.py 2 files changed, 490 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/11/23711/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I91475df4a5eaca423473aaebba8c69c54c9a0c1a Gerrit-Change-Number: 23711 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 11 08:30:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 08:30:21 +0000 Subject: Change in pysim[master]: fix various typos all over the code References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23712 ) Change subject: fix various typos all over the code ...................................................................... fix various typos all over the code Change-Id: Ic8392a951bf94f67b51e35bed95d0e856f7a9250 --- M docs/library.rst M pySim-shell.py M pySim/cards.py M pySim/filesystem.py M pySim/ts_31_102.py M pySim/ts_31_103.py M pySim/ts_51_011.py M pySim/utils.py 8 files changed, 29 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/12/23712/1 diff --git a/docs/library.rst b/docs/library.rst index e2e24a7..f531ec5 100644 --- a/docs/library.rst +++ b/docs/library.rst @@ -33,7 +33,7 @@ calypso / OsmocomBB transport ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This allows the use of the SIM slot of an an OsmocomBB compatible phone with the TI Calypso chipset, +This allows the use of the SIM slot of an OsmocomBB compatible phone with the TI Calypso chipset, using the L1CTL interface to talk to the layer1.bin firmware on the phone. .. automodule:: pySim.transport.calypso @@ -67,7 +67,7 @@ This transport implements interfacing smart cards via very simplistic UART readers. These readers basically wire together the Rx+Tx pins of a RS232 UART, provide -a fixed crystal oscilator for clock, and operate the UART +a fixed crystal oscillator for clock, and operate the UART at 9600 bps. These readers are sometimes called `Phoenix`. .. automodule:: pySim.transport.serial diff --git a/pySim-shell.py b/pySim-shell.py index 132733d..5298cb4 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -79,7 +79,7 @@ onchange_cb=self._onchange_apdu_trace)) def poutput_json(self, data, force_no_pretty = False): - """line cmd2.putput() but for a json serializable dict.""" + """like cmd2.poutput() but for a JSON serializable dict.""" if force_no_pretty or self.json_pretty_print == False: output = json.dumps(data, cls=JsonEncoder) else: @@ -220,7 +220,7 @@ # always restore the currently selected file to the file that # was selected before executing the action() callback. if df_before_action != self._cmd.rs.selected_file: - raise RuntimeError("inconsistant walk, %s is currently selected but expecting %s to be selected" + raise RuntimeError("inconsistent walk, %s is currently selected but expecting %s to be selected" % (str(self._cmd.rs.selected_file), str(df_before_action))) def do_tree(self, opts): @@ -299,9 +299,9 @@ self._cmd.poutput("# " + b) if context['ERR'] and context['DF_SKIP']: - raise RuntimeError("unable to export %i elementry file(s) and %i dedicated file(s)" % (context['ERR'], context['DF_SKIP'])) + raise RuntimeError("unable to export %i elementary file(s) and %i dedicated file(s)" % (context['ERR'], context['DF_SKIP'])) elif context['ERR']: - raise RuntimeError("unable to export %i elementry file(s)" % context['ERR']) + raise RuntimeError("unable to export %i elementary file(s)" % context['ERR']) elif context['DF_SKIP']: raise RuntimeError("unable to export %i dedicated files(s)" % context['ERR']) @@ -353,7 +353,7 @@ """Verify (authenticate) using specified PIN code""" pin = self.get_code(opts.pin_code) (data, sw) = self._cmd.card._scc.verify_chv(opts.pin_nr, h2b(pin)) - self._cmd.poutput("CHV verfication successful") + self._cmd.poutput("CHV verification successful") unblock_chv_parser = argparse.ArgumentParser() unblock_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') @@ -536,7 +536,7 @@ card_key_provider_register(CardKeyProviderCsv(csv_default)) # If the user supplies an ADM PIN at via commandline args authenticate - # immediatley so that the user does not have to use the shell commands + # immediately so that the user does not have to use the shell commands pin_adm = sanitize_pin_adm(opts.pin_adm, opts.pin_adm_hex) if pin_adm: try: diff --git a/pySim/cards.py b/pySim/cards.py index 8ac80bf..d630282 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -94,7 +94,7 @@ in ETSI TS 151 011 for the details of the access_tech field coding. Some common values: access_tech = '0080' # Only GSM is selected - access_tech = 'FFFF' # All technologues selected, even Reserved for Future Use ones + access_tech = 'FFFF' # All technologies selected, even Reserved for Future Use ones """ # get size and write EF.HPLMNwAcT data = self._scc.read_binary(EF['HPLMNwAcT'], length=None, offset=0) @@ -446,7 +446,7 @@ each possible provider uses a specific record number in each EF. The indexes used are ( where N is the number of providers supported ) : - [2 .. N+1] for the operator name - - [1 .. N] for the programable EFs + - [1 .. N] for the programmable EFs * 3f00/7f4d/8f0c : Operator Name @@ -588,7 +588,7 @@ class FakeMagicSim(Card): """ Theses cards have a record based EF 3f00/000c that contains the provider - informations. See the program method for its format. The records go from + information. See the program method for its format. The records go from 1 to N. """ diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 49520c3..36588e2 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -53,7 +53,7 @@ fid : File Identifier (4 hex digits) sfid : Short File Identifier (2 hex digits, optional) name : Brief name of the file, lik EF_ICCID - desc : Descriptoin of the file + desc : Description of the file parent : Parent CardFile object within filesystem hierarchy """ if not isinstance(self, CardADF) and fid == None: @@ -387,7 +387,7 @@ @with_default_category('Transparent EF Commands') class ShellCommands(CommandSet): - """Shell commands specific for Trransparent EFs.""" + """Shell commands specific for transparent EFs.""" def __init__(self): super().__init__() @@ -462,7 +462,7 @@ fid : File Identifier (4 hex digits) sfid : Short File Identifier (2 hex digits, optional) name : Brief name of the file, lik EF_ICCID - desc : Descriptoin of the file + desc : Description of the file parent : Parent CardFile object within filesystem hierarchy size : tuple of (minimum_size, recommended_size) """ @@ -686,7 +686,7 @@ fid : File Identifier (4 hex digits) sfid : Short File Identifier (2 hex digits, optional) name : Brief name of the file, lik EF_ICCID - desc : Descriptoin of the file + desc : Description of the file parent : Parent CardFile object within filesystem hierarchy rec_len : tuple of (minimum_length, recommended_length) """ @@ -808,8 +808,8 @@ Args: fid : File Identifier (4 hex digits) sfid : Short File Identifier (2 hex digits, optional) - name : Brief name of the file, lik EF_ICCID - desc : Descriptoin of the file + name : Brief name of the file, like EF_ICCID + desc : Description of the file parent : Parent CardFile object within filesystem hierarchy rec_len : Length of the fixed-length records within transparent EF size : tuple of (minimum_size, recommended_size) @@ -991,7 +991,7 @@ or the underlying card profile. Args: - sw : Status word as string of 4 hexd digits + sw : Status word as string of 4 hex digits Returns: Tuple of two strings @@ -1026,9 +1026,9 @@ f = CardDF(fid=fid, sfid=None, name="DF." + str(fid).upper(), desc="dedicated file, manually added at runtime") else: if (select_resp['file_descriptor']['structure'] == 'transparent'): - f = TransparentEF(fid=fid, sfid=None, name="EF." + str(fid).upper(), desc="elementry file, manually added at runtime") + f = TransparentEF(fid=fid, sfid=None, name="EF." + str(fid).upper(), desc="elementary file, manually added at runtime") else: - f = LinFixedEF(fid=fid, sfid=None, name="EF." + str(fid).upper(), desc="elementry file, manually added at runtime") + f = LinFixedEF(fid=fid, sfid=None, name="EF." + str(fid).upper(), desc="elementary file, manually added at runtime") self.selected_file.add_files([f]) self.selected_file = f @@ -1223,7 +1223,7 @@ """Interpret a given status word within the application. Args: - sw : Status word as string of 4 hexd digits + sw : Status word as string of 4 hex digits Returns: Tuple of two strings @@ -1231,7 +1231,7 @@ return interpret_sw(self.sw, sw) class CardProfile(object): - """A Card Profile describes a card, it's filessystem hierarchy, an [initial] list of + """A Card Profile describes a card, it's filesystem hierarchy, an [initial] list of applications as well as profile-specific SW and shell commands. Every card has one card profile, but there may be multiple applications within that profile.""" def __init__(self, name, **kw): @@ -1265,7 +1265,7 @@ """Interpret a given status word within the profile. Args: - sw : Status word as string of 4 hexd digits + sw : Status word as string of 4 hex digits Returns: Tuple of two strings diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 1558d8d..1a78a12 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -471,14 +471,14 @@ # TS 31.102 Section 4.2.17 class EF_LOCI(TransparentEF): - def __init__(self, fid='6f7e', sfid=0x0b, name='EF.LOCI', desc='Locationn information', size={11,11}): + def __init__(self, fid='6f7e', sfid=0x0b, name='EF.LOCI', desc='Location information', size={11,11}): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = Struct('tmsi'/HexAdapter(Bytes(4)), 'lai'/HexAdapter(Bytes(5)), 'rfu'/Int8ub, 'lu_status'/Int8ub) # TS 31.102 Section 4.2.23 class EF_PSLOCI(TransparentEF): - def __init__(self, fid='6f73', sfid=0x0c, name='EF.PSLOCI', desc='PS Locationn information', size={14,14}): + def __init__(self, fid='6f73', sfid=0x0c, name='EF.PSLOCI', desc='PS Location information', size={14,14}): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = Struct('ptmsi'/HexAdapter(Bytes(4)), 'ptmsi_sig'/HexAdapter(Bytes(3)), 'rai'/HexAdapter(Bytes(6)), 'rau_status'/Int8ub) diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index effdbf7..cea4832 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -126,7 +126,7 @@ # TS 31.103 Section 4.2.9 class EF_GBABP(TransparentEF): - def __init__(self, fid='6fd5', sfid=None, name='EF.GBABP', desc='GBA Bootstrappng'): + def __init__(self, fid='6fd5', sfid=None, name='EF.GBABP', desc='GBA Bootstrapping'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) # TS 31.103 Section 4.2.10 diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 5795faf..c21e86c 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -423,7 +423,7 @@ # TS 51.011 Section 10.5.16 class EF_CMI(LinFixedEF): def __init__(self, fid='6f58', sfid=None, name='EF.CMI', rec_len={2,21}, - desc='Comparison Method Informatoin'): + desc='Comparison Method Information'): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) self._construct = Struct('alpha_id'/Bytes(this._.total_len-1), 'comparison_method_id'/Int8ub) @@ -871,7 +871,7 @@ ret['file_characteristics'] = b2h(resp_bin[13]) ret['num_direct_child_df'] = int(resp_bin[14], 16) ret['num_direct_child_ef'] = int(resp_bin[15], 16) - ret['num_chv_unbkock_adm_codes'] = int(resp_bin[16]) + ret['num_chv_unblock_adm_codes'] = int(resp_bin[16]) # CHV / UNBLOCK CHV stats elif file_type in ['working_ef']: file_struct = struct_of_file_map[resp_bin[13]] if resp_bin[13] in struct_of_file_map else resp_bin[13] diff --git a/pySim/utils.py b/pySim/utils.py index 5f66170..a0da03a 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -111,7 +111,7 @@ return ei def dec_imsi(ef:Hexstr) -> Optional[str]: - """Converts an EF value to the imsi string representation""" + """Converts an EF value to the IMSI string representation""" if len(ef) < 4: return None l = int(ef[0:2], 16) * 2 # Length of the IMSI string -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic8392a951bf94f67b51e35bed95d0e856f7a9250 Gerrit-Change-Number: 23712 Gerrit-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 Apr 11 09:00:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:00:10 +0000 Subject: Change in pysim[master]: rename manual to be consistent with osmo-gsm-manuals projects References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23713 ) Change subject: rename manual to be consistent with osmo-gsm-manuals projects ...................................................................... rename manual to be consistent with osmo-gsm-manuals projects Change-Id: Iad1d96f2b0f95a010b0b30da00d3eef754c1ec44 --- M docs/conf.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/13/23713/1 diff --git a/docs/conf.py b/docs/conf.py index 2117172..a96b87e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -17,7 +17,7 @@ # -- Project information ----------------------------------------------------- -project = 'pysim' +project = 'osmopysim-usermanual' copyright = '2009-2021 by Sylvain Munaut, Harald Welte, Philipp Maier, Supreeth Herle' author = 'Sylvain Munaut, Harald Welte, Philipp Maier, Supreeth Herle' -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad1d96f2b0f95a010b0b30da00d3eef754c1ec44 Gerrit-Change-Number: 23713 Gerrit-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 Apr 11 09:00:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:00:11 +0000 Subject: Change in pysim[master]: contrib/jenkins.sh: Build and publish PDF manual References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23714 ) Change subject: contrib/jenkins.sh: Build and publish PDF manual ...................................................................... contrib/jenkins.sh: Build and publish PDF manual Change-Id: I3f01e93dd5a25d26feb3d067a171244a20f0f8e5 --- M contrib/jenkins.sh M docs/Makefile 2 files changed, 25 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/14/23714/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index dc2692c..2d9653a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -1,4 +1,10 @@ #!/bin/sh +# jenkins build helper script for pysim. 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 @@ -24,8 +30,12 @@ pip install sphinx pip install sphinxcontrib-napoleon pip3 install -e 'git+https://github.com/osmocom/sphinx-argparse at master#egg=sphinx-argparse' -(cd docs && make html) +(cd docs && make html latexpdf) # run the test with physical cards cd pysim-testdata ../tests/pysim-test.sh + +if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then + make -C "$base/docs" publish +fi diff --git a/docs/Makefile b/docs/Makefile index d4bb2cb..dbc5276 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -8,13 +8,25 @@ SOURCEDIR = . BUILDDIR = _build +# for osmo-gsm-manuals +OSMO_GSM_MANUALS_DIR=$(shell pkg-config osmo-gsm-manuals --variable=osmogsmmanualsdir 2>/dev/null) +OSMO_REPOSITORY = "pysim" +UPLOAD_FILES = $(BUILDDIR)/latex/pysim.pdf +CLEAN_FILES = $(UPLOAD_FILES) + # Put it first so that "make" without argument is like "make help". +.PHONY: help help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -.PHONY: help Makefile +$(BUILDDIR)/latex/pysim.pdf: latexpdf + @/bin/true + +# put this before the catch-all below +include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc + # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile +%: @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3f01e93dd5a25d26feb3d067a171244a20f0f8e5 Gerrit-Change-Number: 23714 Gerrit-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 Apr 11 09:15:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:15:51 +0000 Subject: Change in pysim[master]: contrib/jenkins.sh: Build and publish PDF manual In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23714 to look at the new patch set (#2). Change subject: contrib/jenkins.sh: Build and publish PDF manual ...................................................................... contrib/jenkins.sh: Build and publish PDF manual Change-Id: I3f01e93dd5a25d26feb3d067a171244a20f0f8e5 --- M contrib/jenkins.sh M docs/Makefile 2 files changed, 25 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/14/23714/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3f01e93dd5a25d26feb3d067a171244a20f0f8e5 Gerrit-Change-Number: 23714 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 Apr 11 09:21:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:21:48 +0000 Subject: Change in pysim[master]: README.md: Update dependencies References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23715 ) Change subject: README.md: Update dependencies ...................................................................... README.md: Update dependencies Change-Id: Ib4028b57aff6bf3d42a83b3942c55f2a1c133172 --- M README.md 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/15/23715/1 diff --git a/README.md b/README.md index 028a84a..f7021b9 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,9 @@ - pyscard - serial -- pytlv (for specific card types) -- cmd2 (for pySim-shell.py) +- pytlv +- cmd2 +- jsonpath-ng Example for Debian: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib4028b57aff6bf3d42a83b3942c55f2a1c133172 Gerrit-Change-Number: 23715 Gerrit-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 Apr 11 09:21:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:21:49 +0000 Subject: Change in pysim[master]: README.md: We have switched to gerrit for review References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23716 ) Change subject: README.md: We have switched to gerrit for review ...................................................................... README.md: We have switched to gerrit for review Change-Id: I4ee30c411a2dfc2cf39840af2517f28c1989099f --- M README.md 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/16/23716/1 diff --git a/README.md b/README.md index f7021b9..ad333d5 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,8 @@ Our coding standards are described at -We are currently accepting patches by e-mail to the above-mentioned -mailing list. +We are using a gerrit-based patch review process explained at + Usage ----- -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4ee30c411a2dfc2cf39840af2517f28c1989099f Gerrit-Change-Number: 23716 Gerrit-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 Apr 11 09:21:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:21:49 +0000 Subject: Change in pysim[master]: README.md: Mention user manual References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23717 ) Change subject: README.md: Mention user manual ...................................................................... README.md: Mention user manual Change-Id: I6e40166a2ed7ba9f352b466ce85651e20da591e9 --- M README.md 1 file changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/17/23717/1 diff --git a/README.md b/README.md index ad333d5..db294c6 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,15 @@ We are using a gerrit-based patch review process explained at + +Manual +------ +p +Please see the sphinx based documentation in the 'docs' sub-directory +of the source. A PDF rendering of the user manual is available from + + + Usage ----- -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6e40166a2ed7ba9f352b466ce85651e20da591e9 Gerrit-Change-Number: 23717 Gerrit-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 Apr 11 09:33:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:33:54 +0000 Subject: Change in pysim[master]: README.md: Update dependencies In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23715 ) Change subject: README.md: Update dependencies ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib4028b57aff6bf3d42a83b3942c55f2a1c133172 Gerrit-Change-Number: 23715 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 11 Apr 2021 09:33: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 Apr 11 09:33:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:33:59 +0000 Subject: Change in pysim[master]: README.md: We have switched to gerrit for review In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23716 ) Change subject: README.md: We have switched to gerrit for review ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4ee30c411a2dfc2cf39840af2517f28c1989099f Gerrit-Change-Number: 23716 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 11 Apr 2021 09:33: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 Sun Apr 11 09:34:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:34:04 +0000 Subject: Change in pysim[master]: README.md: Mention user manual In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23717 ) Change subject: README.md: Mention user manual ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6e40166a2ed7ba9f352b466ce85651e20da591e9 Gerrit-Change-Number: 23717 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 11 Apr 2021 09: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 Apr 11 09:34:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:34:06 +0000 Subject: Change in pysim[master]: README.md: Update dependencies In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23715 ) Change subject: README.md: Update dependencies ...................................................................... README.md: Update dependencies Change-Id: Ib4028b57aff6bf3d42a83b3942c55f2a1c133172 --- M README.md 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/README.md b/README.md index 028a84a..f7021b9 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,9 @@ - pyscard - serial -- pytlv (for specific card types) -- cmd2 (for pySim-shell.py) +- pytlv +- cmd2 +- jsonpath-ng Example for Debian: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib4028b57aff6bf3d42a83b3942c55f2a1c133172 Gerrit-Change-Number: 23715 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 Apr 11 09:34:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:34:06 +0000 Subject: Change in pysim[master]: README.md: We have switched to gerrit for review In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23716 ) Change subject: README.md: We have switched to gerrit for review ...................................................................... README.md: We have switched to gerrit for review Change-Id: I4ee30c411a2dfc2cf39840af2517f28c1989099f --- M README.md 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/README.md b/README.md index f7021b9..ad333d5 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,8 @@ Our coding standards are described at -We are currently accepting patches by e-mail to the above-mentioned -mailing list. +We are using a gerrit-based patch review process explained at + Usage ----- -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4ee30c411a2dfc2cf39840af2517f28c1989099f Gerrit-Change-Number: 23716 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 Apr 11 09:34:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:34:06 +0000 Subject: Change in pysim[master]: README.md: Mention user manual In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23717 ) Change subject: README.md: Mention user manual ...................................................................... README.md: Mention user manual Change-Id: I6e40166a2ed7ba9f352b466ce85651e20da591e9 --- M README.md 1 file changed, 9 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/README.md b/README.md index ad333d5..db294c6 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,15 @@ We are using a gerrit-based patch review process explained at + +Manual +------ +p +Please see the sphinx based documentation in the 'docs' sub-directory +of the source. A PDF rendering of the user manual is available from + + + Usage ----- -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6e40166a2ed7ba9f352b466ce85651e20da591e9 Gerrit-Change-Number: 23717 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 Apr 11 09:35:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:35:33 +0000 Subject: Change in pysim[master]: WIP: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: WIP: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... Patch Set 11: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 11 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 11 Apr 2021 09: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 Sun Apr 11 09:35:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 09:35:36 +0000 Subject: Change in pysim[master]: WIP: Add option to set UE operation mode in EF_AD (Administrative Data) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23632 ) Change subject: WIP: Add option to set UE operation mode in EF_AD (Administrative Data) ...................................................................... WIP: Add option to set UE operation mode in EF_AD (Administrative Data) Use ``--opmode=OPMODE`` in cmdline mode or column ``OPMODE`` in csv mode to specify OPMODE as listed below. Details: The ``EF_AD`` field contains administrative data (AD). It consists of four bytes ``B1``, ``B2``, ``B3``, ``B4``, and optionally further bytes for future use. Previous implementation only sets the MNC field appropriately (located in `B4`) and sets all other bits/bytes to 0. However, `B1` also defines the *UE operation mode* (see below). For type approval operations, such as testing with a test uSIM, this value could be set to `0x80` rather than `0x00`(= normal operation). This may unlock some UE capabilities that are restricted in normal operation mode. Excerpt from [ETSI TS 131 102, 4.2.18](https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/04.15.00_60/ts_131102v041500p.pdf): ``` B1 - UE operation mode: Coding: Initial value - '00' normal operation. - '80' type approval operations. - '01' normal operation + specific facilities. - '81' type approval operations + specific facilities. - '02' maintenance (off line). - '04' cell test operation. B2 - Additional information: Coding: Reserved for future use B3 - Additional information: Coding: - B3.b1: OFM setting (Ciphering Indicator) - B3.others: Reserved for future use B4 - Length of MNC in the IMSI: Coding: - B4.b4..B4.b1: length: '0010' (= 2) or '0011' (=3) - B4.others: Reserved for future use ``` **Legend:** Byte X, bit Y: BX.bY Further reading: https://nickvsnetworking.com/usim-basics/ Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 --- M pySim-prog.py M pySim/cards.py 2 files changed, 71 insertions(+), 21 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim-prog.py b/pySim-prog.py index 7b1283b..0abd190 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -37,7 +37,7 @@ from pySim.transport import init_reader from pySim.cards import _cards_classes, card_detect from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn, dec_iccid -from pySim.ts_51_011 import EF +from pySim.ts_51_011 import EF, EF_AD from pySim.card_handler import * from pySim.utils import * @@ -143,6 +143,11 @@ parser.add_option("--acc", dest="acc", help="Set ACC bits (Access Control Code). not all card types are supported", ) + parser.add_option("--opmode", dest="opmode", type="choice", + help="Set UE Operation Mode in EF.AD (Administrative Data)", + default=None, + choices=['{:02X}'.format(m) for m in list(EF_AD.OP_MODE.keys())], + ) parser.add_option("--epdgid", dest="epdgid", help="Set Home Evolved Packet Data Gateway (ePDG) Identifier. (Only FQDN format supported)", ) @@ -472,6 +477,7 @@ 'ims_hdomain': opts.ims_hdomain, 'impi' : opts.impi, 'impu' : opts.impu, + 'opmode': opts.opmode, } @@ -490,6 +496,8 @@ if 'acc' in params: s.append(" > ACC : %(acc)s") s.append(" > ADM1(hex): %(pin_adm)s") + if 'opmode' in params: + s.append(" > OPMODE : %(opmode)s") print("\n".join(s) % params) diff --git a/pySim/cards.py b/pySim/cards.py index 8ac80bf..8489c97 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -22,7 +22,7 @@ # along with this program. If not, see . # -from pySim.ts_51_011 import EF, DF +from pySim.ts_51_011 import EF, DF, EF_AD from pySim.ts_31_102 import EF_USIM_ADF_map from pySim.ts_31_103 import EF_ISIM_ADF_map from pySim.utils import * @@ -153,22 +153,52 @@ data, sw = self._scc.update_record(EF['SMSP'], 1, rpad(smsp, 84)) return sw - def update_ad(self, mnc): - #See also: 3GPP TS 31.102, chapter 4.2.18 - mnclen = len(str(mnc)) - if mnclen == 1: - mnclen = 2 - if mnclen > 3: - raise RuntimeError('unable to calculate proper mnclen') + def update_ad(self, mnc=None, opmode=None, ofm=None): + """ + Update Administrative Data (AD) - data, sw = self._scc.read_binary(EF['AD'], length=None, offset=0) + See Sec. "4.2.18 EF_AD (Administrative Data)" + in 3GPP TS 31.102 for the details of the EF_AD contents. - # Reset contents to EF.AD in case the file is uninintalized - if data.lower() == "ffffffff": - data = "00000000" + Set any parameter to None to keep old value(s) on card. - content = data[0:6] + "%02X" % mnclen - data, sw = self._scc.update_binary(EF['AD'], content) + Parameters: + mnc (str): MNC of IMSI + opmode (Hex-str, 1 Byte): MS Operation Mode + ofm (Hex-str, 1 Byte): Operational Feature Monitor (OFM) aka Ciphering Indicator + + Returns: + str: Return code of write operation + """ + + ad = EF_AD() + + # read from card + raw_hex_data, sw = self._scc.read_binary(EF['AD'], length=None, offset=0) + raw_bin_data = h2b(raw_hex_data) + abstract_data = ad.decode_bin(raw_bin_data) + + # perform updates + if mnc: + mnclen = len(str(mnc)) + if mnclen == 1: + mnclen = 2 + if mnclen > 3: + raise RuntimeError('invalid length of mnc "{}"'.format(mnc)) + abstract_data['len_of_mnc_in_imsi'] = mnclen + if opmode: + opmode_symb = ad.OP_MODE.get(int(opmode, 16)) + if opmode_symb: + abstract_data['ms_operation_mode'] = opmode_symb + else: + raise RuntimeError('invalid opmode "{}"'.format(opmode)) + if ofm: + abstract_data['specific_facilities']['ofm'] = bool(int(ofm, 16)) + + # write to card + raw_bin_data = ad.encode_bin(abstract_data) + raw_hex_data = b2h(raw_bin_data) + data, sw = self._scc.update_binary(EF['AD'], raw_hex_data) return sw def read_spn(self): @@ -915,8 +945,12 @@ print("Programming HPLMNwAcT failed with code %s"%sw) # EF.AD - if p.get('mcc') and p.get('mnc'): - sw = self.update_ad(p['mnc']) + if (p.get('mcc') and p.get('mnc')) or p.get('opmode'): + if p.get('mcc') and p.get('mnc'): + mnc = p['mnc'] + else: + mnc = None + sw = self.update_ad(mnc=mnc, opmode=p.get('opmode')) if sw != '9000': print("Programming AD failed with code %s"%sw) @@ -1205,8 +1239,12 @@ print("Programming OPLMNwAcT failed with code %s"%sw) # EF.AD - if p.get('mcc') and p.get('mnc'): - sw = self.update_ad(p['mnc']) + if (p.get('mcc') and p.get('mnc')) or p.get('opmode'): + if p.get('mcc') and p.get('mnc'): + mnc = p['mnc'] + else: + mnc = None + sw = self.update_ad(mnc=mnc, opmode=p.get('opmode')) if sw != '9000': print("Programming AD failed with code %s"%sw) @@ -1300,8 +1338,12 @@ print("Programming HPLMNwAcT failed with code %s"%sw) # EF.AD - if p.get('mcc') and p.get('mnc'): - sw = self.update_ad(p['mnc']) + if (p.get('mcc') and p.get('mnc')) or p.get('opmode'): + if p.get('mcc') and p.get('mnc'): + mnc = p['mnc'] + else: + mnc = None + sw = self.update_ad(mnc=mnc, opmode=p.get('opmode')) if sw != '9000': print("Programming AD failed with code %s"%sw) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9040c6b127c268878a0845ed73d0918ec6bbb08 Gerrit-Change-Number: 23632 Gerrit-PatchSet: 12 Gerrit-Owner: Falkenber9 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 Sun Apr 11 10:35:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 10:35:33 +0000 Subject: Change in pysim[master]: pySim-shell: Migrate from optparse to argparse for the main() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23718 ) Change subject: pySim-shell: Migrate from optparse to argparse for the main() ...................................................................... pySim-shell: Migrate from optparse to argparse for the main() We're using argparse internally for all shell commands, and can use that to auto-generate command reference in the manual. Let's switch to argparse for the main program, too - and generate the related reference in the manual. Change-Id: I77c946dbeb9f746fe3d8051173e59462dc2fb5e2 --- M docs/shell.rst M pySim-shell.py 2 files changed, 37 insertions(+), 54 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/18/23718/1 diff --git a/docs/shell.rst b/docs/shell.rst index 30938fe..4cdf9e0 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -23,6 +23,20 @@ * tab completion of commands and SELECT-able files/directories * interactive help for all commands +Running pySim-shell +------------------- + +pySim-shell has a variety of command line arguments to control + +* which transport to use (how to use a reader to talk to the SIM card) +* whether to automatically verify an ADM pin (and in which format) +* whether to execute a start-up script + +.. argparse:: + :module: pySim-shell + :func: option_parser + + cmd2 basics ----------- diff --git a/pySim-shell.py b/pySim-shell.py index 5298cb4..6bc9a95 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -28,7 +28,6 @@ import os import sys -from optparse import OptionParser from pathlib import Path from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD_mode_map @@ -430,64 +429,34 @@ (data, sw) = self._cmd.card._scc.manage_channel(mode='close', lchan_nr=opts.chan_nr) -def parse_options(): - - parser = OptionParser(usage="usage: %prog [options]") - - parser.add_option("-d", "--device", dest="device", metavar="DEV", - help="Serial Device for SIM access [default: %default]", - default="/dev/ttyUSB0", - ) - parser.add_option("-b", "--baud", dest="baudrate", type="int", metavar="BAUD", - help="Baudrate used for SIM access [default: %default]", - default=9600, - ) - parser.add_option("-p", "--pcsc-device", dest="pcsc_dev", type='int', metavar="PCSC", - help="Which PC/SC reader number for SIM access", - default=None, - ) - parser.add_option("--modem-device", dest="modem_dev", metavar="DEV", - help="Serial port of modem for Generic SIM Access (3GPP TS 27.007)", - default=None, - ) - parser.add_option("--modem-baud", dest="modem_baud", type="int", metavar="BAUD", - help="Baudrate used for modem's port [default: %default]", - default=115200, - ) - parser.add_option("--osmocon", dest="osmocon_sock", metavar="PATH", - help="Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)", - default=None, - ) - parser.add_option("--script", dest="script", metavar="PATH", - help="script with shell commands to be executed automatically", - default=None, - ) - - parser.add_option("--csv", dest="csv", metavar="FILE", - help="Read card data from CSV file", - default=None, - ) - - parser.add_option("-a", "--pin-adm", dest="pin_adm", - help="ADM PIN used for provisioning (overwrites default)", - ) - parser.add_option("-A", "--pin-adm-hex", dest="pin_adm_hex", - help="ADM PIN used for provisioning, as hex string (16 characters long", - ) - - (options, args) = parser.parse_args() - - if args: - parser.error("Extraneous arguments") - - return options - +option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) +option_parser.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', + help='Serial Device for SIM access') +option_parser.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, + help='Baud rate used for SIM access') +option_parser.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, + help='PC/SC reader number to use for SIM access') +option_parser.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, + help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') +option_parser.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, + help='Baud rate used for modem port') +option_parser.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, + help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)') +option_parser.add_argument('--script', metavar='PATH', default=None, + help='script with pySim-shell commands to be executed automatically at start-up') +option_parser.add_argument('--csv', metavar='FILE', default=None, + help='Read card data from CSV file') +option_parser.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None, + help='ADM PIN used for provisioning (overwrites default)') +option_parser.add_argument('-A', '--pin-adm-hex', metavar='PIN_ADM1_HEX', dest='pin_adm_hex', default=None, + help='ADM PIN used for provisioning, as hex string (16 characters long)') if __name__ == '__main__': # Parse options - opts = parse_options() + opts = option_parser.parse_args() # Init card reader driver sl = init_reader(opts) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23718 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I77c946dbeb9f746fe3d8051173e59462dc2fb5e2 Gerrit-Change-Number: 23718 Gerrit-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 Apr 11 10:35:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 10:35:34 +0000 Subject: Change in pysim[master]: pySim-shell: Introduce logical grouping of arguments References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23719 ) Change subject: pySim-shell: Introduce logical grouping of arguments ...................................................................... pySim-shell: Introduce logical grouping of arguments Change-Id: Id80a68e615fc1e457bde3dff8817776826fc6d8e --- M pySim-shell.py 1 file changed, 29 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/19/23719/1 diff --git a/pySim-shell.py b/pySim-shell.py index 6bc9a95..2a7c377 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -431,26 +431,38 @@ option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell', formatter_class=argparse.ArgumentDefaultsHelpFormatter) -option_parser.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', - help='Serial Device for SIM access') -option_parser.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, - help='Baud rate used for SIM access') -option_parser.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, - help='PC/SC reader number to use for SIM access') -option_parser.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, - help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') -option_parser.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, - help='Baud rate used for modem port') -option_parser.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, + +serial_group = option_parser.add_argument_group('Serial Reader') +serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', + help='Serial Device for SIM access') +serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, + help='Baud rate used for SIM access') + +pcsc_group = option_parser.add_argument_group('PC/SC Reader') +pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, + help='PC/SC reader number to use for SIM access') + +modem_group = option_parser.add_argument_group('AT Command Modem Reader') +modem_group.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, + help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') +modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, + help='Baud rate used for modem port') + +osmobb_group = option_parser.add_argument_group('OsmocomBB Reader') +osmobb_group.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)') -option_parser.add_argument('--script', metavar='PATH', default=None, + +global_group = option_parser.add_argument_group('General Options') +global_group.add_argument('--script', metavar='PATH', default=None, help='script with pySim-shell commands to be executed automatically at start-up') -option_parser.add_argument('--csv', metavar='FILE', default=None, +global_group.add_argument('--csv', metavar='FILE', default=None, help='Read card data from CSV file') -option_parser.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None, - help='ADM PIN used for provisioning (overwrites default)') -option_parser.add_argument('-A', '--pin-adm-hex', metavar='PIN_ADM1_HEX', dest='pin_adm_hex', default=None, - help='ADM PIN used for provisioning, as hex string (16 characters long)') + +adm_group = global_group.add_mutually_exclusive_group() +adm_group.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None, + help='ADM PIN used for provisioning (overwrites default)') +adm_group.add_argument('-A', '--pin-adm-hex', metavar='PIN_ADM1_HEX', dest='pin_adm_hex', default=None, + help='ADM PIN used for provisioning, as hex string (16 characters long)') if __name__ == '__main__': -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id80a68e615fc1e457bde3dff8817776826fc6d8e Gerrit-Change-Number: 23719 Gerrit-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 Apr 11 10:35:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 10:35:34 +0000 Subject: Change in pysim[master]: init_reader: Print device name/number of chosen reader References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23720 ) Change subject: init_reader: Print device name/number of chosen reader ...................................................................... init_reader: Print device name/number of chosen reader It's sometimes not clear what automatic defaults are chosen when starting a pySim program; let's inform the user of the chosen reader. Change-Id: I87fd934243bc3556fd6db0ce6d219c22a60c2db4 --- M pySim/transport/__init__.py 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/20/23720/1 diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 290bc7c..64a06a5 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -182,19 +182,20 @@ sl = None # type : :Optional[LinkBase] try: if opts.pcsc_dev is not None: - print("Using PC/SC reader interface") + print("Using PC/SC reader interface (dev_number=%u)" % opts.pcsc_dev) from pySim.transport.pcsc import PcscSimLink sl = PcscSimLink(opts.pcsc_dev, **kwargs) elif opts.osmocon_sock is not None: - print("Using Calypso-based (OsmocomBB) reader interface") + print("Using Calypso-based (OsmocomBB) reader interface (sock='%s')" % opts.osmocon_sock) from pySim.transport.calypso import CalypsoSimLink sl = CalypsoSimLink(sock_path=opts.osmocon_sock, **kwargs) elif opts.modem_dev is not None: - print("Using modem for Generic SIM Access (3GPP TS 27.007)") + print("Using modem for Generic SIM Access (3GPP TS 27.007) (dev='%s', baud=%u)" % + (opts.modem_dev, opts.modem_baud)) from pySim.transport.modem_atcmd import ModemATCommandLink sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud, **kwargs) else: # Serial reader is default - print("Using serial reader interface") + print("Using serial reader interface (dev='%s', baud=%u)" % (opts.device, opts.baudrate)) from pySim.transport.serial import SerialSimLink sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate, **kwargs) return sl -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I87fd934243bc3556fd6db0ce6d219c22a60c2db4 Gerrit-Change-Number: 23720 Gerrit-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 Apr 11 10:35:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 10:35:34 +0000 Subject: Change in pysim[master]: Move reader related argument parser to transport module References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23721 ) Change subject: Move reader related argument parser to transport module ...................................................................... Move reader related argument parser to transport module Ideally that shared definition would be used by all programs, rather than copy+pasting it. Unfortunately pySim-{read,prog} are still using optparse and first need to be converted to argparse. Change-Id: If77f53850e1ca65f42cf1dca3e0f460dac1b0d1a --- M pySim-shell.py M pySim/transport/__init__.py 2 files changed, 29 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/21/23721/1 diff --git a/pySim-shell.py b/pySim-shell.py index 2a7c377..e228038 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -36,7 +36,7 @@ from pySim.exceptions import * from pySim.commands import SimCardCommands -from pySim.transport import init_reader, ApduTracer +from pySim.transport import init_reader, ApduTracer, argparse_add_reader_args from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, h2s, JsonEncoder from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex @@ -431,32 +431,12 @@ option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell', formatter_class=argparse.ArgumentDefaultsHelpFormatter) - -serial_group = option_parser.add_argument_group('Serial Reader') -serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', - help='Serial Device for SIM access') -serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, - help='Baud rate used for SIM access') - -pcsc_group = option_parser.add_argument_group('PC/SC Reader') -pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, - help='PC/SC reader number to use for SIM access') - -modem_group = option_parser.add_argument_group('AT Command Modem Reader') -modem_group.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, - help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') -modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, - help='Baud rate used for modem port') - -osmobb_group = option_parser.add_argument_group('OsmocomBB Reader') -osmobb_group.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, - help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)') +argparse_add_reader_args(option_parser) global_group = option_parser.add_argument_group('General Options') global_group.add_argument('--script', metavar='PATH', default=None, - help='script with pySim-shell commands to be executed automatically at start-up') -global_group.add_argument('--csv', metavar='FILE', default=None, - help='Read card data from CSV file') + help='script with pySim-shell commands to be executed automatically at start-up') +global_group.add_argument('--csv', metavar='FILE', default=None, help='Read card data from CSV file') adm_group = global_group.add_mutually_exclusive_group() adm_group.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None, diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 64a06a5..14f5aaf 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -3,6 +3,7 @@ """ pySim: PCSC reader transport link base """ +import argparse from typing import Optional from pySim.exceptions import * @@ -175,6 +176,30 @@ raise SwMatchError(sw, sw_exp.lower(), self.sw_interpreter) return (rsp, sw) +def argparse_add_reader_args(arg_parser): + """Add all reader related arguments to the given argparse.Argumentparser instance.""" + serial_group = arg_parser.add_argument_group('Serial Reader') + serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', + help='Serial Device for SIM access') + serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, + help='Baud rate used for SIM access') + + pcsc_group = arg_parser.add_argument_group('PC/SC Reader') + pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, + help='PC/SC reader number to use for SIM access') + + modem_group = arg_parser.add_argument_group('AT Command Modem Reader') + modem_group.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, + help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') + modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, + help='Baud rate used for modem port') + + osmobb_group = arg_parser.add_argument_group('OsmocomBB Reader') + osmobb_group.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, + help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)') + + return arg_parser + def init_reader(opts, **kwargs) -> Optional[LinkBase]: """ Init card reader driver -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If77f53850e1ca65f42cf1dca3e0f460dac1b0d1a Gerrit-Change-Number: 23721 Gerrit-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 Apr 11 10:35:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 10:35:34 +0000 Subject: Change in pysim[master]: pySim-read: Migrate over to use shared argparse from transport References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23722 ) Change subject: pySim-read: Migrate over to use shared argparse from transport ...................................................................... pySim-read: Migrate over to use shared argparse from transport Now that we have a shared argparse definition for all reader related options in the transport module, use that. Change-Id: I12ca1a484a5d6e84820d9761c9701f8a94381f66 --- M docs/legacy.rst M pySim-read.py 2 files changed, 12 insertions(+), 53 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/22/23722/1 diff --git a/docs/legacy.rst b/docs/legacy.rst index dad83d8..ec3ddfc 100644 --- a/docs/legacy.rst +++ b/docs/legacy.rst @@ -84,18 +84,9 @@ * EF.IST -:: +pySim-read usage +~~~~~~~~~~~~~~~~ - Usage: pySim-read.py [options] - - Options: - -h, --help show this help message and exit - -d DEV, --device=DEV Serial Device for SIM access [default: /dev/ttyUSB0] - -b BAUD, --baud=BAUD Baudrate used for SIM access [default: 9600] - -p PCSC, --pcsc-device=PCSC - Which PC/SC reader number for SIM access - --modem-device=DEV Serial port of modem for Generic SIM Access (3GPP TS - 27.007) - --modem-baud=BAUD Baudrate used for modem's port [default: 115200] - --osmocon=PATH Socket path for Calypso (e.g. Motorola C1XX) based - reader (via OsmocomBB) +.. argparse:: + :module: pySim-read + :func: option_parser diff --git a/pySim-read.py b/pySim-read.py index 59c5762..9f32627 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -23,7 +23,7 @@ # import hashlib -from optparse import OptionParser +import argparse import os import random import re @@ -33,53 +33,21 @@ from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map from pySim.commands import SimCardCommands -from pySim.transport import init_reader +from pySim.transport import init_reader, argparse_add_reader_args from pySim.cards import card_detect, Card, UsimCard, IsimCard from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, dec_addr_tlv from pySim.utils import h2s, format_ePDGSelection -def parse_options(): - - parser = OptionParser(usage="usage: %prog [options]") - - parser.add_option("-d", "--device", dest="device", metavar="DEV", - help="Serial Device for SIM access [default: %default]", - default="/dev/ttyUSB0", - ) - parser.add_option("-b", "--baud", dest="baudrate", type="int", metavar="BAUD", - help="Baudrate used for SIM access [default: %default]", - default=9600, - ) - parser.add_option("-p", "--pcsc-device", dest="pcsc_dev", type='int', metavar="PCSC", - help="Which PC/SC reader number for SIM access", - default=None, - ) - parser.add_option("--modem-device", dest="modem_dev", metavar="DEV", - help="Serial port of modem for Generic SIM Access (3GPP TS 27.007)", - default=None, - ) - parser.add_option("--modem-baud", dest="modem_baud", type="int", metavar="BAUD", - help="Baudrate used for modem's port [default: %default]", - default=115200, - ) - parser.add_option("--osmocon", dest="osmocon_sock", metavar="PATH", - help="Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)", - default=None, - ) - - (options, args) = parser.parse_args() - - if args: - parser.error("Extraneous arguments") - - return options - +option_parser = argparse.ArgumentParser(prog='pySim-read', + description='Legacy tool for reading some parts of a SIM card', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) +argparse_add_reader_args(option_parser) if __name__ == '__main__': # Parse options - opts = parse_options() + opts = option_parser.parse_args() # Init card reader driver sl = init_reader(opts) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I12ca1a484a5d6e84820d9761c9701f8a94381f66 Gerrit-Change-Number: 23722 Gerrit-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 Apr 11 12:37:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 12:37:51 +0000 Subject: Change in pysim[master]: integrate 'construct' python library In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23705 ) Change subject: integrate 'construct' python library ...................................................................... Patch Set 3: Verified+1 FYI, I've manually installed + tested this even on Debian9, and it works (using 'pip3' to install construct) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibf457aa8b9480a8db5979defcfafd67674303f6c Gerrit-Change-Number: 23705 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 11 Apr 2021 12:37: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 Apr 11 15:11:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 11 Apr 2021 15:11:31 +0000 Subject: Change in pysim[master]: init_reader: Print device name/number of chosen reader In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23720 ) Change subject: init_reader: Print device name/number of chosen reader ...................................................................... Patch Set 1: We used to have this information printed, but then @dexter has removed it in I243cc332f075d007b1c111292effcc610e874eb3 because of some reader index mess happening in our build verification setup. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I87fd934243bc3556fd6db0ce6d219c22a60c2db4 Gerrit-Change-Number: 23720 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 11 Apr 2021 15:11: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 Sun Apr 11 15:15:59 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 11 Apr 2021 15:15:59 +0000 Subject: Change in pysim[master]: init_reader: Print device name/number of chosen reader In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23720 ) Change subject: init_reader: Print device name/number of chosen reader ...................................................................... Patch Set 1: Code-Review+1 I vote for this change. We should not make logging messages less informative just because of the design flaws in the build setup (lazy stdout vs file matching). Also, using Python's logging framework instead of print() statements may be the key to improve the situation. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I87fd934243bc3556fd6db0ce6d219c22a60c2db4 Gerrit-Change-Number: 23720 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 11 Apr 2021 15:15: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 Sun Apr 11 20:28:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 11 Apr 2021 20:28:03 +0000 Subject: Change in pysim[master]: init_reader: Print device name/number of chosen reader In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23720 ) Change subject: init_reader: Print device name/number of chosen reader ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+1 > > I vote for this change. We should not make logging messages less informative just because of the design flaws in the build setup (lazy stdout vs file matching). Also, using Python's logging framework instead of print() statements may be the key to improve the situation. 100% ACK. The tests mus accomodate the code, not the other way around. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I87fd934243bc3556fd6db0ce6d219c22a60c2db4 Gerrit-Change-Number: 23720 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 11 Apr 2021 20:28:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 01:24:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 01:24:57 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv2 PDUs using declarative codec 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/osmocom-bb/+/23678 to look at the new patch set (#3). Change subject: trx_toolkit: define TRXDv2 PDUs using declarative codec ...................................................................... trx_toolkit: define TRXDv2 PDUs using declarative codec Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/trxd_proto.py 1 file changed, 88 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/78/23678/3 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Gerrit-Change-Number: 23678 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 Mon Apr 12 01:30:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 01:30:33 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_msg.py: add type hints to static methods In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23676 ) Change subject: trx_toolkit/data_msg.py: add type hints to static methods ...................................................................... trx_toolkit/data_msg.py: add type hints to static methods Change-Id: I06fd8bc7418700de40467fd63a08da2bc2abcea2 --- M src/target/trx_toolkit/data_msg.py 1 file changed, 5 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/target/trx_toolkit/data_msg.py b/src/target/trx_toolkit/data_msg.py index 742dce4..f5d570f 100644 --- a/src/target/trx_toolkit/data_msg.py +++ b/src/target/trx_toolkit/data_msg.py @@ -25,6 +25,7 @@ import struct import abc +from typing import List from enum import Enum from gsm_shared import * @@ -187,22 +188,22 @@ return result @staticmethod - def usbit2sbit(bits): + def usbit2sbit(bits: List[int]) -> List[int]: ''' Convert unsigned soft-bits {254..0} to soft-bits {-127..127}. ''' return [-127 if (b == 0xff) else 127 - b for b in bits] @staticmethod - def sbit2usbit(bits): + def sbit2usbit(bits: List[int]) -> List[int]: ''' Convert soft-bits {-127..127} to unsigned soft-bits {254..0}. ''' return [127 - b for b in bits] @staticmethod - def sbit2ubit(bits): + def sbit2ubit(bits: List[int]) -> List[int]: ''' Convert soft-bits {-127..127} to bits {1..0}. ''' return [int(b < 0) for b in bits] @staticmethod - def ubit2sbit(bits): + def ubit2sbit(bits: List[int]) -> List[int]: ''' Convert bits {1..0} to soft-bits {-127..127}. ''' return [-127 if b else 127 for b in bits] -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I06fd8bc7418700de40467fd63a08da2bc2abcea2 Gerrit-Change-Number: 23676 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 gerrit-no-reply at lists.osmocom.org Mon Apr 12 06:41:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 12 Apr 2021 06:41:54 +0000 Subject: Change in osmo-gsm-manuals[master]: fix tests/Makefile.am: exclude file 'mgcp_extension_osmux.adoc' In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23693 ) Change subject: fix tests/Makefile.am: exclude file 'mgcp_extension_osmux.adoc' ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23693 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: I00efafc822f46126b59d20e86bb07ec991768c28 Gerrit-Change-Number: 23693 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 06:41: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 Apr 12 06:42:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 12 Apr 2021 06:42:58 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: generalze description of the 'RFU' ('PAD') field In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 ) Change subject: TRXD: generalze description of the 'RFU' ('PAD') field ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 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: I9ac9d387325627d18811fae1d0d7930b69f08129 Gerrit-Change-Number: 23687 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 06:42: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 Apr 12 06:44:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 12 Apr 2021 06:44:28 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: clarify modulation specific length of Soft-/Hard-bits In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23688 ) Change subject: TRXD: clarify modulation specific length of Soft-/Hard-bits ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23688 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: Icd807810060372c8f27d81f8a825ea9a5f384c1c Gerrit-Change-Number: 23688 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 06:44: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 Apr 12 06:52:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 12 Apr 2021 06:52:56 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 06:52: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 Apr 12 08:06:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:06:36 +0000 Subject: Change in docker-playground[master]: gbproxy: Add mp_gbproxy_ip to check BVC FSM state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23683 ) Change subject: gbproxy: Add mp_gbproxy_ip to check BVC FSM state ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc Gerrit-Change-Number: 23683 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 08:06: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 Apr 12 08:06:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:06:38 +0000 Subject: Change in docker-playground[master]: gbproxy: Add mp_gbproxy_ip to check BVC FSM state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23683 ) Change subject: gbproxy: Add mp_gbproxy_ip to check BVC FSM state ...................................................................... gbproxy: Add mp_gbproxy_ip to check BVC FSM state In docker-playground.git I272e43b9be8ba53d8a815e8ab099c939f63413a7 we introduce FSM state introspection and we need to add the CTRL hostname here. Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 4 files changed, 8 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, approved laforge: Verified diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index 361b32c..ce4623a 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_gbproxy_ip := "172.18.25.10" GBProxy_Tests.mp_enable_bss_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 7123158..f38f23a 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -19,6 +19,9 @@ no login bind 0.0.0.0 ! +ctrl + bind 0.0.0.0 +! gbproxy nri bitlen 5 sgsn nsei 101 diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index 3ad875c..e9de732 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -12,6 +12,7 @@ *.GBPVTY.CTRL_HOSTNAME := "172.18.24.10" [MODULE_PARAMETERS] +GBProxy_Tests.mp_gbproxy_ip := "172.18.24.10" GBProxy_Tests.mp_nsconfig_sgsn := { { handle_sns := true, diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index 3a73a30..f6d358e 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -19,6 +19,9 @@ no login bind 0.0.0.0 ! +ctrl + bind 0.0.0.0 +! gbproxy nri bitlen 5 sgsn nsei 101 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idcd77353a661cfc1685ded64b5993ff63637addc Gerrit-Change-Number: 23683 Gerrit-PatchSet: 2 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 Mon Apr 12 08:07:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:23 +0000 Subject: Change in pysim[master]: integrate 'construct' python library In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23705 ) Change subject: integrate 'construct' python library ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibf457aa8b9480a8db5979defcfafd67674303f6c Gerrit-Change-Number: 23705 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 08:07: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 Apr 12 08:07:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:25 +0000 Subject: Change in pysim[master]: pySim-shell: Authenticate (3g) support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23706 ) Change subject: pySim-shell: Authenticate (3g) support ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id5697463e29c3dceff98bcf80f5400f7f2bcaa6c Gerrit-Change-Number: 23706 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 08:07: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 Apr 12 08:07:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:29 +0000 Subject: Change in pysim[master]: pySim-shell: Adds support for DEACTIVATE FILE + ACTIVATE FILE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23707 ) Change subject: pySim-shell: Adds support for DEACTIVATE FILE + ACTIVATE FILE ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22207dde20f991b0a22dea8f5dd695a0ec99da33 Gerrit-Change-Number: 23707 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 08:07: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 Apr 12 08:07:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:33 +0000 Subject: Change in pysim[master]: pySim-shell: Add open_channel + close_channel commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23708 ) Change subject: pySim-shell: Add open_channel + close_channel commands ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I53d9d7f7720eb5f10956bff74ea7ba9fd3b3bd19 Gerrit-Change-Number: 23708 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 08:07:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:07:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:36 +0000 Subject: Change in pysim[master]: filesystem: Introduce 'construct' support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23709 ) Change subject: filesystem: Introduce 'construct' support ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id0765ec3ddb8c044838ce47d0ff8740720a32b15 Gerrit-Change-Number: 23709 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 08:07:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:07:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:40 +0000 Subject: Change in pysim[master]: ts_31_102.py: switch EF.Keys from imperative to declarative codec In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23710 ) Change subject: ts_31_102.py: switch EF.Keys from imperative to declarative codec ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I215a61c1e44ee2c5df70a8ca96344b4dd4d93c00 Gerrit-Change-Number: 23710 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 08:07:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:07:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:43 +0000 Subject: Change in pysim[master]: lots of file definitions for classic SIM and USIM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23711 ) Change subject: lots of file definitions for classic SIM and USIM ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I91475df4a5eaca423473aaebba8c69c54c9a0c1a Gerrit-Change-Number: 23711 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 08:07: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 Apr 12 08:07:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:46 +0000 Subject: Change in pysim[master]: fix various typos all over the code In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23712 ) Change subject: fix various typos all over the code ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic8392a951bf94f67b51e35bed95d0e856f7a9250 Gerrit-Change-Number: 23712 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 08:07: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 Apr 12 08:07:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:49 +0000 Subject: Change in pysim[master]: rename manual to be consistent with osmo-gsm-manuals projects In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23713 ) Change subject: rename manual to be consistent with osmo-gsm-manuals projects ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad1d96f2b0f95a010b0b30da00d3eef754c1ec44 Gerrit-Change-Number: 23713 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 08: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 Mon Apr 12 08:07:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:52 +0000 Subject: Change in pysim[master]: integrate 'construct' python library In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23705 ) Change subject: integrate 'construct' python library ...................................................................... integrate 'construct' python library 'construct' is a declarative symmetric encoder/decoder for user specified binary formats. It should come in extremely handy in tools like pySim. We start the integration by adding transport methods for transceiving APDUs with built-in encoding of the command data and decoding of the response data. Change-Id: Ibf457aa8b9480a8db5979defcfafd67674303f6c --- M contrib/jenkins.sh M docs/library.rst A pySim/construct.py M pySim/transport/__init__.py M requirements.txt M setup.py 6 files changed, 103 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved; Verified fixeria: Looks good to me, but someone else must approve diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index f83e6a5..dc2692c 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -15,6 +15,7 @@ pip install pyyaml pip install cmd2 pip install jsonpath-ng +pip install construct # Execute automatically discovered unit tests first python -m unittest discover -v -s tests/ diff --git a/docs/library.rst b/docs/library.rst index 656a780..e2e24a7 100644 --- a/docs/library.rst +++ b/docs/library.rst @@ -73,6 +73,14 @@ .. automodule:: pySim.transport.serial :members: + +pySim construct utilities +------------------------- + +.. automodule:: pySim.construct + :members: + + pySim utility functions ----------------------- diff --git a/pySim/construct.py b/pySim/construct.py new file mode 100644 index 0000000..03d284e --- /dev/null +++ b/pySim/construct.py @@ -0,0 +1,42 @@ +from construct import * +from pySim.utils import b2h, h2b + +"""Utility code related to the integration of the 'construct' declarative parser.""" + +# (C) 2021 by Harald Welte +# +# 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 . + + +class HexAdapter(Adapter): + """convert a bytes() type to a string of hex nibbles.""" + def _decode(self, obj, context, path): + return b2h(obj) + def _encode(self, obj, context, path): + return h2b(obj) + +def filter_dict(d, exclude_prefix='_'): + """filter the input dict to ensure no keys starting with 'exclude_prefix' remain.""" + res = {} + for (key, value) in d.items(): + if key.startswith(exclude_prefix): + continue + if type(value) is dict: + res[key] = filter_dict(value) + else: + res[key] = value + return res + +# here we collect some shared / common definitions of data types +LV = Prefixed(Int8ub, HexAdapter(GreedyBytes)) diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 96ad974..290bc7c 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -6,10 +6,12 @@ from typing import Optional from pySim.exceptions import * -from pySim.utils import sw_match +from pySim.construct import filter_dict +from pySim.utils import sw_match, b2h, h2b, i2h # # Copyright (C) 2009-2010 Sylvain Munaut +# Copyright (C) 2021 Harald Welte # # 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 @@ -127,6 +129,52 @@ raise SwMatchError(rv[1], sw.lower(), self.sw_interpreter) return rv + def send_apdu_constr(self, cla, ins, p1, p2, cmd_constr, cmd_data, resp_constr): + """Build and sends an APDU using a 'construct' definition; parses response. + + Args: + cla : string (in hex) ISO 7816 class byte + ins : string (in hex) ISO 7816 instruction byte + p1 : string (in hex) ISO 7116 Parameter 1 byte + p2 : string (in hex) ISO 7116 Parameter 2 byte + cmd_cosntr : defining how to generate binary APDU command data + cmd_data : command data passed to cmd_constr + resp_cosntr : defining how to decode binary APDU response data + Returns: + Tuple of (decoded_data, sw) + """ + cmd = cmd_constr.build(cmd_data) if cmd_data else '' + p3 = i2h([len(cmd)]) + pdu = ''.join([cla, ins, p1, p2, p3, b2h(cmd)]) + (data, sw) = self.send_apdu(pdu) + if data: + # filter the resulting dict to avoid '_io' members inside + rsp = filter_dict(resp_constr.parse(h2b(data))) + else: + rsp = None + return (rsp, sw) + + def send_apdu_constr_checksw(self, cla, ins, p1, p2, cmd_constr, cmd_data, resp_constr, + sw_exp="9000"): + """Build and sends an APDU using a 'construct' definition; parses response. + + Args: + cla : string (in hex) ISO 7816 class byte + ins : string (in hex) ISO 7816 instruction byte + p1 : string (in hex) ISO 7116 Parameter 1 byte + p2 : string (in hex) ISO 7116 Parameter 2 byte + cmd_cosntr : defining how to generate binary APDU command data + cmd_data : command data passed to cmd_constr + resp_cosntr : defining how to decode binary APDU response data + exp_sw : string (in hex) of status word (ex. "9000") + Returns: + Tuple of (decoded_data, sw) + """ + (rsp, sw) = self.send_apdu_constr(cla, ins, p1, p2, cmd_constr, cmd_data, resp_constr) + if not sw_match(sw, sw_exp): + raise SwMatchError(sw, sw_exp.lower(), self.sw_interpreter) + return (rsp, sw) + def init_reader(opts, **kwargs) -> Optional[LinkBase]: """ Init card reader driver diff --git a/requirements.txt b/requirements.txt index f203ed1..6da27cc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,3 +3,4 @@ pytlv cmd2 jsonpath-ng +construct diff --git a/setup.py b/setup.py index e7ab1c9..0fa3f1a 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,8 @@ "serial", "pytlv", "cmd2", - "jsonpath-ng" + "jsonpath-ng", + "construct", ], scripts=[ 'pySim-prog.py', -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibf457aa8b9480a8db5979defcfafd67674303f6c Gerrit-Change-Number: 23705 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Mon Apr 12 08:07:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:53 +0000 Subject: Change in pysim[master]: pySim-shell: Authenticate (3g) support In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23706 ) Change subject: pySim-shell: Authenticate (3g) support ...................................................................... pySim-shell: Authenticate (3g) support This adds support for AUTHENTICATE to the USIM and ISIM application, based on the newly-introduced 'construct' encoder/decoder support. Change-Id: Id5697463e29c3dceff98bcf80f5400f7f2bcaa6c --- M docs/shell.rst M pySim/commands.py M pySim/ts_31_102.py M pySim/ts_31_103.py 4 files changed, 56 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/shell.rst b/docs/shell.rst index 854944c..1072ee8 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -300,6 +300,17 @@ This allows for easy interactive modification of file contents. +USIM commands +------------- + +authenticate +~~~~~~~~~~~~ +.. argparse:: + :module: pySim.ts_31_102 + :func: ADF_USIM.AddlShellCommands.authenticate_parser + + + cmd2 settable parameters ------------------------ diff --git a/pySim/commands.py b/pySim/commands.py index 7919099..791b995 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -21,6 +21,8 @@ # along with this program. If not, see . # +from construct import * +from pySim.construct import LV from pySim.utils import rpad, b2h, sw_match from pySim.exceptions import SwMatchError @@ -274,6 +276,26 @@ self.select_path(['3f00', '7f20']) return self._tp.send_apdu(self.cla_byte + '88000010' + rand) + def authenticate(self, rand:str, autn:str, context='3g'): + """Execute AUTHENTICATE (USIM/ISIM).""" + # 3GPP TS 31.102 Section 7.1.2.1 + AuthCmd3G = Struct('rand'/LV, 'autn'/Optional(LV)) + AuthResp3GSyncFail = Struct(Const(b'\xDC'), 'auts'/LV) + AuthResp3GSuccess = Struct(Const(b'\xDB'), 'res'/LV, 'ck'/LV, 'ik'/LV, 'kc'/Optional(LV)) + AuthResp3G = Select(AuthResp3GSyncFail, AuthResp3GSuccess) + # build parameters + cmd_data = {'rand': rand, 'autn': autn} + if context == '3g': + p2 = '81' + elif context == 'gsm': + p2 = '80' + (data, sw) = self._tp.send_apdu_constr(self.cla_byte, '88', '00', p2, AuthCmd3G, cmd_data, AuthResp3G) + if 'auts' in data: + ret = {'synchronisation_failure': data} + else: + ret = {'successful_3g_authentication': data} + return (ret, sw) + def reset_card(self): """Physically reset the card""" return self._tp.reset_card() diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 267008d..cdb6612 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -268,6 +268,7 @@ # ADF.USIM ###################################################################### +from struct import unpack, pack from pySim.filesystem import * from pySim.ts_51_011 import EF_IMSI, EF_xPLMNwAcT, EF_SPN, EF_CBMI, EF_ACC, EF_PLMNsel, EF_AD from pySim.ts_51_011 import EF_CBMID, EF_CBMIR @@ -489,6 +490,8 @@ def __init__(self, aid='a0000000871002', name='ADF.USIM', fid=None, sfid=None, desc='USIM Application'): super().__init__(aid=aid, fid=fid, sfid=sfid, name=name, desc=desc) + # add those commands to the general commands of a TransparentEF + self.shell_commands += [self.AddlShellCommands()] files = [ EF_LI(sfid=0x02), @@ -520,6 +523,23 @@ def decode_select_response(self, data_hex): return pySim.ts_102_221.decode_select_response(data_hex) + @with_default_category('Application-Specific Commands') + class AddlShellCommands(CommandSet): + def __init__(self): + super().__init__() + + authenticate_parser = argparse.ArgumentParser() + authenticate_parser.add_argument('rand', help='Random challenge') + authenticate_parser.add_argument('autn', help='Authentication Nonce') + #authenticate_parser.add_argument('--context', help='Authentication context', default='3G') + @cmd2.with_argparser(authenticate_parser) + def do_authenticate(self, opts): + """Perform Authentication and Key Agreement (AKA).""" + (data, sw) = self._cmd.card._scc.authenticate(opts.rand, opts.autn) + self._cmd.poutput_json(data) + + + # TS 31.102 Section 7.3 sw_usim = { 'Security management': { diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index 8209845..effdbf7 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -25,6 +25,7 @@ from pySim.filesystem import * from pySim.utils import * from pySim.ts_51_011 import EF_AD +from pySim.ts_31_102 import ADF_USIM import pySim.ts_102_221 # Mapping between ISIM Service Number and its description @@ -186,6 +187,8 @@ EF_WebRTCURI(), ] self.add_files(files) + # add those commands to the general commands of a TransparentEF + self.shell_commands += [ADF_USIM.AddlShellCommands()] def decode_select_response(self, data_hex): return pySim.ts_102_221.decode_select_response(data_hex) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id5697463e29c3dceff98bcf80f5400f7f2bcaa6c Gerrit-Change-Number: 23706 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Mon Apr 12 08:07:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:54 +0000 Subject: Change in pysim[master]: pySim-shell: Adds support for DEACTIVATE FILE + ACTIVATE FILE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23707 ) Change subject: pySim-shell: Adds support for DEACTIVATE FILE + ACTIVATE FILE ...................................................................... pySim-shell: Adds support for DEACTIVATE FILE + ACTIVATE FILE Change-Id: I22207dde20f991b0a22dea8f5dd695a0ec99da33 --- M docs/shell.rst M pySim-shell.py M pySim/commands.py 3 files changed, 25 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/shell.rst b/docs/shell.rst index 1072ee8..f2ddba1 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -120,6 +120,14 @@ :module: pySim-shell :func: Iso7816Commands.verify_chv_parser +deactivate_file +~~~~~~~~~~~~~~~ +Deactivate the currently selected file. This used to be called INVALIDATE in TS 11.11. + + +activate_file +~~~~~~~~~~~~~ +Activate the currently selected file. This used to be called REHABILITATE in TS 11.11. pySim commands diff --git a/pySim-shell.py b/pySim-shell.py index cfba73f..b2ccb9a 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -403,6 +403,15 @@ (data, sw) = self._cmd.card._scc.enable_chv(opts.pin_nr, h2b(pin)) self._cmd.poutput("CHV enable successful") + def do_deactivate_file(self, opts): + """Deactivate the current EF""" + fid = self._cmd.rs.selected_file.fid + (data, sw) = self._cmd.card._scc.deactivate_file(fid) + + def do_activate_file(self, opts): + """Activate the current EF""" + fid = self._cmd.rs.selected_file.fid + (data, sw) = self._cmd.card._scc.activate_file(fid) def parse_options(): diff --git a/pySim/commands.py b/pySim/commands.py index 791b995..2894d31 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -296,6 +296,14 @@ ret = {'successful_3g_authentication': data} return (ret, sw) + def deactivate_file(self): + """Execute DECATIVATE FILE command as per TS 102 221 Section 11.1.14.""" + return self._tp.send_apdu_constr_checksw(self.cla_byte, '04', '00', '00', None, None, None) + + def activate_file(self): + """Execute ACTIVATE FILE command as per TS 102 221 Section 11.1.15.""" + return self._tp.send_apdu_constr_checksw(self.cla_byte, '44', '00', '00', None, None, None) + def reset_card(self): """Physically reset the card""" return self._tp.reset_card() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22207dde20f991b0a22dea8f5dd695a0ec99da33 Gerrit-Change-Number: 23707 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Mon Apr 12 08:07:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:55 +0000 Subject: Change in pysim[master]: pySim-shell: Add open_channel + close_channel commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23708 ) Change subject: pySim-shell: Add open_channel + close_channel commands ...................................................................... pySim-shell: Add open_channel + close_channel commands Change-Id: I53d9d7f7720eb5f10956bff74ea7ba9fd3b3bd19 --- M docs/shell.rst M pySim-shell.py M pySim/commands.py 3 files changed, 38 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/shell.rst b/docs/shell.rst index f2ddba1..30938fe 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -129,6 +129,18 @@ ~~~~~~~~~~~~~ Activate the currently selected file. This used to be called REHABILITATE in TS 11.11. +open_channel +~~~~~~~~~~~~ +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.open_chan_parser + +close_channel +~~~~~~~~~~~~~ +.. argparse:: + :module: pySim-shell + :func: Iso7816Commands.close_chan_parser + pySim commands -------------- diff --git a/pySim-shell.py b/pySim-shell.py index b2ccb9a..132733d 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -413,6 +413,23 @@ fid = self._cmd.rs.selected_file.fid (data, sw) = self._cmd.card._scc.activate_file(fid) + open_chan_parser = argparse.ArgumentParser() + open_chan_parser.add_argument('chan_nr', type=int, default=0, help='Channel Number') + + @cmd2.with_argparser(open_chan_parser) + def do_open_channel(self, opts): + """Open a logical channel.""" + (data, sw) = self._cmd.card._scc.manage_channel(mode='open', lchan_nr=opts.chan_nr) + + close_chan_parser = argparse.ArgumentParser() + close_chan_parser.add_argument('chan_nr', type=int, default=0, help='Channel Number') + + @cmd2.with_argparser(close_chan_parser) + def do_close_channel(self, opts): + """Close a logical channel.""" + (data, sw) = self._cmd.card._scc.manage_channel(mode='close', lchan_nr=opts.chan_nr) + + def parse_options(): parser = OptionParser(usage="usage: %prog [options]") diff --git a/pySim/commands.py b/pySim/commands.py index 2894d31..33aec12 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -304,6 +304,15 @@ """Execute ACTIVATE FILE command as per TS 102 221 Section 11.1.15.""" return self._tp.send_apdu_constr_checksw(self.cla_byte, '44', '00', '00', None, None, None) + def manage_channel(self, mode='open', lchan_nr=0): + """Execute MANAGE CHANNEL command as per TS 102 221 Section 11.1.17.""" + if mode == 'close': + p1 = 0x80 + else: + p1 = 0x00 + pdu = self.cla_byte + '70%02x%02x00' % (p1, lchan_nr) + return self._tp.send_apdu_checksw(pdu) + def reset_card(self): """Physically reset the card""" return self._tp.reset_card() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I53d9d7f7720eb5f10956bff74ea7ba9fd3b3bd19 Gerrit-Change-Number: 23708 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Mon Apr 12 08:07:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:55 +0000 Subject: Change in pysim[master]: filesystem: Introduce 'construct' support In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23709 ) Change subject: filesystem: Introduce 'construct' support ...................................................................... filesystem: Introduce 'construct' support This allows for pure declarative encoders/decoders for linear fixed and transparent EFs. Change-Id: Id0765ec3ddb8c044838ce47d0ff8740720a32b15 --- M pySim/construct.py M pySim/filesystem.py 2 files changed, 36 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/construct.py b/pySim/construct.py index 03d284e..839497c 100644 --- a/pySim/construct.py +++ b/pySim/construct.py @@ -1,5 +1,5 @@ from construct import * -from pySim.utils import b2h, h2b +from pySim.utils import b2h, h2b, swap_nibbles """Utility code related to the integration of the 'construct' declarative parser.""" @@ -26,6 +26,13 @@ def _encode(self, obj, context, path): return h2b(obj) +class BcdAdapter(Adapter): + """convert a bytes() type to a string of BCD nibbles.""" + def _decode(self, obj, context, path): + return swap_nibbles(b2h(obj)) + def _encode(self, obj, context, path): + return h2b(swap_nibbles(obj)) + def filter_dict(d, exclude_prefix='_'): """filter the input dict to ensure no keys starting with 'exclude_prefix' remain.""" res = {} diff --git a/pySim/filesystem.py b/pySim/filesystem.py index e771f3c..49520c3 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -35,6 +35,7 @@ from typing import cast, Optional, Iterable, List, Any, Dict, Tuple from pySim.utils import sw_match, h2b, b2h, is_hex +from pySim.construct import filter_dict from pySim.exceptions import * from pySim.jsonpath import js_path_find, js_path_modify @@ -466,6 +467,7 @@ size : tuple of (minimum_size, recommended_size) """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent) + self._construct = None self.size = size self.shell_commands = [self.ShellCommands()] @@ -487,6 +489,8 @@ method = getattr(self, '_decode_hex', None) if callable(method): return method(b2h(raw_bin_data)) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_bin_data.hex()} def decode_hex(self, raw_hex_data:str) -> dict: @@ -508,6 +512,8 @@ method = getattr(self, '_decode_bin', None) if callable(method): return method(raw_bin_data) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_bin_data.hex()} def encode_bin(self, abstract_data:dict) -> bytearray: @@ -528,6 +534,8 @@ method = getattr(self, '_encode_hex', None) if callable(method): return h2b(method(abstract_data)) + if self._construct: + return self._construct.build(abstract_data) raise NotImplementedError def encode_hex(self, abstract_data:dict) -> str: @@ -549,6 +557,8 @@ if callable(method): raw_bin_data = method(abstract_data) return b2h(raw_bin_data) + if self._construct: + return b2h(self._construct.build(abstract_data)) raise NotImplementedError @@ -683,6 +693,7 @@ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent) self.rec_len = rec_len self.shell_commands = [self.ShellCommands()] + self._construct = None def decode_record_hex(self, raw_hex_data:str) -> dict: """Decode raw (hex string) data into abstract representation. @@ -703,6 +714,8 @@ method = getattr(self, '_decode_record_bin', None) if callable(method): return method(raw_bin_data) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_bin_data.hex()} def decode_record_bin(self, raw_bin_data:bytearray) -> dict: @@ -724,6 +737,8 @@ method = getattr(self, '_decode_record_hex', None) if callable(method): return method(raw_hex_data) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_hex_data} def encode_record_hex(self, abstract_data:dict) -> str: @@ -745,6 +760,8 @@ if callable(method): raw_bin_data = method(abstract_data) return b2h(raw_bin_data) + if self._construct: + return b2h(self._construct.build(abstract_data)) raise NotImplementedError def encode_record_bin(self, abstract_data:dict) -> bytearray: @@ -765,6 +782,8 @@ method = getattr(self, '_encode_record_hex', None) if callable(method): return h2b(method(abstract_data)) + if self._construct: + return self._construct.build(abstract_data) raise NotImplementedError class CyclicEF(LinFixedEF): @@ -813,10 +832,12 @@ method = getattr(self, '_decode_record_hex', None) if callable(method): return method(raw_hex_data) + raw_bin_data = h2b(raw_hex_data) method = getattr(self, '_decode_record_bin', None) if callable(method): - raw_bin_data = h2b(raw_hex_data) return method(raw_bin_data) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_hex_data} def decode_record_bin(self, raw_bin_data:bytearray) -> dict: @@ -838,6 +859,8 @@ method = getattr(self, '_decode_record_hex', None) if callable(method): return method(raw_hex_data) + if self._construct: + return filter_dict(self._construct.parse(raw_bin_data, total_len=len(raw_bin_data))) return {'raw': raw_hex_data} def encode_record_hex(self, abstract_data:dict) -> str: @@ -858,6 +881,8 @@ method = getattr(self, '_encode_record_bin', None) if callable(method): return b2h(method(abstract_data)) + if self._construct: + return b2h(filter_dict(self._construct.build(abstract_data))) raise NotImplementedError def encode_record_bin(self, abstract_data:dict) -> bytearray: @@ -878,6 +903,8 @@ method = getattr(self, '_encode_record_hex', None) if callable(method): return h2b(method(abstract_data)) + if self._construct: + return filter_dict(self._construct.build(abstract_data)) raise NotImplementedError def _decode_bin(self, raw_bin_data:bytearray): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id0765ec3ddb8c044838ce47d0ff8740720a32b15 Gerrit-Change-Number: 23709 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Mon Apr 12 08:07:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:55 +0000 Subject: Change in pysim[master]: ts_31_102.py: switch EF.Keys from imperative to declarative codec In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23710 ) Change subject: ts_31_102.py: switch EF.Keys from imperative to declarative codec ...................................................................... ts_31_102.py: switch EF.Keys from imperative to declarative codec Change-Id: I215a61c1e44ee2c5df70a8ca96344b4dd4d93c00 --- M pySim/ts_31_102.py 1 file changed, 3 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index cdb6612..320a2cd 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -269,6 +269,8 @@ ###################################################################### from struct import unpack, pack +from construct import * +from pySim.construct import HexAdapter from pySim.filesystem import * from pySim.ts_51_011 import EF_IMSI, EF_xPLMNwAcT, EF_SPN, EF_CBMI, EF_ACC, EF_PLMNsel, EF_AD from pySim.ts_51_011 import EF_CBMID, EF_CBMIR @@ -416,12 +418,7 @@ def __init__(self, fid='6f08', sfid=0x08, name='EF.Keys', size={33,33}, desc='Ciphering and Integrity Keys'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) - def _decode_bin(self, in_bin): - return {'ksi': in_bin[0], - 'ck': b2h(in_bin[1:17]), - 'ik': b2h(in_bin[17:33])} - def _encode_bin(self, in_json): - return h2b(in_json['ksi']) + h2b(in_json['ck']) + h2b(in_json['ik']) + self._construct = Struct('ksi'/Int8ub, 'ck'/HexAdapter(Bytes(16)), 'ik'/HexAdapter(Bytes(16))) # TS 31.103 Section 4.2.7 class EF_UST(TransparentEF): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I215a61c1e44ee2c5df70a8ca96344b4dd4d93c00 Gerrit-Change-Number: 23710 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Mon Apr 12 08:07:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:56 +0000 Subject: Change in pysim[master]: lots of file definitions for classic SIM and USIM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23711 ) Change subject: lots of file definitions for classic SIM and USIM ...................................................................... lots of file definitions for classic SIM and USIM Change-Id: I91475df4a5eaca423473aaebba8c69c54c9a0c1a --- M pySim/ts_31_102.py M pySim/ts_51_011.py 2 files changed, 490 insertions(+), 31 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 320a2cd..1558d8d 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -6,6 +6,7 @@ # # Copyright (C) 2020 Supreeth Herle +# Copyright (C) 2021 Harald Welte # # 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 @@ -270,10 +271,14 @@ from struct import unpack, pack from construct import * -from pySim.construct import HexAdapter +from pySim.construct import LV, HexAdapter, BcdAdapter from pySim.filesystem import * +from pySim.ts_102_221 import EF_ARR from pySim.ts_51_011 import EF_IMSI, EF_xPLMNwAcT, EF_SPN, EF_CBMI, EF_ACC, EF_PLMNsel, EF_AD -from pySim.ts_51_011 import EF_CBMID, EF_CBMIR +from pySim.ts_51_011 import EF_CBMID, EF_CBMIR, EF_ADN, EF_SMS, EF_MSISDN, EF_SMSP, EF_SMSS +from pySim.ts_51_011 import EF_SMSR, EF_DCK, EF_EXT, EF_CNL, EF_OPL, EF_MBI, EF_MWIS +from pySim.ts_51_011 import EF_MMSN, EF_MMSICP, EF_MMSUP, EF_MMSUCP, EF_VGCS, EF_VGCSS, EF_NIA +from pySim.ts_51_011 import EF_ACMmax, EF_AAeM, EF_eMLPP, EF_CMI import pySim.ts_102_221 @@ -422,8 +427,8 @@ # TS 31.103 Section 4.2.7 class EF_UST(TransparentEF): - def __init__(self, fid='6f38', sfid=0x04, name='EF.UST', desc='USIM Service Table'): - super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, size={1,17}) + def __init__(self, fid='6f38', sfid=0x04, name='EF.UST', desc='USIM Service Table', size={1,17}): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, size=size) # add those commands to the general commands of a TransparentEF self.shell_commands += [self.AddlShellCommands()] def _decode_bin(self, in_bin): @@ -464,23 +469,182 @@ desc='Emergency Call Codes'): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={4,20}) +# TS 31.102 Section 4.2.17 +class EF_LOCI(TransparentEF): + def __init__(self, fid='6f7e', sfid=0x0b, name='EF.LOCI', desc='Locationn information', size={11,11}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('tmsi'/HexAdapter(Bytes(4)), 'lai'/HexAdapter(Bytes(5)), 'rfu'/Int8ub, + 'lu_status'/Int8ub) + +# TS 31.102 Section 4.2.23 +class EF_PSLOCI(TransparentEF): + def __init__(self, fid='6f73', sfid=0x0c, name='EF.PSLOCI', desc='PS Locationn information', size={14,14}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('ptmsi'/HexAdapter(Bytes(4)), 'ptmsi_sig'/HexAdapter(Bytes(3)), + 'rai'/HexAdapter(Bytes(6)), 'rau_status'/Int8ub) + +# TS 31.102 Section 4.2.33 +class EF_ICI(CyclicEF): + def __init__(self, fid='6f80', sfid=0x14, name='EF.ICI', rec_len={28,48}, + desc='Incoming Call Information'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('alpha_id'/Bytes(this._.total_len-28), + 'len_of_bcd_contents'/Int8ub, + 'ton_npi'/Int8ub, + 'call_number'/BcdAdapter(Bytes(10)), + 'cap_cfg2_record_id'/Int8ub, + 'ext5_record_id'/Int8ub, + 'date_and_time'/BcdAdapter(Bytes(7)), + 'duration'/Int24ub, + 'status'/Byte, + 'link_to_phonebook'/Bytes(3)) + +# TS 31.102 Section 4.2.34 +class EF_OCI(CyclicEF): + def __init__(self, fid='6f81', sfid=0x15, name='EF.OCI', rec_len={27,47}, + desc='Outgoing Call Information'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('alpha_id'/Bytes(this._.total_len-27), + 'len_of_bcd_contents'/Int8ub, + 'ton_npi'/Int8ub, + 'call_number'/BcdAdapter(Bytes(10)), + 'cap_cfg2_record_id'/Int8ub, + 'ext5_record_id'/Int8ub, + 'date_and_time'/BcdAdapter(Bytes(7)), + 'duration'/Int24ub, + 'link_to_phonebook'/Bytes(3)) + +# TS 31.102 Section 4.2.35 +class EF_ICT(CyclicEF): + def __init__(self, fid='6f82', sfid=None, name='EF.ICT', rec_len={3,3}, + desc='Incoming Call Timer'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('accumulated_call_timer'/Int24ub) + +# TS 31.102 Section 4.2.38 +class EF_CCP2(LinFixedEF): + def __init__(self, fid='6f4f', sfid=0x16, name='EF.CCP2', desc='Capability Configuration Parameters 2'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={15,None}) + +# TS 31.102 Section 4.2.48 +class EF_ACL(TransparentEF): + def __init__(self, fid='6f57', sfid=None, name='EF.ACL', size={32,None}, + desc='Access Point Name Control List'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('num_of_apns'/Int8ub, 'tlvs'/GreedyBytes) + +# TS 31.102 Section 4.2.51 +class EF_START_HFN(TransparentEF): + def __init__(self, fid='6f5b', sfid=0x0f, name='EF.START-HFN', size={6,6}, + desc='Initialisation values for Hyperframe number'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('start_cs'/Int24ub, 'start_ps'/Int24ub) + +# TS 31.102 Section 4.2.52 +class EF_THRESHOLD(TransparentEF): + def __init__(self, fid='6f5c', sfid=0x10, name='EF.THRESHOLD', size={3,3}, + desc='Maximum value of START'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('max_start'/Int24ub) + +# TS 31.102 Section 4.2.77 +class EF_VGCSCA(TransRecEF): + def __init__(self, fid='6fd4', sfid=None, name='EF.VGCSCA', size={2,100}, rec_len=2, + desc='Voice Group Call Service Ciphering Algorithm'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) + self._construct = Struct('alg_v_ki_1'/Int8ub, 'alg_v_ki_2'/Int8ub) + +# TS 31.102 Section 4.2.79 +class EF_GBABP(TransparentEF): + def __init__(self, fid='6fd6', sfid=None, name='EF.GBABP', size={3,50}, + desc='GBA Bootstrapping parameters'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('rand'/LV, 'b_tid'/LV, 'key_lifetime'/LV) + +# TS 31.102 Section 4.2.80 +class EF_MSK(LinFixedEF): + def __init__(self, fid='6fd7', sfid=None, name='EF.MSK', desc='MBMS Service Key List'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={20,None}) + msk_ts_constr = Struct('msk_id'/Int32ub, 'timestamp_counter'/Int32ub) + self._construct = Struct('key_domain_id'/Bytes(3), + 'num_msk_id'/Int8ub, + 'msk_ids'/msk_ts_constr[this.num_msk_id]) + +# TS 31.102 Section 4.2.85 +class EF_EHPLMNPI(TransparentEF): + def __init__(self, fid='6fdb', sfid=None, name='EF.EHPLMNPI', size={1,1}, + desc='Equivalent HPLMN Presentation Indication'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('presentation_ind'/ + Enum(Byte, no_preference=0, display_highest_prio_only=1, display_all=2)) +# TS 31.102 Section 4.2.91 +class EF_EPSLOCI(TransparentEF): + def __init__(self, fid='6fe3', sfid=0x1e, name='EF.EPSLOCI', size={18,18}, + desc='EPS Location Information'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + upd_status_constr = Enum(Byte, updated=0, not_updated=1, roaming_not_allowed=2) + self._construct = Struct('guti'/Bytes(12), 'last_visited_registered_tai'/Bytes(5), + 'eps_update_status'/upd_status_constr) + +# TS 31.102 Section 4.2.96 +class EF_PWS(TransparentEF): + def __init__(self, fid='6fec', sfid=None, name='EF.PWS', desc='Public Warning System', size={1,1}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + pws_config = FlagsEnum(Byte, ignore_pws_in_hplmn_and_equivalent=1, ignore_pws_in_vplmn=2) + self._construct = Struct('pws_configuration'/pws_config) + +# TS 31.102 Section 4.2.101 +class EF_IPS(CyclicEF): + def __init__(self, fid='6ff1', sfid=None, name='EF.IPS', rec_len={4,4}, + desc='IMEI(SV) Pairing Status'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('status'/PaddedString(2, 'ascii'), + 'link_to_ef_ipd'/Int8ub, 'rfu'/Byte) + +###################################################################### +# DF.5GS +###################################################################### + +# TS 31.102 Section 4.4.11.2 +class EF_5GS3GPPLOCI(TransparentEF): + def __init__(self, fid='4f01', sfid=0x01, name='EF.5GS3GPPLOCI', size={20,20}, + desc='5S 3GP location information'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + upd_status_constr = Enum(Byte, updated=0, not_updated=1, roaming_not_allowed=2) + self._construct = Struct('5g_guti'/Bytes(13), 'last_visited_registered_tai_in_5gs'/Bytes(6), + '5gs_update_status'/upd_status_constr) + +# TS 31.102 Section 4.4.11.7 +class EF_UAC_AIC(TransparentEF): + def __init__(self, fid='4f06', sfid=0x06, name='EF.UAC_AIC', size={4,4}, + desc='UAC Access Identities Configuration'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + cfg_constr = FlagsEnum(Byte, multimedia_priority_service=1, + mission_critical_service=2) + self._construct = Struct('uac_access_id_config'/cfg_constr) + +# TS 31.102 Section 4.4.11.10 +class EF_OPL5G(LinFixedEF): + def __init__(self, fid='6f08', sfid=0x08, name='EF.OPL5G', desc='5GS Operator PLMN List'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={10,None}) + self._construct = Struct('tai'/Bytes(9), 'pnn_record_id'/Int8ub) + class DF_USIM_5GS(CardDF): def __init__(self, fid='5FC0', name='DF.5GS', desc='5GS related files'): super().__init__(fid=fid, name=name, desc=desc) files = [ # I'm looking at 31.102 R15.9 - TransparentEF('4F01', None, 'EF.5GS3GPPLOCI', '5GS 3GPP location information', size={20,20}), - TransparentEF('4F02', None, 'EF.5GSN3GPPLOCI', '5GS non-3GPP location information', size={20,20}), - #LinFixedEF('4F03', None, 'EF.5GS3GPPNSC', '5GS 3GPP Access NAS Security Context'), - #LinFixedEF('4F04', None, 'EF.5GSN3GPPNSC', '5GS non-3GPP Access NAS Security Context'), - TransparentEF('4F05', None, 'EF.5GAUTHKEYS', '5G authentication keys', size={68, None}), - TransparentEF('4F06', None, 'EF.UAC_AIC', 'UAC Access Identities Configuration', size={4, 4}), - EF_SUCI_Calc_Info(), #TransparentEF('4F07', None, 'EF.SUCI_Calc_Info', 'SUCI Calculation Information', size={2, None}), - LinFixedEF('4F08', None, 'EF.OPL5G', '5GS Operator PLMN List', rec_len={10, None}), - # TransparentEF('4F09', None, 'EF.NSI', 'Network Specific Identifier'), # FFS - TransparentEF('4F0A', None, 'EF.Routing_Indicator', 'Routing Indicator', size={4,4}), + EF_5GS3GPPLOCI(), + EF_5GS3GPPLOCI('4f02', 0x02, 'EF.5GSN3GPPLOCI', '5GS non-3GPP location information'), + LinFixedEF('4F03', 0x03, 'EF.5GS3GPPNSC', '5GS 3GPP Access NAS Security Context', rec_len={57,None}), + LinFixedEF('4F04', 0x04, 'EF.5GSN3GPPNSC', '5GS non-3GPP Access NAS Security Context', rec_len={57,None}), + TransparentEF('4F05', 0x05, 'EF.5GAUTHKEYS', '5G authentication keys', size={68, None}), + EF_UAC_AIC(), + EF_SUCI_Calc_Info(), + EF_OPL5G(), + TransparentEF('4F09', 0x09, 'EF.NSI', 'Network Specific Identifier'), + TransparentEF('4F0A', 0x0a, 'EF.Routing_Indicator', 'Routing Indicator', size={4,4}), ] - self.add_files(files) class ADF_USIM(CardADF): @@ -498,7 +662,7 @@ EF_xPLMNwAcT('6f60', 0x0a, 'EF.PLMNwAcT', 'User controlled PLMN Selector with Access Technology'), TransparentEF('6f31', 0x12, 'EF.HPPLMN', 'Higher Priority PLMN search period'), - # EF.ACMmax + EF_ACMmax(), EF_UST(), CyclicEF('6f39', None, 'EF.ACM', 'Accumulated call meter', rec_len={3,3}), TransparentEF('6f3e', None, 'EF.GID1', 'Group Identifier Level 1'), @@ -508,11 +672,92 @@ EF_CBMI(), EF_ACC(sfid=0x06), EF_PLMNsel('6f7b', 0x0d, 'EF.FPLMN', 'Forbidden PLMNs', size={12,None}), - TransparentEF('6f7e', 0x0b, 'EF.LOCI', 'Locationn information', size={11,11}), + EF_LOCI(), EF_AD(sfid=0x03), EF_CBMID(sfid=0x0e), EF_ECC(), EF_CBMIR(), + EF_PSLOCI(), + EF_ADN('6f3b', None, 'EF.FDN', 'Fixed Dialling Numbers'), + EF_SMS('6f3c', None), + EF_MSISDN(), + EF_SMSP(), + EF_SMSS(), + EF_ADN('6f49', None, 'EF.SDN', 'Service Dialling Numbers'), + EF_EXT('6f4b', None, 'EF.EXT2', 'Extension2 (FDN)'), + EF_EXT('6f4c', None, 'EF.EXT3', 'Extension2 (SDN)'), + EF_SMSR(), + EF_ICI(), + EF_OCI(), + EF_ICT(), + EF_ICT('6f83', None, 'EF.OCT', 'Outgoing Call Timer'), + EF_EXT('6f4e', None, 'EF.EXT5', 'Extension5 (ICI/OCI/MSISDN)'), + EF_CCP2(), + EF_eMLPP(), + EF_AAeM(), + # EF_Hiddenkey + EF_ADN('6f4d', None, 'EF.BDN', 'Barred Dialling Numbers'), + EF_EXT('6f55', None, 'EF.EXT4', 'Extension4 (BDN/SSC)'), + EF_CMI(), + EF_UST('6f56', 0x05, 'EF.EST', 'Enabled Services Table', size={1,None}), + EF_ACL(), + EF_DCK(), + EF_CNL(), + EF_START_HFN(), + EF_THRESHOLD(), + EF_xPLMNwAcT('6f61', 0x11, 'EF.OPLMNwAcT', + 'User controlled PLMN Selector with Access Technology'), + EF_ARR('6f06', 0x17), + TransparentEF('6fc4', None, 'EF.NETPAR', 'Network Parameters'), + LinFixedEF('6fc5', 0x19, 'EF.PNN', 'PLMN Network Name'), + EF_OPL(), + EF_ADN('6fc7', None, 'EF.MBDN', 'Mailbox Dialling Numbers'), + EF_MBI(), + EF_MWIS(), + EF_ADN('6fcb', None, 'EF.CFIS', 'Call Forwarding Indication Status'), + EF_EXT('6fcc', None, 'EF.EXT7', 'Extension7 (CFIS)'), + TransparentEF('6fcd', None, 'EF.SPDI', 'Service Provider Display Information'), + EF_MMSN(), + EF_EXT('6fcf', None, 'EF.EXT8', 'Extension8 (MMSN)'), + EF_MMSICP(), + EF_MMSUP(), + EF_MMSUCP(), + EF_NIA(), + EF_VGCS(), + EF_VGCSS(), + EF_VGCS('6fb3', None, 'EF.VBS', 'Voice Broadcast Service'), + EF_VGCSS('6fb4', None, 'EF.VBSS', 'Voice Broadcast Service Status'), + EF_VGCSCA(), + EF_VGCSCA('6fd5', None, 'EF.VBCSCA', 'Voice Broadcast Service Ciphering Algorithm'), + EF_GBABP(), + EF_MSK(), + LinFixedEF('6fd8', None, 'EF.MUK', 'MBMS User Key'), + LinFixedEF('6fda', None, 'EF.GBANL', 'GBA NFA List'), + EF_PLMNsel('6fd9', 0x1d, 'EF.EHPLMN', 'Equivalent HPLMN', size={12,None}), + EF_EHPLMNPI(), + LinFixedEF('6fdd', None, 'EF.NAFKCA', 'NAF Key Centre Address'), + TransparentEF('6fde', None, 'EF.SPNI', 'Service Provider Name Icon'), + LinFixedEF('6fdf', None, 'EF.PNNI', 'PLMN Network Name Icon'), + LinFixedEF('6fe2', None, 'EF.NCP-IP', 'Network Connectivity Parameters for USIM IP connections'), + EF_EPSLOCI('6fe3', 0x1e, 'EF.EPSLOCI', 'EPS location information'), + LinFixedEF('6fe4', 0x18, 'EF.EPSNSC', 'EPS NAS Security Context', rec_len={54,128}), + TransparentEF('6fe6', None, 'EF.UFC', 'USAT Facility Control', size={1,16}), + TransparentEF('6fe8', None, 'EF.NASCONFIG', 'Non Access Stratum Configuration'), + # UICC IARI (only in cards that have no ISIM) + EF_PWS(), + LinFixedEF('6fed', None, 'EF.FDNURI', 'Fixed Dialling Numbers URI'), + LinFixedEF('6fee', None, 'EF.BDNURI', 'Barred Dialling Numbers URI'), + LinFixedEF('6fef', None, 'EF.SDNURI', 'Service Dialling Numbers URI'), + EF_IPS(), + # FIXME: from EF_ePDGid onwards + # FIXME: DF_SoLSA + # FIXME: DF_PHONEBOOK + # FIXME: DF_GSM_ACCESS + # FIXME: DF_WLAN + # FIXME: DF_HNB + # FIXME: DF_ProSe + # FIXME: DF_ACDC + # FIXME: DF_TV DF_USIM_5GS(), ] self.add_files(files) diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index bd71114..5795faf 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -332,6 +332,9 @@ from pySim.utils import * from struct import pack, unpack +from construct import * +from construct import Optional as COptional +from pySim.construct import HexAdapter, BcdAdapter from pySim.filesystem import * import pySim.ts_102_221 @@ -395,6 +398,35 @@ def __init__(self, fid='6f42', sfid=None, name='EF.SMSP', desc='Short message service parameters'): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={28, None}) +# TS 51.011 Section 10.5.7 +class EF_SMSS(TransparentEF): + class MemCapAdapter(Adapter): + def _decode(self, obj, context, path): + return False if obj & 1 else True + def _encode(self, obj, context, path): + return 0 if obj else 1 + def __init__(self, fid='6f43', sfid=None, name='EF.SMSS', desc='SMS status', size={2,8}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('last_used_tpmr'/Int8ub, 'memory_capacity_exceeded'/self.MemCapAdapter(Int8ub)) + +# TS 51.011 Section 10.5.8 +class EF_SMSR(LinFixedEF): + def __init__(self, fid='6f47', sfid=None, name='EF.SMSR', desc='SMS status reports', rec_len={30,30}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('sms_record_id'/Int8ub, 'sms_status_report'/HexAdapter(Bytes(29))) + +class EF_EXT(LinFixedEF): + def __init__(self, fid, sfid=None, name='EF.EXT', desc='Extension', rec_len={13,13}): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('record_type'/Int8ub, 'extension_data'/HexAdapter(Bytes(11)), 'identifier'/Int8ub) + +# TS 51.011 Section 10.5.16 +class EF_CMI(LinFixedEF): + def __init__(self, fid='6f58', sfid=None, name='EF.CMI', rec_len={2,21}, + desc='Comparison Method Informatoin'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('alpha_id'/Bytes(this._.total_len-1), 'comparison_method_id'/Int8ub) + class DF_TELECOM(CardDF): def __init__(self, fid='7f10', name='DF.TELECOM', desc=None): super().__init__(fid=fid, name=name, desc=desc) @@ -406,10 +438,15 @@ LinFixedEF(fid='6f4f', name='EF.ECCP', desc='Extended Capability Configuration Parameters', rec_len={15,32}), EF_MSISDN(), EF_SMSP(), - TransparentEF(fid='6f43', name='EF.SMSS', desc='SMS status', size={2,8}), - # LND, SDN, EXT1, EXT2, EXT3, BDN, EXT4 - LinFixedEF(fid='6f47', name='EF.SMSR', desc='SMS status reports', rec_len={30,30}), - # CMI + EF_SMSS(), + # LND, SDN + EF_EXT('6f4a', None, 'EF.EXT1', 'Extension1 (ADN/SSC)'), + EF_EXT('6f4b', None, 'EF.EXT2', 'Extension2 (FDN/SSC)'), + EF_EXT('6f4c', None, 'EF.EXT3', 'Extension3 (SDN)'), + EF_ADN(fid='6f4d', name='EF.BDN', desc='Barred Dialling Numbers'), + EF_EXT('6f4e', None, 'EF.EXT4', 'Extension4 (BDN/SSC)'), + EF_SMSR(), + EF_CMI(), ] self.add_files(files) @@ -455,6 +492,13 @@ else: return enc_plmn(in_json['mcc'], in_json['mnc']) +# TS 51.011 Section 10.3.6 +class EF_ACMmax(TransparentEF): + def __init__(self, fid='6f37', sfid=None, name='EF.ACMmax', size={3,3}, + desc='ACM maximum value'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('acm_max'/Int24ub) + # TS 51.011 Section 10.3.7 class EF_ServiceTable(TransparentEF): def __init__(self, fid, sfid, name, desc, size, table): @@ -499,6 +543,14 @@ def _encode_bin(self, abstract): return pack('!H', abstract['acc']) +# TS 51.011 Section 10.3.16 +class EF_LOCI(TransparentEF): + def __init__(self, fid='6f7e', sfid=None, name='EF.LOCI', desc='Location Information', size={11,11}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('tmsi'/Bytes(4), 'lai'/Bytes(5), 'tmsi_time'/Int8ub, + 'lu_status'/Enum(Byte, updated=0, not_updated=1, plmn_not_allowed=2, + location_area_not_allowed=3)) + # TS 51.011 Section 10.3.18 class EF_AD(TransparentEF): OP_MODE = { @@ -526,7 +578,37 @@ res += pack('!B', abstract['len_of_mnc_in_imsi']) return res -# TS 51.011 Section 10.3.13 +# TS 51.011 Section 10.3.20 / 10.3.22 +class EF_VGCS(TransRecEF): + def __init__(self, fid='6fb1', sfid=None, name='EF.VGCS', size={4,200}, rec_len=4, + desc='Voice Group Call Service'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) + self._construct = BcdAdapter(Bytes(4)) + +# TS 51.011 Section 10.3.21 / 10.3.23 +class EF_VGCSS(TransparentEF): + def __init__(self, fid='6fb2', sfid=None, name='EF.VGCSS', size={7,7}, + desc='Voice Group Call Service Status'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = BitStruct('flags'/Bit[50], Padding(6, pattern=b'\xff')) + +# TS 51.011 Section 10.3.24 +class EF_eMLPP(TransparentEF): + def __init__(self, fid='6fb5', sfid=None, name='EF.eMLPP', size={2,2}, + desc='enhanced Multi Level Pre-emption and Priority'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + FlagsConstruct = FlagsEnum(Byte, A=1, B=2, zero=4, one=8, two=16, three=32, four=64) + self._construct = Struct('levels'/FlagsConstruct, 'fast_call_setup_cond'/FlagsConstruct) + +# TS 51.011 Section 10.3.25 +class EF_AAeM(TransparentEF): + def __init__(self, fid='6fb6', sfid=None, name='EF.AAeM', size={1,1}, + desc='Automatic Answer for eMLPP Service'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + FlagsConstruct = FlagsEnum(Byte, A=1, B=2, zero=4, one=8, two=16, three=32, four=64) + self._construct = Struct('auto_answer_prio_levels'/FlagsConstruct) + +# TS 51.011 Section 10.3.26 class EF_CBMID(EF_CBMI): def __init__(self, fid='6f48', sfid=None, name='EF.CBMID', size={2,None}, rec_len=2, desc='Cell Broadcast Message Identifier for Data Download'): @@ -544,6 +626,52 @@ desc='Cell Broadcast message identifier range selection'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) +# TS 51.011 Section 10.3.29 +class EF_DCK(TransparentEF): + def __init__(self, fid='6f2c', sfid=None, name='EF.DCK', size={16,16}, + desc='Depersonalisation Control Keys'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('network'/BcdAdapter(Bytes(4)), + 'network_subset'/BcdAdapter(Bytes(4)), + 'service_provider'/BcdAdapter(Bytes(4)), + 'corporate'/BcdAdapter(Bytes(4))) +# TS 51.011 Section 10.3.30 +class EF_CNL(TransRecEF): + def __init__(self, fid='6f32', sfid=None, name='EF.CNL', size={6,None}, rec_len=6, + desc='Co-operative Network List'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) + def _decode_record_hex(self, in_hex): + (in_plmn, sub, svp, corp) = unpack('!3sBBB', h2b(in_hex)) + res = dec_plmn(b2h(in_plmn)) + res['network_subset'] = sub + res['service_provider_id'] = svp + res['corporate_id'] = corp + return res + def _encode_record_hex(self, in_json): + plmn = enc_plmn(in_json['mcc'], in_json['mnc']) + return b2h(pack('!3sBBB', h2b(plmn), res['network_subset'], res['service_provider_id'], + res['corporate_id'])) + +# TS 51.011 Section 10.3.31 +class EF_NIA(LinFixedEF): + def __init__(self, fid='6f51', sfid=None, name='EF.NIA', rec_len={1,32}, + desc='Network\'s Indication of Alerting'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('alerting_category'/Int8ub, 'category'/GreedyBytes) + +# TS 51.011 Section 10.3.32 +class EF_Kc(TransparentEF): + def __init__(self, fid='6f20', sfid=None, name='EF.Kc', desc='Ciphering key Kc', size={9,9}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('kc'/HexAdapter(Bytes(8)), 'cksn'/Int8ub) + +# TS 51.011 Section 10.3.33 +class EF_LOCIGPRS(TransparentEF): + def __init__(self, fid='6f53', sfid=None, name='EF.LOCIGPRS', desc='GPRS Location Information', size={14,14}): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = Struct('ptmsi'/Bytes(4), 'ptmsi_sig'/Int8ub, 'rai'/Bytes(6), + 'rau_status'/Enum(Byte, updated=0, not_updated=1, plmn_not_allowed=2, + routing_area_not_allowed=3)) # TS 51.011 Section 10.3.35..37 class EF_xPLMNwAcT(TransRecEF): @@ -589,6 +717,68 @@ u16 |= 0x0088 return '%04X'%(u16) +# TS 51.011 Section 10.3.38 +class EF_CPBCCH(TransRecEF): + def __init__(self, fid='6f63', sfid=None, name='EF.CPBCCH', size={2,14}, rec_len=2, + desc='CPBCCH Information'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) + self._construct = Struct('cpbcch'/Int16ub) + +# TS 51.011 Section 10.3.39 +class EF_InvScan(TransparentEF): + def __init__(self, fid='6f64', sfid=None, name='EF.InvScan', size={1,1}, + desc='IOnvestigation Scan'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = FlagsEnum(Byte, in_limited_service_mode=1, after_successful_plmn_selection=2) + +# TS 51.011 Section 10.3.42 +class EF_OPL(LinFixedEF): + def __init__(self, fid='6fc6', sfid=None, name='EF.OPL', rec_len={8,8}, desc='Operator PLMN List'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('lai'/Bytes(5), 'pnn_record_id'/Int8ub) + +# TS 51.011 Section 10.3.44 + TS 31.102 4.2.62 +class EF_MBI(LinFixedEF): + def __init__(self, fid='6fc9', sfid=None, name='EF.MBI', rec_len={4,5}, desc='Mailbox Identifier'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('mbi_voicemail'/Int8ub, 'mbi_fax'/Int8ub, 'mbi_email'/Int8ub, + 'mbi_other'/Int8ub, 'mbi_videocall'/COptional(Int8ub)) + +# TS 51.011 Section 10.3.45 + TS 31.102 4.2.63 +class EF_MWIS(LinFixedEF): + def __init__(self, fid='6fca', sfid=None, name='EF.MWIS', rec_len={5,6}, + desc='Message Waiting Indication Status'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('mwi_status'/FlagsEnum(Byte, voicemail=1, fax=2, email=4, other=8, videomail=16), + 'num_waiting_voicemail'/Int8ub, + 'num_waiting_fax'/Int8ub, 'num_waiting_email'/Int8ub, + 'num_waiting_other'/Int8ub, 'num_waiting_videomail'/COptional(Int8ub)) + +# TS 51.011 Section 10.3.51 +class EF_MMSN(LinFixedEF): + def __init__(self, fid='6fce', sfid=None, name='EF.MMSN', rec_len={4,20}, desc='MMS Notification'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + self._construct = Struct('mms_status'/Bytes(2), 'mms_implementation'/Bytes(1), + 'mms_notification'/Bytes(this._.total_len-4), 'ext_record_nr'/Byte) + +# TS 51.011 Section 10.3.53 +class EF_MMSICP(TransparentEF): + def __init__(self, fid='6fd0', sfid=None, name='EF.MMSICP', size={1,None}, + desc='MMS Issuer Connectivity Parameters'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + +# TS 51.011 Section 10.3.54 +class EF_MMSUP(LinFixedEF): + def __init__(self, fid='6fd1', sfid=None, name='EF.MMSUP', rec_len={1,None}, + desc='MMS User Preferences'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) + +# TS 51.011 Section 10.3.55 +class EF_MMSUCP(TransparentEF): + def __init__(self, fid='6fd2', sfid=None, name='EF.MMSUCP', size={1,None}, + desc='MMS User Connectivity Parameters'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + class DF_GSM(CardDF): def __init__(self, fid='7f20', name='DF.GSM', desc='GSM Network related files'): @@ -596,12 +786,12 @@ files = [ EF_LP(), EF_IMSI(), - TransparentEF('5f20', None, 'EF.Kc', 'Ciphering key Kc'), + EF_Kc(), EF_PLMNsel(), TransparentEF('6f31', None, 'EF.HPPLMN', 'Higher Priority PLMN search period'), - # ACMmax - EF_ServiceTable('6f37', None, 'EF.SST', 'SIM service table', table=EF_SST_map, size={2,16}), - CyclicEF('6f39', None, 'EF.ACM', 'Accumulated call meter', rec_len={4,3}), + EF_ACMmax(), + EF_ServiceTable('6f38', None, 'EF.SST', 'SIM service table', table=EF_SST_map, size={2,16}), + CyclicEF('6f39', None, 'EF.ACM', 'Accumulated call meter', rec_len={3,3}), TransparentEF('6f3e', None, 'EF.GID1', 'Group Identifier Level 1'), TransparentEF('6f3f', None, 'EF.GID2', 'Group Identifier Level 2'), EF_SPN(), @@ -610,21 +800,45 @@ TransparentEF('6f7f', None, 'EF.BCCH', 'Broadcast control channels', size={16,16}), EF_ACC(), EF_PLMNsel('6f7b', None, 'EF.FPLMN', 'Forbidden PLMNs', size={12,12}), - TransparentEF('6f7e', None, 'EF.LOCI', 'Locationn information', size={11,11}), + EF_LOCI(), EF_AD(), TransparentEF('6fa3', None, 'EF.Phase', 'Phase identification', size={1,1}), - # TODO EF.VGCS VGCSS, VBS, VBSS, eMLPP, AAeM + EF_VGCS(), + EF_VGCSS(), + EF_VGCS('6fb3', None, 'EF.VBS', 'Voice Broadcast Service'), + EF_VGCSS('6fb4', None, 'EF.VBSS', 'Voice Broadcast Service Status'), + EF_eMLPP(), + EF_AAeM(), EF_CBMID(), EF_ECC(), EF_CBMIR(), - # DCK, CNL, NIA, KcGRS, LOCIGPRS, SUME + EF_DCK(), + EF_CNL(), + EF_NIA(), + EF_Kc('6f52', None, 'EF.KcGPRS', 'GPRS Ciphering key KcGPRS'), + EF_LOCIGPRS(), + TransparentEF('6f54', None, 'EF.SUME', 'SetUpMenu Elements'), EF_xPLMNwAcT('6f60', None, 'EF.PLMNwAcT', 'User controlled PLMN Selector with Access Technology'), EF_xPLMNwAcT('6f61', None, 'EF.OPLMNwAcT', 'Operator controlled PLMN Selector with Access Technology'), EF_xPLMNwAcT('6f62', None, 'EF.HPLMNwAcT', 'HPLMN Selector with Access Technology'), - # CPBCCH, InvScan, PNN, OPL, MBDN, MBI, MWIS, CFIS, EXT5, EXT6, EXT7, SPDI, MMSN, EXT8 - # MMSICP, MMSUP, MMSUCP + EF_CPBCCH(), + EF_InvScan(), + LinFixedEF('6fc5', None,'EF.PNN', 'PLMN Network Name'), + EF_OPL(), + EF_ADN('6fc7', None, 'EF.MBDN', 'Mailbox Dialling Numbers'), + EF_MBI(), + EF_MWIS(), + EF_ADN('6fcb', None, 'EF.CFIS', 'Call Forwarding Indication Status'), + EF_EXT('6fc8', None, 'EF.EXT6', 'Externsion6 (MBDN)'), + EF_EXT('6fcc', None, 'EF.EXT7', 'Externsion7 (CFIS)'), + TransparentEF('6fcd', None, 'EF.SPDI', 'Service Provider Display Information'), + EF_MMSN(), + EF_EXT('6fcf', None, 'EF.EXT8', 'Extension8 (MMSN)'), + EF_MMSICP(), + EF_MMSUP(), + EF_MMSUCP(), ] self.add_files(files) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I91475df4a5eaca423473aaebba8c69c54c9a0c1a Gerrit-Change-Number: 23711 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Mon Apr 12 08:07:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:56 +0000 Subject: Change in pysim[master]: fix various typos all over the code In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23712 ) Change subject: fix various typos all over the code ...................................................................... fix various typos all over the code Change-Id: Ic8392a951bf94f67b51e35bed95d0e856f7a9250 --- M docs/library.rst M pySim-shell.py M pySim/cards.py M pySim/filesystem.py M pySim/ts_31_102.py M pySim/ts_31_103.py M pySim/ts_51_011.py M pySim/utils.py 8 files changed, 29 insertions(+), 29 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/library.rst b/docs/library.rst index e2e24a7..f531ec5 100644 --- a/docs/library.rst +++ b/docs/library.rst @@ -33,7 +33,7 @@ calypso / OsmocomBB transport ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This allows the use of the SIM slot of an an OsmocomBB compatible phone with the TI Calypso chipset, +This allows the use of the SIM slot of an OsmocomBB compatible phone with the TI Calypso chipset, using the L1CTL interface to talk to the layer1.bin firmware on the phone. .. automodule:: pySim.transport.calypso @@ -67,7 +67,7 @@ This transport implements interfacing smart cards via very simplistic UART readers. These readers basically wire together the Rx+Tx pins of a RS232 UART, provide -a fixed crystal oscilator for clock, and operate the UART +a fixed crystal oscillator for clock, and operate the UART at 9600 bps. These readers are sometimes called `Phoenix`. .. automodule:: pySim.transport.serial diff --git a/pySim-shell.py b/pySim-shell.py index 132733d..5298cb4 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -79,7 +79,7 @@ onchange_cb=self._onchange_apdu_trace)) def poutput_json(self, data, force_no_pretty = False): - """line cmd2.putput() but for a json serializable dict.""" + """like cmd2.poutput() but for a JSON serializable dict.""" if force_no_pretty or self.json_pretty_print == False: output = json.dumps(data, cls=JsonEncoder) else: @@ -220,7 +220,7 @@ # always restore the currently selected file to the file that # was selected before executing the action() callback. if df_before_action != self._cmd.rs.selected_file: - raise RuntimeError("inconsistant walk, %s is currently selected but expecting %s to be selected" + raise RuntimeError("inconsistent walk, %s is currently selected but expecting %s to be selected" % (str(self._cmd.rs.selected_file), str(df_before_action))) def do_tree(self, opts): @@ -299,9 +299,9 @@ self._cmd.poutput("# " + b) if context['ERR'] and context['DF_SKIP']: - raise RuntimeError("unable to export %i elementry file(s) and %i dedicated file(s)" % (context['ERR'], context['DF_SKIP'])) + raise RuntimeError("unable to export %i elementary file(s) and %i dedicated file(s)" % (context['ERR'], context['DF_SKIP'])) elif context['ERR']: - raise RuntimeError("unable to export %i elementry file(s)" % context['ERR']) + raise RuntimeError("unable to export %i elementary file(s)" % context['ERR']) elif context['DF_SKIP']: raise RuntimeError("unable to export %i dedicated files(s)" % context['ERR']) @@ -353,7 +353,7 @@ """Verify (authenticate) using specified PIN code""" pin = self.get_code(opts.pin_code) (data, sw) = self._cmd.card._scc.verify_chv(opts.pin_nr, h2b(pin)) - self._cmd.poutput("CHV verfication successful") + self._cmd.poutput("CHV verification successful") unblock_chv_parser = argparse.ArgumentParser() unblock_chv_parser.add_argument('--pin-nr', type=int, default=1, help='PUK Number, 1=PIN1, 2=PIN2 or custom value (decimal)') @@ -536,7 +536,7 @@ card_key_provider_register(CardKeyProviderCsv(csv_default)) # If the user supplies an ADM PIN at via commandline args authenticate - # immediatley so that the user does not have to use the shell commands + # immediately so that the user does not have to use the shell commands pin_adm = sanitize_pin_adm(opts.pin_adm, opts.pin_adm_hex) if pin_adm: try: diff --git a/pySim/cards.py b/pySim/cards.py index 8489c97..5a39bda 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -94,7 +94,7 @@ in ETSI TS 151 011 for the details of the access_tech field coding. Some common values: access_tech = '0080' # Only GSM is selected - access_tech = 'FFFF' # All technologues selected, even Reserved for Future Use ones + access_tech = 'FFFF' # All technologies selected, even Reserved for Future Use ones """ # get size and write EF.HPLMNwAcT data = self._scc.read_binary(EF['HPLMNwAcT'], length=None, offset=0) @@ -476,7 +476,7 @@ each possible provider uses a specific record number in each EF. The indexes used are ( where N is the number of providers supported ) : - [2 .. N+1] for the operator name - - [1 .. N] for the programable EFs + - [1 .. N] for the programmable EFs * 3f00/7f4d/8f0c : Operator Name @@ -618,7 +618,7 @@ class FakeMagicSim(Card): """ Theses cards have a record based EF 3f00/000c that contains the provider - informations. See the program method for its format. The records go from + information. See the program method for its format. The records go from 1 to N. """ diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 49520c3..36588e2 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -53,7 +53,7 @@ fid : File Identifier (4 hex digits) sfid : Short File Identifier (2 hex digits, optional) name : Brief name of the file, lik EF_ICCID - desc : Descriptoin of the file + desc : Description of the file parent : Parent CardFile object within filesystem hierarchy """ if not isinstance(self, CardADF) and fid == None: @@ -387,7 +387,7 @@ @with_default_category('Transparent EF Commands') class ShellCommands(CommandSet): - """Shell commands specific for Trransparent EFs.""" + """Shell commands specific for transparent EFs.""" def __init__(self): super().__init__() @@ -462,7 +462,7 @@ fid : File Identifier (4 hex digits) sfid : Short File Identifier (2 hex digits, optional) name : Brief name of the file, lik EF_ICCID - desc : Descriptoin of the file + desc : Description of the file parent : Parent CardFile object within filesystem hierarchy size : tuple of (minimum_size, recommended_size) """ @@ -686,7 +686,7 @@ fid : File Identifier (4 hex digits) sfid : Short File Identifier (2 hex digits, optional) name : Brief name of the file, lik EF_ICCID - desc : Descriptoin of the file + desc : Description of the file parent : Parent CardFile object within filesystem hierarchy rec_len : tuple of (minimum_length, recommended_length) """ @@ -808,8 +808,8 @@ Args: fid : File Identifier (4 hex digits) sfid : Short File Identifier (2 hex digits, optional) - name : Brief name of the file, lik EF_ICCID - desc : Descriptoin of the file + name : Brief name of the file, like EF_ICCID + desc : Description of the file parent : Parent CardFile object within filesystem hierarchy rec_len : Length of the fixed-length records within transparent EF size : tuple of (minimum_size, recommended_size) @@ -991,7 +991,7 @@ or the underlying card profile. Args: - sw : Status word as string of 4 hexd digits + sw : Status word as string of 4 hex digits Returns: Tuple of two strings @@ -1026,9 +1026,9 @@ f = CardDF(fid=fid, sfid=None, name="DF." + str(fid).upper(), desc="dedicated file, manually added at runtime") else: if (select_resp['file_descriptor']['structure'] == 'transparent'): - f = TransparentEF(fid=fid, sfid=None, name="EF." + str(fid).upper(), desc="elementry file, manually added at runtime") + f = TransparentEF(fid=fid, sfid=None, name="EF." + str(fid).upper(), desc="elementary file, manually added at runtime") else: - f = LinFixedEF(fid=fid, sfid=None, name="EF." + str(fid).upper(), desc="elementry file, manually added at runtime") + f = LinFixedEF(fid=fid, sfid=None, name="EF." + str(fid).upper(), desc="elementary file, manually added at runtime") self.selected_file.add_files([f]) self.selected_file = f @@ -1223,7 +1223,7 @@ """Interpret a given status word within the application. Args: - sw : Status word as string of 4 hexd digits + sw : Status word as string of 4 hex digits Returns: Tuple of two strings @@ -1231,7 +1231,7 @@ return interpret_sw(self.sw, sw) class CardProfile(object): - """A Card Profile describes a card, it's filessystem hierarchy, an [initial] list of + """A Card Profile describes a card, it's filesystem hierarchy, an [initial] list of applications as well as profile-specific SW and shell commands. Every card has one card profile, but there may be multiple applications within that profile.""" def __init__(self, name, **kw): @@ -1265,7 +1265,7 @@ """Interpret a given status word within the profile. Args: - sw : Status word as string of 4 hexd digits + sw : Status word as string of 4 hex digits Returns: Tuple of two strings diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 1558d8d..1a78a12 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -471,14 +471,14 @@ # TS 31.102 Section 4.2.17 class EF_LOCI(TransparentEF): - def __init__(self, fid='6f7e', sfid=0x0b, name='EF.LOCI', desc='Locationn information', size={11,11}): + def __init__(self, fid='6f7e', sfid=0x0b, name='EF.LOCI', desc='Location information', size={11,11}): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = Struct('tmsi'/HexAdapter(Bytes(4)), 'lai'/HexAdapter(Bytes(5)), 'rfu'/Int8ub, 'lu_status'/Int8ub) # TS 31.102 Section 4.2.23 class EF_PSLOCI(TransparentEF): - def __init__(self, fid='6f73', sfid=0x0c, name='EF.PSLOCI', desc='PS Locationn information', size={14,14}): + def __init__(self, fid='6f73', sfid=0x0c, name='EF.PSLOCI', desc='PS Location information', size={14,14}): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = Struct('ptmsi'/HexAdapter(Bytes(4)), 'ptmsi_sig'/HexAdapter(Bytes(3)), 'rai'/HexAdapter(Bytes(6)), 'rau_status'/Int8ub) diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index effdbf7..cea4832 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -126,7 +126,7 @@ # TS 31.103 Section 4.2.9 class EF_GBABP(TransparentEF): - def __init__(self, fid='6fd5', sfid=None, name='EF.GBABP', desc='GBA Bootstrappng'): + def __init__(self, fid='6fd5', sfid=None, name='EF.GBABP', desc='GBA Bootstrapping'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) # TS 31.103 Section 4.2.10 diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 5795faf..c21e86c 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -423,7 +423,7 @@ # TS 51.011 Section 10.5.16 class EF_CMI(LinFixedEF): def __init__(self, fid='6f58', sfid=None, name='EF.CMI', rec_len={2,21}, - desc='Comparison Method Informatoin'): + desc='Comparison Method Information'): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len) self._construct = Struct('alpha_id'/Bytes(this._.total_len-1), 'comparison_method_id'/Int8ub) @@ -871,7 +871,7 @@ ret['file_characteristics'] = b2h(resp_bin[13]) ret['num_direct_child_df'] = int(resp_bin[14], 16) ret['num_direct_child_ef'] = int(resp_bin[15], 16) - ret['num_chv_unbkock_adm_codes'] = int(resp_bin[16]) + ret['num_chv_unblock_adm_codes'] = int(resp_bin[16]) # CHV / UNBLOCK CHV stats elif file_type in ['working_ef']: file_struct = struct_of_file_map[resp_bin[13]] if resp_bin[13] in struct_of_file_map else resp_bin[13] diff --git a/pySim/utils.py b/pySim/utils.py index 5f66170..a0da03a 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -111,7 +111,7 @@ return ei def dec_imsi(ef:Hexstr) -> Optional[str]: - """Converts an EF value to the imsi string representation""" + """Converts an EF value to the IMSI string representation""" if len(ef) < 4: return None l = int(ef[0:2], 16) * 2 # Length of the IMSI string -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic8392a951bf94f67b51e35bed95d0e856f7a9250 Gerrit-Change-Number: 23712 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 Apr 12 08:07:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:07:57 +0000 Subject: Change in pysim[master]: rename manual to be consistent with osmo-gsm-manuals projects In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23713 ) Change subject: rename manual to be consistent with osmo-gsm-manuals projects ...................................................................... rename manual to be consistent with osmo-gsm-manuals projects Change-Id: Iad1d96f2b0f95a010b0b30da00d3eef754c1ec44 --- M docs/conf.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/docs/conf.py b/docs/conf.py index 2117172..a96b87e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -17,7 +17,7 @@ # -- Project information ----------------------------------------------------- -project = 'pysim' +project = 'osmopysim-usermanual' copyright = '2009-2021 by Sylvain Munaut, Harald Welte, Philipp Maier, Supreeth Herle' author = 'Sylvain Munaut, Harald Welte, Philipp Maier, Supreeth Herle' -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iad1d96f2b0f95a010b0b30da00d3eef754c1ec44 Gerrit-Change-Number: 23713 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 Mon Apr 12 08:08:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:08:17 +0000 Subject: Change in pysim[master]: contrib/jenkins.sh: Build and publish PDF manual In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23714 ) Change subject: contrib/jenkins.sh: Build and publish PDF manual ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3f01e93dd5a25d26feb3d067a171244a20f0f8e5 Gerrit-Change-Number: 23714 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 08:08:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:08:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:08:21 +0000 Subject: Change in pysim[master]: contrib/jenkins.sh: Build and publish PDF manual In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23714 ) Change subject: contrib/jenkins.sh: Build and publish PDF manual ...................................................................... contrib/jenkins.sh: Build and publish PDF manual Change-Id: I3f01e93dd5a25d26feb3d067a171244a20f0f8e5 --- M contrib/jenkins.sh M docs/Makefile 2 files changed, 25 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index dc2692c..2d9653a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -1,4 +1,10 @@ #!/bin/sh +# jenkins build helper script for pysim. 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 @@ -24,8 +30,12 @@ pip install sphinx pip install sphinxcontrib-napoleon pip3 install -e 'git+https://github.com/osmocom/sphinx-argparse at master#egg=sphinx-argparse' -(cd docs && make html) +(cd docs && make html latexpdf) # run the test with physical cards cd pysim-testdata ../tests/pysim-test.sh + +if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then + make -C "$base/docs" publish +fi diff --git a/docs/Makefile b/docs/Makefile index d4bb2cb..4e20876 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -8,13 +8,25 @@ SOURCEDIR = . BUILDDIR = _build +# for osmo-gsm-manuals +OSMO_GSM_MANUALS_DIR=$(shell pkg-config osmo-gsm-manuals --variable=osmogsmmanualsdir 2>/dev/null) +OSMO_REPOSITORY = "pysim" +UPLOAD_FILES = $(BUILDDIR)/latex/osmopysim-usermanual.pdf +CLEAN_FILES = $(UPLOAD_FILES) + # Put it first so that "make" without argument is like "make help". +.PHONY: help help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -.PHONY: help Makefile +$(BUILDDIR)/latex/pysim.pdf: latexpdf + @/bin/true + +# put this before the catch-all below +include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc + # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile +%: @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3f01e93dd5a25d26feb3d067a171244a20f0f8e5 Gerrit-Change-Number: 23714 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 Mon Apr 12 08:08:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:08:51 +0000 Subject: Change in osmo-gsm-manuals[master]: fix tests/Makefile.am: exclude file 'mgcp_extension_osmux.adoc' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23693 ) Change subject: fix tests/Makefile.am: exclude file 'mgcp_extension_osmux.adoc' ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23693 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: I00efafc822f46126b59d20e86bb07ec991768c28 Gerrit-Change-Number: 23693 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 08:08:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:09:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:09:00 +0000 Subject: Change in osmo-gsm-manuals[master]: fix missing and/or non-existent linked references In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23695 ) Change subject: fix missing and/or non-existent linked references ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23695 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: I5fe6263ac666e41cbe34407f09e9023aafa57d2c Gerrit-Change-Number: 23695 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 08:09: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 Apr 12 08:09:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:09:02 +0000 Subject: Change in osmo-gsm-manuals[master]: fix tests/Makefile.am: exclude file 'mgcp_extension_osmux.adoc' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23693 ) Change subject: fix tests/Makefile.am: exclude file 'mgcp_extension_osmux.adoc' ...................................................................... fix tests/Makefile.am: exclude file 'mgcp_extension_osmux.adoc' This file is included by 'osmux.adoc', so we end up including it twice in 'test-usermanual.adoc'. This makes xsltproc complain: /build/tests/test-usermanual.xml:643: element section: validity error : ID mgcp-extension-osmux already defined and sometimes causes sporadic build failures. Exclude it. Change-Id: I00efafc822f46126b59d20e86bb07ec991768c28 Related: OS#5112 --- M tests/Makefile.am 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved laforge: Looks good to me, approved diff --git a/tests/Makefile.am b/tests/Makefile.am index 641b35c..1be6308 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -12,7 +12,9 @@ # Generate adoc file that includes all chapters (OS#4183: glossary.adoc must be the last file) ASCIIDOC = test-usermanual.adoc ASCIIDOC_DEPS = -COMMON_CHAPTERS = $(shell find $(OSMO_GSM_MANUALS_DIR)/common/chapters -name '*.adoc' | grep -v glossary\.adoc) \ +COMMON_CHAPTERS = $(shell find $(OSMO_GSM_MANUALS_DIR)/common/chapters -name '*.adoc' \ + ! -name glossary.adoc \ + ! -name mgcp_extension_osmux.adoc) \ $(OSMO_GSM_MANUALS_DIR)/common/chapters/glossary.adoc $(ASCIIDOC): $(COMMON_CHAPTERS) echo ":gfdl-enabled:" > $@ -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23693 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: I00efafc822f46126b59d20e86bb07ec991768c28 Gerrit-Change-Number: 23693 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:09:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:09:03 +0000 Subject: Change in osmo-gsm-manuals[master]: fix missing and/or non-existent linked references In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23695 ) Change subject: fix missing and/or non-existent linked references ...................................................................... fix missing and/or non-existent linked references Change-Id: I5fe6263ac666e41cbe34407f09e9023aafa57d2c --- M common/chapters/bibliography.adoc M common/chapters/control_if.adoc M common/chapters/rf.adoc 3 files changed, 5 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc index e447325..67f0cb9 100644 --- a/common/chapters/bibliography.adoc +++ b/common/chapters/bibliography.adoc @@ -81,6 +81,8 @@ https://ftp.osmocom.org/docs/latest/osmotrx-lms-vty-reference.pdf https://ftp.osmocom.org/docs/latest/osmotrx-ipc-vty-reference.pdf https://ftp.osmocom.org/docs/latest/osmotrx-usrp1-vty-reference.pdf +- [[[3gpp-ts-23-041]]] 3GPP TS 23.041: Technical realization of + Cell Broadcast Service (CBS) - [[[3gpp-ts-23-048]]] 3GPP TS 23.048: Security mechanisms for the (U)SIM application toolkit; Stage 2 https://www.3gpp.org/DynaReport/23048.htm @@ -160,7 +162,7 @@ system for telecommunication application providers https://www.etsi.org/deliver/etsi_ts/101200_101299/101220/12.00.00_60/ts_101220v120000p.pdf -- [[[ietf-rfc768]]] IETF RFC 768: Internet Protocol +- [[[ietf-rfc791]]] IETF RFC 791: Internet Protocol https://tools.ietf.org/html/rfc791 - [[[ietf-rfc793]]] IETF RFC 793: Transmission Control Protocol https://tools.ietf.org/html/rfc793 diff --git a/common/chapters/control_if.adoc b/common/chapters/control_if.adoc index 67ac045..e64f661 100644 --- a/common/chapters/control_if.adoc +++ b/common/chapters/control_if.adoc @@ -188,7 +188,7 @@ for a given Osmocom program and output it in csv format. This can be used to periodically (using systemd timer for example) retrieve data to build KPI and evaluate how it changes over time. -Internally it uses "+rate_ctr.*+" variable described in <> to get the list of counter groups +Internally it uses "+rate_ctr.*+" variable described in <> to get the list of counter groups and than request all the counters in each group. Applications interested in individual metrics can request it directly using `rate_ctr2csv.py` as an example. diff --git a/common/chapters/rf.adoc b/common/chapters/rf.adoc index f3f6dd9..637fb5e 100644 --- a/common/chapters/rf.adoc +++ b/common/chapters/rf.adoc @@ -45,7 +45,7 @@ . determine the frequency at which you will use the cable, as determined by the GSM frequency band of your BTS. Make sure you use the highest frequency that might occur, which is typically the upper end of the - transmit band, see <> + transmit band, see <> . determine the attenuation of your cable per 100m at the given frequency (check the cable data sheet) . scale that value by the actual length of the cable -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23695 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: I5fe6263ac666e41cbe34407f09e9023aafa57d2c Gerrit-Change-Number: 23695 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:10:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:10:21 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: generalze description of the 'RFU' ('PAD') field In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 ) Change subject: TRXD: generalze description of the 'RFU' ('PAD') field ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687/2/common/chapters/trx_if.adoc File common/chapters/trx_if.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687/2/common/chapters/trx_if.adoc at 582 PS2, Line 582: low I would avoid any specification of actual voltage levels. We do not care what kind of electrical signal level the bits have on any specific physical transport. Already your ethernet is using differential signaling and coding, so the '0' is not 'low'. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 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: I9ac9d387325627d18811fae1d0d7930b69f08129 Gerrit-Change-Number: 23687 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 08:10: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 Mon Apr 12 08:10:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:10:38 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: clarify modulation specific length of Soft-/Hard-bits In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23688 ) Change subject: TRXD: clarify modulation specific length of Soft-/Hard-bits ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23688 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: Icd807810060372c8f27d81f8a825ea9a5f384c1c Gerrit-Change-Number: 23688 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 08:10: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 Apr 12 08:16:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:16:03 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 4: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/4/common/chapters/trx_if.adoc File common/chapters/trx_if.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/4/common/chapters/trx_if.adoc at 738 PS4, Line 738: different with different from what? I think something like "the ordering of TRXN within the PDUs of one batch is not required to be ascending/monotonic" or something like that. But "different" can only be used if you specify from what it is different. You could also state "The orddering of [TRXN in the] PDUs may be different from the example below." https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/4/common/chapters/trx_if.adoc at 742 PS4, Line 742: packet as UDP may at least in theory be fragmented over multiple packets, I suggest to use "datagram" which is (AFAIR) the terminology used in UDP. We of course want no fragmentation for performance reason, but we should still try to use language as precise as possible. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 08:16:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:17:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:17:50 +0000 Subject: Change in osmo-gbproxy[master]: gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23684 ) Change subject: gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ia94090a0133340b7b284df6ec5b36546da698b37 Gerrit-Change-Number: 23684 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 08:17: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 Apr 12 08:17:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:17:52 +0000 Subject: Change in osmo-gbproxy[master]: gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23684 ) Change subject: gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset ...................................................................... gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset When a BSS resets its BVC and reuses a BVCI with a differente cell id the SGSN BVC still has the old cell information. This results in the SGSN receiving a BVC reset for the old cell which in turn leads to all sorts of issues (probably also with paging) and conflicting information since the cell info is also present in the UL-UNITDATA and this is just passed through from the BSS. Instead of reusing the old BVC on the SGSN side free any existing and create new ones. Change-Id: Ia94090a0133340b7b284df6ec5b36546da698b37 --- M src/gb_proxy.c 1 file changed, 23 insertions(+), 16 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb_proxy.c b/src/gb_proxy.c index c01c5c6..64b1397 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -685,26 +685,33 @@ bvc->cell->bss_bvc = bvc; } - /* allocate (any missing) SGSN-side BVCs within the cell, and reset them */ + /* Ensure we have the correct RA/CELL ID */ + if (!gsm48_ra_equal(&bvc->cell->id.raid, ra_id)) { + LOGPBVC(bvc, LOGL_NOTICE, "RAID changed from %s to %s, updating cell\n", osmo_rai_name(&bvc->cell->id.raid), osmo_rai_name(ra_id)); + memcpy(&bvc->cell->id.raid, ra_id, sizeof(*ra_id)); + } + if (bvc->cell->id.cid != cell_id) { + LOGPBVC(bvc, LOGL_NOTICE, "CellID changed from %05d to %05d, updating cell\n", bvc->cell->id.cid, cell_id); + bvc->cell->id.cid = cell_id; + } + + /* Reallocate SGSN-side BVCs of the cell, and reset them + * Removing and reallocating is needed becaus the ra_id/cell_id might have changed */ 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); + gbproxy_bvc_free(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->raid, &bvc->cell->id.raid, sizeof(sgsn_bvc->raid)); - 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_max_pdu_len(sgsn_bvc->fi, sgsn_nse->max_sdu_len); - bssgp_bvc_fsm_set_ops(sgsn_bvc->fi, &sgsn_ptp_bvc_fsm_ops, sgsn_bvc); - - gbproxy_cell_add_sgsn_bvc(bvc->cell, sgsn_bvc); - } + sgsn_bvc = gbproxy_bvc_alloc(sgsn_nse, bvci); + OSMO_ASSERT(sgsn_bvc); + sgsn_bvc->cell = bvc->cell; + memcpy(&sgsn_bvc->raid, &bvc->cell->id.raid, sizeof(sgsn_bvc->raid)); + 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_max_pdu_len(sgsn_bvc->fi, sgsn_nse->max_sdu_len); + bssgp_bvc_fsm_set_ops(sgsn_bvc->fi, &sgsn_ptp_bvc_fsm_ops, sgsn_bvc); + gbproxy_cell_add_sgsn_bvc(bvc->cell, sgsn_bvc); } /* Trigger outbound BVC-RESET procedure toward each SGSN */ -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ia94090a0133340b7b284df6ec5b36546da698b37 Gerrit-Change-Number: 23684 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 Mon Apr 12 08:18:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:18:02 +0000 Subject: Change in osmo-gbproxy[master]: vty: Print CellId along with RA-ID In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23667 ) Change subject: vty: Print CellId along with RA-ID ...................................................................... vty: Print CellId along with RA-ID The CellIdentifier IE of a BVC-RESET contains RA-ID and CID. We only printed the forer, but not the latter. Let's fix that. Change-Id: Ic8b26afe98e6fe11b130679201493f6bcbade0f4 --- M src/gb_proxy_vty.c 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb_proxy_vty.c b/src/gb_proxy_vty.c index f48a6db..9ac45e7 100644 --- a/src/gb_proxy_vty.c +++ b/src/gb_proxy_vty.c @@ -82,8 +82,9 @@ 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 { - vty_out(vty, "NSEI %5u, PTP-BVCI %5u, RAI %s [%s]%s", bvc->nse->nsei, bvc->bvci, - osmo_rai_name(&bvc->cell->id.raid), osmo_fsm_inst_state_name(bvc->fi), VTY_NEWLINE); + vty_out(vty, "NSEI %5u, PTP-BVCI %5u, RAI %s, CellID %u [%s]%s", bvc->nse->nsei, + bvc->bvci, osmo_rai_name(&bvc->cell->id.raid), bvc->cell->id.cid, + osmo_fsm_inst_state_name(bvc->fi), VTY_NEWLINE); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic8b26afe98e6fe11b130679201493f6bcbade0f4 Gerrit-Change-Number: 23667 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:20:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:20:24 +0000 Subject: Change in osmo-pcap[master]: add --vty-ref-* support in osmo-pcap-client and -server In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23691 ) Change subject: add --vty-ref-* support in osmo-pcap-client and -server ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcap/+/23691/1/configure.ac File configure.ac: https://gerrit.osmocom.org/c/osmo-pcap/+/23691/1/configure.ac at 195 PS1, Line 195: the corresponding Makefile.am is missing from the commit. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Gerrit-Change-Number: 23691 Gerrit-PatchSet: 1 Gerrit-Owner: roh Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 08:20: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 Mon Apr 12 08:20:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:20:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 ) Change subject: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iac6c8966aafd1cb2fab515de091e94607eb7c040 Gerrit-Change-Number: 23655 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 08: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 Mon Apr 12 08:20:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:20:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 ) Change subject: pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc ...................................................................... pcu: SNS: add TC_sns_1c1u_unconfigured_nsvc There shouldn't any unconfigured NSVC after the configuration phase. The unconfigured NSVC is used in the SNS configuration phase and must be removed when the configuration is done and the NSVC is included in the configuration. Related: SYS#5416 Change-Id: Iac6c8966aafd1cb2fab515de091e94607eb7c040 --- M pcu/PCU_Tests_SNS.ttcn 1 file changed, 11 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index b63b51e..20ab608 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -11,6 +11,7 @@ */ import from Osmocom_Types all; +import from Osmocom_VTY_Functions all; import from PCU_Tests_NS all; import from SGSN_Components all; import from Osmocom_Gb_Types all; @@ -220,6 +221,15 @@ f_clean_ns_codec(); } +/* Test full IP_SNS bring-up over an initial NS-VC with two NS-VCs */ +testcase TC_sns_1c1u_unconfigured_nsvc() runs on RAW_Test_CT { + f_init_vty(testcasename()); + f_sns_bringup_1c1u_separate(); + f_vty_transceive_not_match(PCUVTY, "show ns entities", pattern "*UNCONFIGURED*"); + setverdict(pass); + f_clean_ns_codec(); +} + /* Transmit BVC-RESET before NS-ALIVE of PCU was ACKed: expect no response */ testcase TC_sns_1c1u_so_bvc_reset_too_early() runs on RAW_Test_CT { /* Activate two NS codec ports */ @@ -371,6 +381,7 @@ execute( TC_sns_1c1u_separate() ); execute( TC_sns_1c1u_so_bvc_reset() ); execute( TC_sns_1c1u_so_bvc_reset_too_early() ); + execute( TC_sns_1c1u_unconfigured_nsvc() ); execute( TC_sns_so_bvc_reset_unknown_bvci() ); execute( TC_sns_add() ); execute( TC_sns_add_nack() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iac6c8966aafd1cb2fab515de091e94607eb7c040 Gerrit-Change-Number: 23655 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:21:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:21:21 +0000 Subject: Change in osmo-bts[master]: l1sap: check BTS_FEAT_MULTI_TSC in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23672 ) Change subject: l1sap: check BTS_FEAT_MULTI_TSC in l1sap_chan_act() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I699cdddbfab111855998853548d9cfe956f7c60c Gerrit-Change-Number: 23672 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 08: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 Mon Apr 12 08:21:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:21:25 +0000 Subject: Change in osmo-bts[master]: l1sap: check BTS_FEAT_MULTI_TSC in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23672 ) Change subject: l1sap: check BTS_FEAT_MULTI_TSC in l1sap_chan_act() ...................................................................... l1sap: check BTS_FEAT_MULTI_TSC in l1sap_chan_act() Instead of blindly assuming what the PHY does support, and what it does not, let's check the related feature vector. Change-Id: I699cdddbfab111855998853548d9cfe956f7c60c Related: SYS#4895, OS#4941 --- M src/common/l1sap.c 1 file changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 3ebe8e1..b8bfa31 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1973,11 +1973,11 @@ cd = (struct gsm48_chan_desc *) TLVP_VAL(tp, GSM48_IE_CHANDESC_2); - /* our L1 only supports one global TSC for all channels - * one one TRX, so we need to make sure not to activate - * channels with a different TSC!! */ - if (cd->h0.tsc != (trx->bts->bsic & 7)) { - LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "lchan TSC %u != BSIC-TSC %u\n", + /* The PHY may not support using different TSCs */ + if (!osmo_bts_has_feature(trx->bts->features, BTS_FEAT_MULTI_TSC) + && cd->h0.tsc != (trx->bts->bsic & 7)) { + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "This PHY does not support " + "lchan TSC %u != BSIC-TSC %u, sending NACK\n", cd->h0.tsc, trx->bts->bsic & 7); return -RSL_ERR_SERV_OPT_UNIMPL; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I699cdddbfab111855998853548d9cfe956f7c60c Gerrit-Change-Number: 23672 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:21:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:21:25 +0000 Subject: Change in osmo-bts[master]: l1sap: fix wrong IEI and parsing in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23673 ) Change subject: l1sap: fix wrong IEI and parsing in l1sap_chan_act() ...................................................................... l1sap: fix wrong IEI and parsing in l1sap_chan_act() As the prefix in 'GSM48_IE_CHANDESC_2' implies, this IE belongs to 3GPP TS 04.08 (or TS 44.018), so it can be used in the Radio Resource assignment messages sent to the MS. While in this function we're dealing with 3GPP TS 48.058, and thus the IEI may be (and actually is) different for the RSL messages. Also, according to 3GPP TS 48.058, section 9.3.5, the Channel Description IE is included together with its element identifier, so we need to skip one byte when doing the pointer casting. Change-Id: Id100f4c56fd5c1adad5d925d97240bed82981b9b Related: SYS#4895, OS#4941 --- M src/common/l1sap.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index b8bfa31..7702b23 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1962,16 +1962,16 @@ int l1sap_chan_act(struct gsm_bts_trx *trx, uint8_t chan_nr, struct tlv_parsed *tp) { struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); - struct gsm48_chan_desc *cd; + const struct gsm48_chan_desc *cd; int rc; LOGPLCHAN(lchan, DL1C, LOGL_INFO, "activating channel %s\n", rsl_chan_nr_str(chan_nr)); /* osmo-pcu calls this without a valid 'tp' parameter, so we * need to make sure ew don't crash here */ - if (tp && TLVP_PRES_LEN(tp, GSM48_IE_CHANDESC_2, sizeof(*cd))) { - cd = (struct gsm48_chan_desc *) - TLVP_VAL(tp, GSM48_IE_CHANDESC_2); + if (tp && TLVP_PRES_LEN(tp, RSL_IE_CHAN_IDENT, sizeof(*cd) + 1)) { + /* Channel Description IE comes together with its IEI (see 9.3.5) */ + cd = (const struct gsm48_chan_desc *) TLVP_VAL(tp, RSL_IE_CHAN_IDENT) + 1; /* The PHY may not support using different TSCs */ if (!osmo_bts_has_feature(trx->bts->features, BTS_FEAT_MULTI_TSC) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id100f4c56fd5c1adad5d925d97240bed82981b9b Gerrit-Change-Number: 23673 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:24:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:24:01 +0000 Subject: Change in osmo-bsc[master]: [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23650 ) Change subject: [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I435018f439181cdd046ca99fe7e01ac85e226cce Gerrit-Change-Number: 23650 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 08:24: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 Apr 12 08:24:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:24:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: TC_sns_so_bvc_reset_unknown_bvci: use g_handle_rx_alive In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23656 ) Change subject: pcu: SNS: TC_sns_so_bvc_reset_unknown_bvci: use g_handle_rx_alive ...................................................................... pcu: SNS: TC_sns_so_bvc_reset_unknown_bvci: use g_handle_rx_alive The g_handle_rx_alive allows ignoring any ALIVE PDUs when using f_exp_ns(). This improves the stability as the ALIVE and BVC-RESET can come in any order. Change-Id: I3b4ab4093b3e5bee7e32fdf6c1de3f692b13a35f --- M pcu/PCU_Tests_SNS.ttcn 1 file changed, 1 insertion(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index 20ab608..b6a1790 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -267,16 +267,13 @@ * PCU -> SGSN: BVCI 24 BSSGP-STATUS Unknown BVCI */ testcase TC_sns_so_bvc_reset_unknown_bvci() runs on RAW_Test_CT { + g_handle_rx_alive := true; f_init_ns_codec(mp_nsconfig); f_init_pcuif(); f_incoming_sns_size(); f_incoming_sns_config(); f_outgoing_sns_config(); - /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ - as_rx_alive_tx_ack(oneshot := true); - activate(as_rx_alive_tx_ack()); - /* 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 := 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3b4ab4093b3e5bee7e32fdf6c1de3f692b13a35f Gerrit-Change-Number: 23656 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 Mon Apr 12 08:25:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:25:16 +0000 Subject: Change in osmo-gsm-manuals[master]: common/chapters: extend gb/ns2 chapters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 ) Change subject: common/chapters: extend gb/ns2 chapters ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 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: I902b850528cbc04bd469590babd84cccf64300e8 Gerrit-Change-Number: 23393 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 08: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 Mon Apr 12 08:25:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 08:25:19 +0000 Subject: Change in osmo-gsm-manuals[master]: common/chapters: extend gb/ns2 chapters In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 ) Change subject: common/chapters: extend gb/ns2 chapters ...................................................................... common/chapters: extend gb/ns2 chapters Merge gb-variants.adoc into gb-ns2.adoc Add a general overview of the internal structure which is also used by the vty. Move the configuration into a seperate adoc to allow the PCU manual to skip the part which doesn't apply for it. Copy the timer configuration into gb.adoc to allow document newer timers. All users of the NS2 code will use the timer sub-chapter. Related: OS#5077 Change-Id: I902b850528cbc04bd469590babd84cccf64300e8 --- A common/chapters/gb-ns2-configuration-timer.adoc A common/chapters/gb-ns2-configuration.adoc A common/chapters/gb-ns2.adoc D common/chapters/gb-variants.adoc 4 files changed, 394 insertions(+), 179 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/common/chapters/gb-ns2-configuration-timer.adoc b/common/chapters/gb-ns2-configuration-timer.adoc new file mode 100644 index 0000000..ab8585f --- /dev/null +++ b/common/chapters/gb-ns2-configuration-timer.adoc @@ -0,0 +1,36 @@ +==== Gb/NS Timer configuration + +The NS protocol features a number of configurable timers. + +.List of configurable NS timers +|=== +|tns-block|(un)blocking timer timeout (secs) +|tns-block-retries|(un)blocking timer; number of retries +|tns-reset|reset timer timeout (secs) +|tns-reset-retries|reset timer; number of retries +|tns-test|test timer timeout (secs) +|tns-alive|alive timer timeout (secs) +|tns-alive-retries|alive timer; number of retries +|tsns-prov|SNS provision timeout (secs) used by all SNS auto configuration procedures. +|tsns-size-retries|SNS Size procedure; number of retries +|tsns-config-retries|SNS Config procedure; number of retries +|=== + +All timer can be configured by vty configuration + +.Example of timeouts +---- +ns + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 30 + timer tns-alive 3 + timer tns-alive-retries 10 + timer tsns-prov 10 + timer tsns-size-retries 3 + timer tsns-config-retries 3 +---- + +// FIXME: ladder diagrams for every timer diff --git a/common/chapters/gb-ns2-configuration.adoc b/common/chapters/gb-ns2-configuration.adoc new file mode 100644 index 0000000..b8f2b03 --- /dev/null +++ b/common/chapters/gb-ns2-configuration.adoc @@ -0,0 +1,172 @@ +=== Gb/NS configuration + +This section describes the configuration that libosmogb exposes via the +VTY and is valid for OsmoSGSN and OsmoGbProxy. + +==== Gb over Frame Relay over E1/T1 + +The Gb over Frame Relay over E1/T1 requires: + +* a hdlc interface +* a frame relay role (fr or frnet) +* the DLCI + +.Example: Gb over Frame Relay configuration #1 +---- +ns + bind fr sitea1 <1> + fr hdlc1 frnet <2> + nse 2001 <3> + nsvci fr sitea1 dlci 16 nsvci 11 +---- +<1> a Gb-over-FR bind with the name sitea1 +<2> connect the hdlc1 device with the role frnet to sitea1 +<3> one NSE (2001) with a single NS-VCI 11 on sitea1 with DLCI 16 + +.Example: Gb over Frame Relay configuration #2 +---- +ns + bind fr sitea1 <1> + fr hdlc1 frnet <2> + bind fr sitea2 + fr hdlc2 frnet + bind fr sitea3 + fr hdlc3 frnet + bind fr sitea4 + fr hdlc4 frnet + bind fr siteb1 + fr hdlc5 frnet + bind fr siteb2 + fr hdlc6 frnet + bind fr sitec1 + fr hdlc7 frnet + bind fr sitec2 + fr hdlc8 frnet + nse 2001 <3> + nsvci fr sitea1 dlci 16 nsvci 11 + nsvci fr sitea2 dlci 17 nsvci 12 + nsvci fr sitea3 dlci 18 nsvci 13 + nsvci fr sitea4 dlci 19 nsvci 14 + nse 2002 <4> + nsvci fr siteb5 dlci 20 nsvci 15 + nsvci fr siteb6 dlci 21 nsvci 16 + nse 2003 <5> + nsvc fr sitec7 dlci 22 nsvci 17 + nsvc fr sitec8 dlci 23 nsvci 18 +---- +<1> a Gb-over-FR bind with the name sitea1 +<2> connect the hdlc1 device with the role frnet to sitea1 +<3> one NSE (2001) with four NS-VCI (11..14) on sitea1..4 with their respective DLCI +<4> another NSE (2002) with two NS-VCI (15..16) on siteb1..2 with their respective DLCI +<5> another NSE (2003) with two NS-VCI (17..18) on sitec1..2 with their respective DLCI + + +==== Gb over IP "ip.access style" + +The Gb over IP "ip.access style" can be used with a dynamic configuration or with a +static configuration + +The static configuration requires to configure all endpoints on the BSS and SGSN. +In constrast the dynamic configuration allows the SGSN to have only a reduced configuration. + +===== Gb over IP "ip.access style" dynamic configuration + +.Example: Gb over IP/UDP ip.access style dynamic configuration (SGSN) +---- +ns + bind udp ran1 <1> + listen 10.100.1.1 23000 <2> + accept-ipaccess <3> +---- +<1> create a IP/UDP bind with name ran1 +<2> bind to 10.100.1.1:23000 +<3> accept unknown BSS of ip.access style + +.Example: Gb over IP/UDP "ip.access style" dynamic configuration (GbProxy as BSS) +---- +ns + bind udp ran1 <1> + listen 10.100.0.1 23000 <2> + nse 1001 <3> + nsvc ipa ran1 10.100.1.1 23000 nsvci 1001 +---- +<1> create a IP/UDP bind with name ran1 +<2> bind to 10.100.1.1:23000 +<3> accept unknown BSS of ip.access style + +NOTE: The OsmoPCU supports ip.access style Gb/NS but doesn't support this vty configuration because +it's receiving the configuration from the BTS/BSC. + +===== Gb over IP "ip.access style" static configuration + +.Example: Gb over IP/UDP "ip.access style" dynamic configuration (SGSN) +---- +ns + bind udp ran1 <1> + listen 10.100.0.1 23000 <2> +---- +<1> create a IP/UDP bind with name ran1 +<2> bind to 10.100.0.1:23000 + +.Example: Gb over IP/UDP "ip.access style" dynamic configuration (GbProxy as BSS) +---- +ns + bind udp ran1 <1> + listen 10.100.0.1 23000 <2> + nse 1001 <3> + nsvc ipa ran1 10.100.1.1 23000 nsvci 1001 +---- +<1> create a IP/UDP bind with name ran1 +<2> bind to 10.100.0.1:23000 +<3> NSE 1001 with nsvc 1001 as ip.access style + +NOTE: The OsmoPCU supports "ip.access style" Gb/NS but doesn't support this vty configuration because +it's receiving the configuration from the BTS/BSC. + + +==== Gb over IP 3GPP static configuration + +A static IP/UDP configuration without SNS as specified by 3GPP 48.016. + +.Example: Gb over IP/UDP static configuration BSS/SGSN +---- +ns + bind udp ran1 <1> + listen 10.100.0.1 23000 <2> + nse 1001 <3> + nsvc udp ran1 10.100.1.1 23000 signalling-weight 2 data-weight 2 + nsvc udp ran1 10.100.1.2 23000 <4> +---- +<1> create a IP/UDP bind with name ran1 +<2> bind to 10.100.0.1:23000 +<3> add NSE 1001 with 2 NSVC +<4> short configuration with default signalling and data weight of 1 + +==== Gb over IP 3GPP auto configuration as BSS + +IP/UDP auto-configuration with initial endpoints to an SGSN. +The auto-configuration will use the first bind to connect to the +first endpoint. If this fails Osmocom will iterate over all endpoints and binds to find +a working combination. + +.Example: Gb over IP/UDP auto-configuration as BSS +---- +ns + bind udp ran1 <1> + listen 10.100.0.1 23000 <2> + bind udp ran2 + listen 10.100.0.2 23000 + bind udp ran3 + listen 10.100.0.3 23000 + nse 1001 <3> + ip-sns-bind ran1 <4> + ip-sns-bind ran2 + ip-sns-endpoint 10.100.1.1 <5> + ip-sns-endpoint 10.100.1.2 +---- +<1> create a IP/UDP bind with name ran1 +<2> bind to 10.100.0.1:23000 +<3> add NSE 1001 with 2 initial SNS endpoints +<4> add ran1 to the list of available endpoints +<5> add 10.100.1.1 as initial endpoint + diff --git a/common/chapters/gb-ns2.adoc b/common/chapters/gb-ns2.adoc new file mode 100644 index 0000000..38f7c4f --- /dev/null +++ b/common/chapters/gb-ns2.adoc @@ -0,0 +1,186 @@ +== Gb/NS Network Service + +'libosmogb' is part of the libosmocore.git repository and implements the +Gb interface protocol stack consisting of the NS and BSSGP layers. It +is used in a variety of Osmocom projects, including OsmoSGSN, OsmoPCU +and OsmoGbProxy. + +NOTE: <<3gpp-ts-48-016>> specifies Network Service + +[[gb_variants]] +=== Gb interface variants + +There are multiple variants of the Gb interface. This +section tries to provide an overview into what those variants are, how +they differ from each other. + +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. + +The following variants are supported by Osmocom: + +* Gb-over-Frame-Relay over E1/T1 +* Gb-over-IP "ip.access style" +* Gb-over IP 3GPP static configuration +* Gb-over-IP 3GPP auto-configuration + +[[gb-fr]] +==== 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. + + +===== FR Driver Support + +The Osmocom NS/FR implementation 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. Osmocom NS code configres +the `hdlcX` device to match the correct mode (fr) and lmi (none). +This is equivalent to the user-space command `sethdlc hdlcX fr lmi none`. + The net-devices will be also brought _up_ by the Osmocom NS code equivalent to + `ip link set hdlcX up` command. + +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-gre-fr]] +==== 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. + +NOTE: GRE/IP has been removed from Osmocom NS code. + +[[gb-ip-access]] +==== 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. + +[[gb-ip-sns]] +==== Gb over IP 3GPP static and auto-configuration + +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) which allows either +static configuration or dynamic configuration. +The static configuration requires to specify the NSE and related NS-VC +configuration via VTY similiar to Gb-over-FR. + +===== Gb over IP 3GPP auto-configuration + +The auto-configuration allow to dynamically exchange information about +IP endpoints (IP+port tuples) between the Gb interface peers. +This means that normally only one initial IP endpoint needs to be configured. +All additional IP endpoints and their relative weight for load distribution are then negotiated via the +IP-SNS auto-configuration procedure. + +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 BSS 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[] +---- + +=== General structure + +The general structure of the configuration is split into 3 parts + +* binds (NS-VL) +* nse (NS-E) +* timeouts + +==== bind (NS-VL) + +A bind represent a NS-VL. A bind has a specific type (IP/UDP or FR) +and a unique name. + +==== NS-E + +A NSE node represents a NS Entity. A NSE is either persistent or dynamic. +A persistent NSE is configured by VTY. A dynamic NSE is created on-demand +without any VTY node. The SGSN/GbProxy creates dynamic NSE when a BSS connects +to the SGSN (see accept-ipaccess). +The PCU creates a dynamic NSE when it receives the configuration from BTS/BSC. + +==== NS-VC + +A NS-VC is always bound to a NSE and the bind (NS-VL). The NSVC can be either +persistent or dynamic. + + +=== VTY + +This section describes the VTY commands to inspect or interact with the NS. + diff --git a/common/chapters/gb-variants.adoc b/common/chapters/gb-variants.adoc deleted file mode 100644 index dc978f6..0000000 --- a/common/chapters/gb-variants.adoc +++ /dev/null @@ -1,179 +0,0 @@ -[[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 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23393 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: I902b850528cbc04bd469590babd84cccf64300e8 Gerrit-Change-Number: 23393 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:37:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 08:37:51 +0000 Subject: Change in osmo-bsc[master]: [hopping] Rework generation of Cell/Mobile Allocation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23649 ) Change subject: [hopping] Rework generation of Cell/Mobile Allocation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I98211fb0684a973239f5760e1de52a24a1f4c33c Gerrit-Change-Number: 23649 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 08:37:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:40:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 08:40:26 +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: pespin 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 4: Code-Review+1 -- 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: 4 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 08:40: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 Apr 12 08:40:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 08:40:31 +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: pespin 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 4: Code-Review+2 -- 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: 4 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 08:40: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 Apr 12 08:46:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 08:46:27 +0000 Subject: Change in libosmocore[master]: vty/logging: logp: properly handle library specific sub-systems In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23630 ) Change subject: vty/logging: logp: properly handle library specific sub-systems ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If86563e169fe1243adfa7b09c9d65d9f88c8a99e Gerrit-Change-Number: 23630 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 08:46: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 Apr 12 08:47:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 08:47:22 +0000 Subject: Change in osmo-bsc[master]: Replace all references to 'sysmobts' with 'osmo-bts' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23627 ) Change subject: Replace all references to 'sysmobts' with 'osmo-bts' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I93ab4dbf483e0786c35685b75ee4ea83bd591f7b Gerrit-Change-Number: 23627 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 08: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 Apr 12 08:51:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 08:51:17 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... Patch Set 1: Code-Review+1 I would probably name it "osmobts" instead of "osmo-bts", but fine anyway. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 08:51:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 08:55:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 08:55:09 +0000 Subject: Change in osmo-bts[master]: omldummy: introduce using getopt_long In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23588 ) Change subject: omldummy: introduce using getopt_long ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23588/3/src/osmo-bts-omldummy/main.c File src/osmo-bts-omldummy/main.c: https://gerrit.osmocom.org/c/osmo-bts/+/23588/3/src/osmo-bts-omldummy/main.c at 38 PS3, Line 38: static struct option long_options[] = { having the static var declared inside the while loop is a bit weird imho. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc Gerrit-Change-Number: 23588 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 08:55: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 Mon Apr 12 08:59:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 08:59:53 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: check in simple declarative codec In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23135 ) Change subject: trx_toolkit: check in simple declarative codec ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Gerrit-Change-Number: 23135 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 08:59:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 09:00:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 09:00:12 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: make codec.py work with EOL Python 3.5 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23677 ) Change subject: trx_toolkit: make codec.py work with EOL Python 3.5 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7211cfbb7549b6e700aa3dd44464ff762fd51185 Gerrit-Change-Number: 23677 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 09:00: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 Apr 12 09:00:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 09:00:51 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv0/v1 PDUs using declarative codec In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23137 ) Change subject: trx_toolkit: define TRXDv0/v1 PDUs using declarative codec ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23137 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I739ae5da22c603fb2cf1e84d3a79fb1a6e7343b6 Gerrit-Change-Number: 23137 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 09:00:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 09:01:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 09:01:47 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv2 PDUs using declarative codec In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23678 ) Change subject: trx_toolkit: define TRXDv2 PDUs using declarative codec ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Gerrit-Change-Number: 23678 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 09:01: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 Apr 12 09:11:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 09:11:19 +0000 Subject: Change in osmo-bsc[master]: [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23650 ) Change subject: [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I435018f439181cdd046ca99fe7e01ac85e226cce Gerrit-Change-Number: 23650 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 09:11: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 Apr 12 09:52:54 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Mon, 12 Apr 2021 09:52:54 +0000 Subject: Change in pysim[master]: Use construct for EF_AD in pySim-{shepp, prog, read}.py, cards.py References: Message-ID: Falkenber9 has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23723 ) Change subject: Use construct for EF_AD in pySim-{shepp, prog, read}.py, cards.py ...................................................................... Use construct for EF_AD in pySim-{shepp, prog, read}.py, cards.py Also serves as example for RFU (reserved for future use) fields which should not always be reset to zero in case they have been set on the uSIM for some reason. See pySim/ts_51_011.py, class EF_AD. * Add definitions for RFU {Flag, Bits, Byte, Bytes} * Use IntEnum for OP_MODE (convenient auto completion) * Remove obsolete definitions and imports * Update test results for all SIMs (opmode strings are shortened) Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 --- M pySim-prog.py M pySim-read.py M pySim-shell.py M pySim/cards.py M pySim/construct.py M pySim/ts_51_011.py M pysim-testdata/Fairwaves-SIM.ok M pysim-testdata/Wavemobile-SIM.ok M pysim-testdata/fakemagicsim.ok M pysim-testdata/sysmoISIM-SJA2.ok M pysim-testdata/sysmoUSIM-SJS1.ok M pysim-testdata/sysmosim-gr1.ok 12 files changed, 81 insertions(+), 57 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/23/23723/1 diff --git a/pySim-prog.py b/pySim-prog.py index 0abd190..4c85be7 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -146,7 +146,7 @@ parser.add_option("--opmode", dest="opmode", type="choice", help="Set UE Operation Mode in EF.AD (Administrative Data)", default=None, - choices=['{:02X}'.format(m) for m in list(EF_AD.OP_MODE.keys())], + choices=['{:02X}'.format(int(m)) for m in EF_AD.OP_MODE], ) parser.add_option("--epdgid", dest="epdgid", help="Set Home Evolved Packet Data Gateway (ePDG) Identifier. (Only FQDN format supported)", diff --git a/pySim-read.py b/pySim-read.py index 59c5762..85a0952 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -28,7 +28,7 @@ import random import re import sys -from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD_mode_map +from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD from pySim.ts_31_102 import EF_UST_map, EF_USIM_ADF_map from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map @@ -230,11 +230,10 @@ (res, sw) = card.read_binary('AD') if sw == '9000': print("Administrative data: %s" % (res,)) - if res[:2] in EF_AD_mode_map: - print("\tMS operation mode: %s" % (EF_AD_mode_map[res[:2]],)) - else: - print("\tMS operation mode: (unknown 0x%s)" % (res[:2],)) - if int(res[4:6], 16) & 0x01: + ad = EF_AD() + data = ad.decode_hex(res) + print("\tMS operation mode: %s" % data['ms_operation_mode']) + if data['ofm']: print("\tCiphering Indicator: enabled") else: print("\tCiphering Indicator: disabled") diff --git a/pySim-shell.py b/pySim-shell.py index 6bc9a95..acb1822 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -30,7 +30,7 @@ import sys from pathlib import Path -from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD_mode_map +from pySim.ts_51_011 import EF, DF, EF_SST_map from pySim.ts_31_102 import EF_UST_map, EF_USIM_ADF_map from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map diff --git a/pySim/cards.py b/pySim/cards.py index 5a39bda..1334cc6 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -175,8 +175,7 @@ # read from card raw_hex_data, sw = self._scc.read_binary(EF['AD'], length=None, offset=0) - raw_bin_data = h2b(raw_hex_data) - abstract_data = ad.decode_bin(raw_bin_data) + abstract_data = ad.decode_hex(raw_hex_data) # perform updates if mnc: @@ -185,19 +184,18 @@ mnclen = 2 if mnclen > 3: raise RuntimeError('invalid length of mnc "{}"'.format(mnc)) - abstract_data['len_of_mnc_in_imsi'] = mnclen + abstract_data['mnc_len'] = mnclen if opmode: - opmode_symb = ad.OP_MODE.get(int(opmode, 16)) - if opmode_symb: - abstract_data['ms_operation_mode'] = opmode_symb + opmode_num = int(opmode, 16) + if opmode_num in [int(v) for v in EF_AD.OP_MODE]: + abstract_data['ms_operation_mode'] = opmode_num else: raise RuntimeError('invalid opmode "{}"'.format(opmode)) if ofm: - abstract_data['specific_facilities']['ofm'] = bool(int(ofm, 16)) + abstract_data['ofm'] = bool(int(ofm, 16)) # write to card - raw_bin_data = ad.encode_bin(abstract_data) - raw_hex_data = b2h(raw_bin_data) + raw_hex_data = ad.encode_hex(abstract_data) data, sw = self._scc.update_binary(EF['AD'], raw_hex_data) return sw diff --git a/pySim/construct.py b/pySim/construct.py index 839497c..dd00c63 100644 --- a/pySim/construct.py +++ b/pySim/construct.py @@ -47,3 +47,40 @@ # here we collect some shared / common definitions of data types LV = Prefixed(Int8ub, HexAdapter(GreedyBytes)) + +# Default value for Reserved for Future Use (RFU) bits/bytes +# See TS 31.101 Sec. "3.4 Coding Conventions" +__RFU_VALUE = 0 + +# Field that packs Reserved for Future Use (RFU) bit +FlagRFU=Default(Flag,__RFU_VALUE) +# Field that packs Reserved for Future Use (RFU) byte +ByteRFU = Default(Byte,__RFU_VALUE) + +def BitsRFU(n=1): + ''' + Field that packs Reserved for Future Use (RFU) bit(s) + as defined in TS 31.101 Sec. "3.4 Coding Conventions" + + Use this for (currently) unused/reserved bits whose contents + should be initialized automatically but should not be cleared + in the future or when restoring read data (unlike padding). + + Parameters: + n (Integer): Number of bits (default: 1) + ''' + return Default(BitsInteger(n),__RFU_VALUE) + +def BytesRFU(n=1): + ''' + Field that packs Reserved for Future Use (RFU) byte(s) + as defined in TS 31.101 Sec. "3.4 Coding Conventions" + + Use this for (currently) unused/reserved bytes whose contents + should be initialized automatically but should not be cleared + in the future or when restoring read data (unlike padding). + + Parameters: + n (Integer): Number of bytes (default: 1) + ''' + return Default(Bytes(n),__RFU_VALUE) diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index c21e86c..7ab6885 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -319,22 +319,12 @@ 59: 'MMS User Connectivity Parameters', } -# 10.3.18 "EF.AD (Administrative data) " -EF_AD_mode_map = { - '00' : 'normal operation', - '80' : 'type approval operations', - '01' : 'normal operation + specific facilities', - '81' : 'type approval operations + specific facilities', - '02' : 'maintenance (off line)', - '04' : 'cell test operation', -} - - from pySim.utils import * from struct import pack, unpack from construct import * from construct import Optional as COptional -from pySim.construct import HexAdapter, BcdAdapter +from pySim.construct import HexAdapter, BcdAdapter, FlagRFU, ByteRFU, BitsRFU, BytesRFU +import enum from pySim.filesystem import * import pySim.ts_102_221 @@ -553,30 +543,30 @@ # TS 51.011 Section 10.3.18 class EF_AD(TransparentEF): - OP_MODE = { - 0x00: 'normal', - 0x80: 'type_approval', - 0x01: 'normal_and_specific_facilities', - 0x81: 'type_approval_and_specific_facilities', - 0x02: 'maintenance_off_line', - 0x04: 'cell_test', - } - OP_MODE_reverse = dict(map(reversed, OP_MODE.items())) + class OP_MODE(enum.IntEnum): + normal = 0x00 + type_approval = 0x80 + normal_and_specific_facilities = 0x01 + type_approval_and_specific_facilities = 0x81 + maintenance_off_line = 0x02 + cell_test = 0x04 + #OP_MODE_DICT = {int(v) : str(v) for v in EF_AD.OP_MODE} + #OP_MODE_DICT_REVERSED = {str(v) : int(v) for v in EF_AD.OP_MODE} + def __init__(self, fid='6fad', sfid=None, name='EF.AD', desc='Administrative Data', size={3,4}): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) - def _decode_bin(self, raw_bin): - u = unpack('!BH', raw_bin[:3]) - ofm = True if u[1] & 1 else False - res = {'ms_operation_mode': self.OP_MODE.get(u[0], u[0]), 'specific_facilities': { 'ofm': ofm } } - if len(raw_bin) > 3: - res['len_of_mnc_in_imsi'] = int(raw_bin[3]) & 0xf - return res - def _encode_bin(self, abstract): - op_mode = self.OP_MODE_reverse[abstract['ms_operation_mode']] - res = pack('!BH', op_mode, abstract['specific_facilities']['ofm']) - if 'len_of_mnc_in_imsi' in abstract: - res += pack('!B', abstract['len_of_mnc_in_imsi']) - return res + self._construct = BitStruct( + # Byte 1 + 'ms_operation_mode'/Bytewise(Enum(Byte, EF_AD.OP_MODE)), + # Byte 2 + 'rfu1'/Bytewise(ByteRFU), + # Byte 3 + 'rfu2'/BitsRFU(7), + 'ofm'/Flag, + # Byte 4 + 'rfu3'/BitsRFU(4), + 'mnc_len'/BitsInteger(4) + ) # TS 51.011 Section 10.3.20 / 10.3.22 class EF_VGCS(TransRecEF): diff --git a/pysim-testdata/Fairwaves-SIM.ok b/pysim-testdata/Fairwaves-SIM.ok index e6fcfe3..f83f415 100644 --- a/pysim-testdata/Fairwaves-SIM.ok +++ b/pysim-testdata/Fairwaves-SIM.ok @@ -43,7 +43,7 @@ ACC: 0008 MSISDN: Not available Administrative data: 00000002 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: disabled SIM Service Table: ff3cc3ff030fff0f000fff03f0c0 Service 1 - CHV1 disable function diff --git a/pysim-testdata/Wavemobile-SIM.ok b/pysim-testdata/Wavemobile-SIM.ok index 1c78cc9..0682a70 100644 --- a/pysim-testdata/Wavemobile-SIM.ok +++ b/pysim-testdata/Wavemobile-SIM.ok @@ -50,7 +50,7 @@ ACC: abce MSISDN: Not available Administrative data: 00000102 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: enabled SIM Service Table: ff33ff0f3c00ff0f000cf0c0f0030000 Service 1 - CHV1 disable function diff --git a/pysim-testdata/fakemagicsim.ok b/pysim-testdata/fakemagicsim.ok index 1d1714f..11296f5 100644 --- a/pysim-testdata/fakemagicsim.ok +++ b/pysim-testdata/fakemagicsim.ok @@ -17,7 +17,7 @@ ACC: ffff MSISDN: Not available Administrative data: 000000 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: disabled SIM Service Table: ff3fff0f0300f003000c Service 1 - CHV1 disable function diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index ae332a8..dc7b865 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -55,7 +55,7 @@ ACC: 0200 MSISDN (NPI=1 ToN=3): 6766266 Administrative data: 00000002 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: disabled SIM Service Table: ff33ffff3f003f0f300cf0c3f00000 Service 1 - CHV1 disable function diff --git a/pysim-testdata/sysmoUSIM-SJS1.ok b/pysim-testdata/sysmoUSIM-SJS1.ok index 95f6967..bce3c9d 100644 --- a/pysim-testdata/sysmoUSIM-SJS1.ok +++ b/pysim-testdata/sysmoUSIM-SJS1.ok @@ -55,7 +55,7 @@ ACC: 0008 MSISDN (NPI=1 ToN=1): +77776336143 Administrative data: 00000002 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: disabled SIM Service Table: ff3fffff3f003f1ff00c00c0f00000 Service 1 - CHV1 disable function diff --git a/pysim-testdata/sysmosim-gr1.ok b/pysim-testdata/sysmosim-gr1.ok index f4b09c8..3aff2a3 100644 --- a/pysim-testdata/sysmosim-gr1.ok +++ b/pysim-testdata/sysmosim-gr1.ok @@ -17,7 +17,7 @@ ACC: 0008 MSISDN: Not available Administrative data: 000000 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: disabled SIM Service Table: ff3fff0f0f0000030000 Service 1 - CHV1 disable function -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 Gerrit-Change-Number: 23723 Gerrit-PatchSet: 1 Gerrit-Owner: Falkenber9 Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:06:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 12 Apr 2021 10:06:34 +0000 Subject: Change in osmo-pcu[master]: tbf: Get rid of unneeded poll_scheduled() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23526 ) Change subject: tbf: Get rid of unneeded poll_scheduled() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I875f51cade95faeb2d79dcebfead4c83e23a731b Gerrit-Change-Number: 23526 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 10:06: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 Apr 12 10:10:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 12 Apr 2021 10:10:13 +0000 Subject: Change in osmo-pcu[master]: tbf: Allow multiple concurrent polls In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23527 ) Change subject: tbf: Allow multiple concurrent polls ...................................................................... Patch Set 2: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/23527/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/23527/2//COMMIT_MSG at 10 PS2, Line 10: was (way) https://gerrit.osmocom.org/c/osmo-pcu/+/23527/2//COMMIT_MSG at 10 PS2, Line 10: onyl (only) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic4080db684a4626cae90dd574d123081981284ca Gerrit-Change-Number: 23527 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: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 10:10: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 Mon Apr 12 10:11:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 12 Apr 2021 10:11:28 +0000 Subject: Change in osmo-pcu[master]: tbf: get rid of poll_state completely In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23529 ) Change subject: tbf: get rid of poll_state completely ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie5b807ccd38aa736ae11b3310ca61ad0156ca4d4 Gerrit-Change-Number: 23529 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: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 10:11: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 Apr 12 10:12:49 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 12 Apr 2021 10:12:49 +0000 Subject: Change in osmo-pcu[master]: Get rid of param 'poll' with constant value In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23530 ) Change subject: Get rid of param 'poll' with constant value ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia48ce2a021865e76e813dedb22aca9c2522c5693 Gerrit-Change-Number: 23530 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 10:12:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:19:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 12 Apr 2021 10:19:42 +0000 Subject: Change in osmo-pcu[master]: tbf: Get rid of attribute poll_fn In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23531 ) Change subject: tbf: Get rid of attribute poll_fn ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I63a34a702f028b871530fb7caeb13e8ea1cc78ac Gerrit-Change-Number: 23531 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: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 10:19: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 Apr 12 10:21:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 12 Apr 2021 10:21:01 +0000 Subject: Change in osmo-pcu[master]: tbf: Get rid of attribute poll_ts In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23532 ) Change subject: tbf: Get rid of attribute poll_ts ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9b8bed7741d385bab4cd8c64b841a78a02a05fe1 Gerrit-Change-Number: 23532 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: osmith Gerrit-Comment-Date: Mon, 12 Apr 2021 10: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 Mon Apr 12 10:25:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 10:25:44 +0000 Subject: Change in osmo-gbproxy[for-0.1]: gbproxy_main: Add ctrl vty commands References: Message-ID: Hello daniel, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23724 to review the following change. Change subject: gbproxy_main: Add ctrl vty commands ...................................................................... gbproxy_main: Add ctrl vty commands osmo-gbproxy already provides a ctrl interface, we should be able to change ctrl-related configuration. Change-Id: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 --- M src/gb_proxy_main.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/24/23724/1 diff --git a/src/gb_proxy_main.c b/src/gb_proxy_main.c index 6bd8bd8..3b5a1a8 100644 --- a/src/gb_proxy_main.c +++ b/src/gb_proxy_main.c @@ -280,6 +280,7 @@ vty_info.copyright = openbsc_copyright; vty_init(&vty_info); + ctrl_vty_init(tall_sgsn_ctx); logging_vty_add_cmds(); osmo_talloc_vty_add_cmds(); osmo_stats_vty_add_cmds(); -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: for-0.1 Gerrit-Change-Id: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 Gerrit-Change-Number: 23724 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:26:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 10:26:27 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gbproxy=5Bfor-0=2E1=5D=3A_Bump_version=3A_0=2E1=2E0=2E1-e64c_=E2=86=92_0=2E1=2E1?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23725 ) Change subject: Bump version: 0.1.0.1-e64c ? 0.1.1 ...................................................................... Bump version: 0.1.0.1-e64c ? 0.1.1 Change-Id: I49b111c6949b89b9bc6c379ff125c3921b2c853a --- M debian/changelog 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/25/23725/1 diff --git a/debian/changelog b/debian/changelog index c6702cd..580125d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +osmo-gbproxy (1:0.1.1) unstable; urgency=medium + + [ Daniel Willmann ] + * gbproxy_main: Add ctrl vty commands + + -- Harald Welte Mon, 12 Apr 2021 12:26:01 +0200 + osmo-gbproxy (1:0.1.0) unstable; urgency=medium [ Philipp Maier ] -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: for-0.1 Gerrit-Change-Id: I49b111c6949b89b9bc6c379ff125c3921b2c853a Gerrit-Change-Number: 23725 Gerrit-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 Apr 12 10:26:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 10:26:39 +0000 Subject: Change in osmo-gbproxy[for-0.1]: gbproxy_main: Add ctrl vty commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23724 ) Change subject: gbproxy_main: Add ctrl vty commands ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: for-0.1 Gerrit-Change-Id: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 Gerrit-Change-Number: 23724 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 12 Apr 2021 10:26: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 Apr 12 10:26:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 10:26:47 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gbproxy=5Bfor-0=2E1=5D=3A_Bump_version=3A_0=2E1=2E0=2E1-e64c_=E2=86=92_0=2E1=2E1?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23725 ) Change subject: Bump version: 0.1.0.1-e64c ? 0.1.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: for-0.1 Gerrit-Change-Id: I49b111c6949b89b9bc6c379ff125c3921b2c853a Gerrit-Change-Number: 23725 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 12 Apr 2021 10:26:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:27:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:10 +0000 Subject: Change in osmo-pcu[master]: tbf: Get rid of unneeded poll_scheduled() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23526 ) Change subject: tbf: Get rid of unneeded poll_scheduled() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I875f51cade95faeb2d79dcebfead4c83e23a731b Gerrit-Change-Number: 23526 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 10:27: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 Apr 12 10:27:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:12 +0000 Subject: Change in osmo-pcu[master]: tbf: Allow multiple concurrent polls In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23527 ) Change subject: tbf: Allow multiple concurrent polls ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic4080db684a4626cae90dd574d123081981284ca Gerrit-Change-Number: 23527 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: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 10:27: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 Apr 12 10:27:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:14 +0000 Subject: Change in osmo-pcu[master]: Remove unneeded poll_state check In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23528 ) Change subject: Remove unneeded poll_state check ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5e12280a6835407fa452bd4d5df799d2672790ec Gerrit-Change-Number: 23528 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 10: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 Mon Apr 12 10:27:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:16 +0000 Subject: Change in osmo-pcu[master]: tbf: get rid of poll_state completely In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23529 ) Change subject: tbf: get rid of poll_state completely ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie5b807ccd38aa736ae11b3310ca61ad0156ca4d4 Gerrit-Change-Number: 23529 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: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 10:27:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:27:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:26 +0000 Subject: Change in osmo-pcu[master]: tbf: Get rid of attribute poll_fn In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23531 ) Change subject: tbf: Get rid of attribute poll_fn ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I63a34a702f028b871530fb7caeb13e8ea1cc78ac Gerrit-Change-Number: 23531 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: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 10:27: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 Apr 12 10:27:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:28 +0000 Subject: Change in osmo-pcu[master]: tbf: Get rid of attribute poll_ts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23532 ) Change subject: tbf: Get rid of attribute poll_ts ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9b8bed7741d385bab4cd8c64b841a78a02a05fe1 Gerrit-Change-Number: 23532 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: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 10:27:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:27:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:30 +0000 Subject: Change in osmo-pcu[master]: tbf: Get rid of unneeded poll_scheduled() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23526 ) Change subject: tbf: Get rid of unneeded poll_scheduled() ...................................................................... tbf: Get rid of unneeded poll_scheduled() This API is not really needed anymore, since anyway it works under the assumption there can only be 1 POLL in transit per TBF, which isn't necessarily true. Change-Id: I875f51cade95faeb2d79dcebfead4c83e23a731b --- M src/tbf.h M src/tbf_dl.cpp M src/tbf_ul.cpp M tests/tbf/TbfTest.err 4 files changed, 105 insertions(+), 114 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/tbf.h b/src/tbf.h index 83c1b70..5064216 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -221,7 +221,6 @@ bool dl_ass_state_is(enum gprs_rlcmac_tbf_dl_ass_state rhs) const; bool ul_ass_state_is(enum gprs_rlcmac_tbf_ul_ass_state rhs) const; bool ul_ack_state_is(enum gprs_rlcmac_tbf_ul_ack_state rhs) const; - bool poll_scheduled() const; void set_state(enum gprs_rlcmac_tbf_state new_state, const char *file, int line); void set_ass_state_dl(enum gprs_rlcmac_tbf_dl_ass_state new_state, const char *file, int line); void set_ass_state_ul(enum gprs_rlcmac_tbf_ul_ass_state new_state, const char *file, int line); @@ -381,11 +380,6 @@ return ul_ack_state == rhs; } -inline bool gprs_rlcmac_tbf::poll_scheduled() const -{ - return poll_state == GPRS_RLCMAC_POLL_SCHED; -} - inline bool gprs_rlcmac_tbf::state_is_not(enum gprs_rlcmac_tbf_state rhs) const { return state != rhs; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index a59b03b..ba5c651 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -1321,9 +1321,6 @@ bool gprs_rlcmac_dl_tbf::need_control_ts() const { - if (poll_scheduled()) - return false; - return state_flags & (1 << GPRS_RLCMAC_FLAG_TO_DL_ACK) || m_tx_counter >= POLL_ACK_AFTER_FRAMES || m_dl_ack_requested; diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 063d0ff..ff291ef 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -295,7 +295,7 @@ uint32_t new_poll_fn = 0; if (final) { - if (poll_scheduled() && ul_ack_state_is(GPRS_RLCMAC_UL_ACK_WAIT_ACK)) { + if (ul_ack_state_is(GPRS_RLCMAC_UL_ACK_WAIT_ACK)) { LOGPTBFUL(this, LOGL_DEBUG, "Polling is already scheduled, so we must wait for the final uplink ack...\n"); return NULL; diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 76800b5..e3b30c0 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -415,7 +415,7 @@ 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 -PDCH(bts=0,trx=0,ts=4) FN=91 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=91 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -432,7 +432,7 @@ 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 -PDCH(bts=0,trx=0,ts=4) FN=95 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=95 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -449,7 +449,7 @@ 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 -PDCH(bts=0,trx=0,ts=4) FN=203 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=203 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3616,7 +3616,7 @@ Detected FN jump! 2654167 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 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) @@ -3627,7 +3627,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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3637,7 +3637,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 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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3647,7 +3647,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 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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3657,7 +3657,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 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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3667,7 +3667,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 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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3677,7 +3677,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-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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3687,7 +3687,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-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 -PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3697,7 +3697,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 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 -PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3707,7 +3707,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 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 -PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3717,7 +3717,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 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 -PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3727,7 +3727,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 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 -PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3737,7 +3737,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 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 -PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3747,7 +3747,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 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 -PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3757,7 +3757,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 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 -PDCH(bts=0,trx=0,ts=4) FN=69 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=69 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3767,7 +3767,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 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 -PDCH(bts=0,trx=0,ts=4) FN=73 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=73 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3777,7 +3777,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 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 -PDCH(bts=0,trx=0,ts=4) FN=78 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=78 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3787,7 +3787,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 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 -PDCH(bts=0,trx=0,ts=4) FN=82 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=82 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3797,7 +3797,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 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 -PDCH(bts=0,trx=0,ts=4) FN=86 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=86 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3807,7 +3807,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 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 -PDCH(bts=0,trx=0,ts=4) FN=91 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=91 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3817,7 +3817,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 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 -PDCH(bts=0,trx=0,ts=4) FN=95 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=95 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3827,7 +3827,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 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 -PDCH(bts=0,trx=0,ts=4) FN=99 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=99 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3837,7 +3837,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 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 -PDCH(bts=0,trx=0,ts=4) FN=104 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=104 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3847,7 +3847,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 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 -PDCH(bts=0,trx=0,ts=4) FN=108 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=108 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3930,7 +3930,7 @@ Detected FN jump! 112 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 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) @@ -3941,7 +3941,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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3951,7 +3951,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 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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3961,7 +3961,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 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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3971,7 +3971,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 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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3981,7 +3981,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 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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3991,7 +3991,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-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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4001,7 +4001,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-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 -PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4011,7 +4011,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 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 -PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4021,7 +4021,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 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 -PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4031,7 +4031,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 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 -PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4041,7 +4041,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 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 -PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4051,7 +4051,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 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 -PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4061,7 +4061,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 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 -PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4071,7 +4071,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 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 -PDCH(bts=0,trx=0,ts=4) FN=69 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=69 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4081,7 +4081,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 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 -PDCH(bts=0,trx=0,ts=4) FN=73 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=73 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4091,7 +4091,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 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 -PDCH(bts=0,trx=0,ts=4) FN=78 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=78 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4101,7 +4101,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 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 -PDCH(bts=0,trx=0,ts=4) FN=82 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=82 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4111,7 +4111,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 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 -PDCH(bts=0,trx=0,ts=4) FN=86 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=86 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4194,7 +4194,7 @@ Detected FN jump! 91 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 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) @@ -4205,7 +4205,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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4215,7 +4215,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 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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4225,7 +4225,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 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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4235,7 +4235,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 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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4245,7 +4245,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 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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4255,7 +4255,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-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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4265,7 +4265,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-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 -PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4275,7 +4275,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 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 -PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4285,7 +4285,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 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 -PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4295,7 +4295,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 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 -PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4305,7 +4305,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 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 -PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4315,7 +4315,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 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 -PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4325,7 +4325,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 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 -PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4408,7 +4408,7 @@ Detected FN jump! 69 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 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) @@ -4419,7 +4419,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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4429,7 +4429,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 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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4439,7 +4439,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 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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4449,7 +4449,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 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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4459,7 +4459,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 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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4469,7 +4469,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-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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4479,7 +4479,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-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 -PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4489,7 +4489,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 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 -PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4499,7 +4499,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 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 -PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4509,7 +4509,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 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 -PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4519,7 +4519,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 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 -PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=4 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4602,7 +4602,7 @@ Detected FN jump! 60 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 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) @@ -4613,7 +4613,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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4623,7 +4623,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 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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4633,7 +4633,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 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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4643,7 +4643,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 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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4653,7 +4653,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 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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4663,7 +4663,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-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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4673,7 +4673,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-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 -PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4683,7 +4683,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 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 -PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4693,7 +4693,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 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 -PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4776,7 +4776,7 @@ Detected FN jump! 52 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 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) @@ -4787,7 +4787,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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4797,7 +4797,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 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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4807,7 +4807,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 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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4817,7 +4817,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 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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4827,7 +4827,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 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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4837,7 +4837,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-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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4921,7 +4921,7 @@ Detected FN jump! 39 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4935,7 +4935,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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4948,7 +4948,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 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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4961,7 +4961,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 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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4974,7 +4974,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-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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -4987,7 +4987,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 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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -5073,7 +5073,7 @@ Detected FN jump! 34 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -5087,7 +5087,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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -5100,7 +5100,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 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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -5113,7 +5113,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 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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -5126,7 +5126,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-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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -5212,7 +5212,7 @@ Detected FN jump! 30 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -5226,7 +5226,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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -5239,7 +5239,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 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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -5252,7 +5252,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 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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 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 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I875f51cade95faeb2d79dcebfead4c83e23a731b Gerrit-Change-Number: 23526 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:27:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:31 +0000 Subject: Change in osmo-pcu[master]: tbf: Allow multiple concurrent polls In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23527 ) Change subject: tbf: Allow multiple concurrent polls ...................................................................... tbf: Allow multiple concurrent polls There's no good reason to allow only for 1 concurrent POLL requested to a TBF, it was onyl done this was as an implementation limitation factor. It can well happen that several multiple POLLs may be in transit at the same time, eg to get DL ACK/NACK as well as to get a CTRL ACK for a Pkt Cell Change Continue (NACC). Change-Id: Ic4080db684a4626cae90dd574d123081981284ca --- M src/tbf.cpp M tests/tbf/TbfTest.err 2 files changed, 315 insertions(+), 404 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/src/tbf.cpp b/src/tbf.cpp index 860b877..8520a1b 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -557,10 +557,6 @@ ts, control_ts); return -EINVAL; } - if (poll_state != GPRS_RLCMAC_POLL_NONE) { - LOGPTBF(this, LOGL_DEBUG, "Polling is already scheduled\n"); - return -EBUSY; - } if ((rc = pdch_ulc_get_next_free_rrbp_fn(trx->pdch[ts].ulc, fn, poll_fn_, rrbp_)) < 0) { LOGPTBF(this, LOGL_DEBUG, diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index e3b30c0..6d2c384 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -426,43 +426,34 @@ 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 09 c6 c7 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 91 + 13 = 104 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Scheduled DL Acknowledgement polling on UNKNOWN (FN=104, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Scheduled Ack/Nack polling on FN=104, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 20, CS-1): 0f 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...........................................' 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 -PDCH(bts=0,trx=0,ts=4) FN=95 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +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) ack range is out of V(A)..V(S) range - Free TBF! +PDCH(bts=0,trx=0,ts=4) FN=203 Scheduling data message at RTS for DL TFI=0 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) Keep idle TBF open: 4/43 -> yes -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) -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 21) -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 21, CS-1): 07 00 2a 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) downlink acknowledge -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 -PDCH(bts=0,trx=0,ts=4) FN=203 Scheduling data message at RTS for DL TFI=0 prio=5 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) Keep idle TBF open: 112/43 -> no 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 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) need_padding 0 spb_status 0 spb 0 (BSN1 22 BSN2 -1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) 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=FINISHED) need_padding 0 spb_status 0 spb 0 (BSN1 21 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) Copying 1 RLC blocks, 1 BSNs -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) Copying data unit 0 (BSN 22) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) Copying data unit 0 (BSN 21) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) msg block (BSN 22, CS-1): 07 01 2c 4d 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 203 + 13 = 216 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) Scheduled DL Acknowledgement polling on UNKNOWN (FN=216, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) Scheduled Ack/Nack polling on FN=216, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) msg block (BSN 21, CS-1): 0f 01 2a 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=FINISHED) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) changes state from FINISHED to WAIT RELEASE @@ -470,6 +461,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) changes DL ASS state from GPRS_RLCMAC_DL_ASS_WAIT_ACK to GPRS_RLCMAC_DL_ASS_NONE TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) changes state from WAIT RELEASE to RELEASING TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING) free +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING) stopping timer T3191 [freeing TBF] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING) stopping timer T3193 [freeing TBF] PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING), 0 TBFs, USFs = 00, TFIs = 00000000. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING) @@ -2799,8 +2791,11 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Copying data unit 0 (BSN 27) TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Polling is already scheduled -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 27, CS-1): 07 01 36 16 35 45 54 20 33 38 4c 4c 43 20 50 41 43 4b 45 54 20 33 39 +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654396 + 13 = 2654409 +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled DL Acknowledgement polling on PACCH (FN=2654409, TS=7) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654288 +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled Ack/Nack polling on FN=2654409, TS=7 +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 27, CS-1): 0f 01 36 16 35 45 54 20 33 38 4c 4c 43 20 50 41 43 4b 45 54 20 33 39 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes @@ -2811,9 +2806,10 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes -Detected FN jump! 2654288 -> 2654379 -PDCH(bts=0,trx=0,ts=7) FN=2654379 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ -PDCH(bts=0,trx=0,ts=7) FN=2654379 ------------------------- RX : Uplink Control Block ------------------------- +Detected FN jump! 2654288 -> 2654409 +PDCH(bts=0,trx=0,ts=7) FN=2654409 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=2654409 ------------------------- RX : Uplink Control Block ------------------------- +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) stopping timer T3191 [ACK/NACK received] TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) RX: [PCU <- BTS] Packet Downlink Ack/Nack PDCH(bts=0,trx=0,ts=7) Got GPRS DL ACK bitmap: SSN: 0, BSN 0 to 28 - 1 (28 blocks), "RRRRRRRRRRRRRRRRRRRRRRRRRRRR" @@ -2823,7 +2819,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) V(B): (V(A)=28)""(V(S)-1=27) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received. TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) changes state from FINISHED to WAIT RELEASE -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654379 +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654409 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) ********** DL-TBF starts here ********** MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Allocating DL TBF [DL] algo A (suggested TRX: 0): Alloc start @@ -2844,81 +2840,100 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes DL ASS state from GPRS_RLCMAC_DL_ASS_NONE to GPRS_RLCMAC_DL_ASS_SEND_ASS TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) set ass. type PACCH [prev CCCH:0, PACCH:0] -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=2654379 -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654283 is still reserved! +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=2654409 +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654283 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654283): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 1 => 2 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654288 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654288 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654288): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 2 => 3 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654292 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654292 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654292): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 3 => 4 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654296 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654296 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654296): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 4 => 5 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654301 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654301 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654301): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 5 => 6 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654305 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654305 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654305): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 6 => 7 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654309 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654309 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654309): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 7 => 8 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654314 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654314 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654314): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 8 => 9 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654318 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654318 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654318): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 exceeded MAX (10) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) changes state from FLOW to RELEASING -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654322 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654322 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654322): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 10 => 11 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654327 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654327 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654327): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 11 => 12 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654331 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654331 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654331): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 12 => 13 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654335 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654335 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654335): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 13 => 14 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654340 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654340 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654340): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 14 => 15 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654344 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654344 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654344): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 15 => 16 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654348 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654348 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654348): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 16 => 17 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654353 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654353 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654353): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 17 => 18 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654357 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654357 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654357): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 18 => 19 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654361 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654361 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654361): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 19 => 20 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654366 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654366 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654366): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 20 => 21 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654370 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654370 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654370): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 21 => 22 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654374 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654374 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654374): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 22 => 23 (< MAX 10) +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654379 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654379): TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) poll timeout for FN=2654409, TS=7 (curr FN 2654409) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|Downlink ACK was received| +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654383 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654383): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) +TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 23 => 24 (< MAX 10) +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654387 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654387): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) +TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 24 => 25 (< MAX 10) +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654392 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654392): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) +TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 25 => 26 (< MAX 10) +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654396 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654396): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) +TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 26 => 27 (< MAX 10) +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654400 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654400): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) +TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 27 => 28 (< MAX 10) PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) +++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7) PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) -Detected FN jump! 2654379 -> 2654413 PDCH(bts=0,trx=0,ts=7) FN=2654413 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654413 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) RX: [PCU <- BTS] Packet Control Ack @@ -2933,21 +2948,6 @@ ********** DL-TBF ends here ********** TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) changes state from ASSIGN to FLOW TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) stopping timer T0 [control acked (DL-TBF)] -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654413 but previous FN=2654383 is still reserved! -PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654383): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 23 => 24 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654413 but previous FN=2654387 is still reserved! -PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654387): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 24 => 25 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654413 but previous FN=2654392 is still reserved! -PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654392): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 25 => 26 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654413 but previous FN=2654396 is still reserved! -PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654396): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 26 => 27 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654413 but previous FN=2654400 is still reserved! -PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654400): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 27 => 28 (< MAX 10) Received RTS on disabled PDCH: TRX=0 TS=0 Received RTS on disabled PDCH: TRX=0 TS=1 Received RTS on disabled PDCH: TRX=0 TS=2 @@ -3611,12 +3611,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) 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 fe 03 02 02 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 00 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 4 + 13 = 17 +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-1): 0f 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 Detected FN jump! 2654167 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 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) @@ -3624,188 +3626,151 @@ 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) 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +Received RTS for PDCH: TRX=0 TS=4 FN=13 block_nr=3 scheduling free USF for polling at FN=17 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 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) 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 2) -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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 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) 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 3) -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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 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) 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 4) -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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 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) 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 5) -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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 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) 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 6) -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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 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) 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 9) -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 -PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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 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 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 -PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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 13) -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 -PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=69 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=69 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=73 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=73 Scheduling data message at RTS for DL TFI=0 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) 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 16) -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 -PDCH(bts=0,trx=0,ts=4) FN=78 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=78 Scheduling data message at RTS for DL TFI=0 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) 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 17) -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 -PDCH(bts=0,trx=0,ts=4) FN=82 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=82 Scheduling data message at RTS for DL TFI=0 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) 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 18) -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 -PDCH(bts=0,trx=0,ts=4) FN=86 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=86 Scheduling data message at RTS for DL TFI=0 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) 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-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 PDCH(bts=0,trx=0,ts=4) FN=91 Scheduling data message at RTS for DL TFI=0 prio=5 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 @@ -3814,40 +3779,37 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 20 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 20) -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 -PDCH(bts=0,trx=0,ts=4) FN=95 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because 20 blocks sent. +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 91 + 13 = 104 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=104, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=104, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 20, MCS-1): 0f 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 +PDCH(bts=0,trx=0,ts=4) FN=95 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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 21) -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 -PDCH(bts=0,trx=0,ts=4) FN=99 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +Received RTS for PDCH: TRX=0 TS=4 FN=99 block_nr=11 scheduling free USF for polling at FN=104 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +PDCH(bts=0,trx=0,ts=4) FN=99 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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 22) -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 -PDCH(bts=0,trx=0,ts=4) FN=104 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=104 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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 23) -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 -PDCH(bts=0,trx=0,ts=4) FN=108 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=108 Scheduling data message at RTS for DL TFI=0 prio=3 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 @@ -3858,14 +3820,25 @@ 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 fe 03 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 108 + 13 = 121 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=121, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=121, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 24, MCS-1): 0f 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 Detected FN jump! 8 -> 112 PDCH(bts=0,trx=0,ts=4) Expiring FN=112 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 112) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=121, TS=4 (curr FN 112) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=4) Expiring FN=112 but previous FN=17 is still reserved! +PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=121, TS=4 (curr FN 112) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) +PDCH(bts=0,trx=0,ts=4) Expiring FN=112 but previous FN=104 is still reserved! +PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=104): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=121, TS=4 (curr FN 112) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 2 => 3 (< MAX 8) 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 @@ -3925,12 +3898,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) 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 4 + 13 = 17 +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-2): 0f 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 Detected FN jump! 112 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 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) @@ -3938,180 +3913,145 @@ 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) 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +Received RTS for PDCH: TRX=0 TS=4 FN=13 block_nr=3 scheduling free USF for polling at FN=17 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 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) 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 2) -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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 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) 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 3) -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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 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) 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 4) -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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 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) 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 5) -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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 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) 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 6) -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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 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) 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 9) -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 -PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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 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 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 -PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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 13) -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 -PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=69 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=69 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=73 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=73 Scheduling data message at RTS for DL TFI=0 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) 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 16) -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 -PDCH(bts=0,trx=0,ts=4) FN=78 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=78 Scheduling data message at RTS for DL TFI=0 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) 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 17) -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 -PDCH(bts=0,trx=0,ts=4) FN=82 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=82 Scheduling data message at RTS for DL TFI=0 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) 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 18) -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 -PDCH(bts=0,trx=0,ts=4) FN=86 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=86 Scheduling data message at RTS for DL TFI=0 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 @@ -4122,14 +4062,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 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 86 + 13 = 99 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=99, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=99, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 19, MCS-2): 0f 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 Detected FN jump! 8 -> 91 PDCH(bts=0,trx=0,ts=4) Expiring FN=91 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 91) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=99, TS=4 (curr FN 91) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=4) Expiring FN=91 but previous FN=17 is still reserved! +PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=99, TS=4 (curr FN 91) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) 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 @@ -4189,12 +4136,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) 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 4 + 13 = 17 +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-3): 0f 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 Detected FN jump! 91 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 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) @@ -4202,130 +4151,105 @@ 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) 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +Received RTS for PDCH: TRX=0 TS=4 FN=13 block_nr=3 scheduling free USF for polling at FN=17 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 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) 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 2) -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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 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) 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 3) -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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 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) 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 4) -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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 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) 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 5) -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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 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) 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 6) -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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 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) 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 9) -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 -PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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 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 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 -PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=60 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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 13) -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 -PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=65 Scheduling data message at RTS for DL TFI=0 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 @@ -4336,14 +4260,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 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 65 + 13 = 78 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=78, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=78, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 14, MCS-3): 0f 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 Detected FN jump! 8 -> 69 PDCH(bts=0,trx=0,ts=4) Expiring FN=69 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 69) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=78, TS=4 (curr FN 69) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=4) Expiring FN=69 but previous FN=17 is still reserved! +PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=78, TS=4 (curr FN 69) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) 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 @@ -4403,12 +4334,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) 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 4 + 13 = 17 +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-4): 0f 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 Detected FN jump! 69 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 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) @@ -4416,110 +4349,89 @@ 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) 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +Received RTS for PDCH: TRX=0 TS=4 FN=13 block_nr=3 scheduling free USF for polling at FN=17 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 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) 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 2) -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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 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) 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 3) -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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 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) 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 4) -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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 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) 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 5) -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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 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) 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 6) -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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 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) 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 9) -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 -PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=52 Scheduling data message at RTS for DL TFI=0 prio=3 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) 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 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 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 -PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=56 Scheduling data message at RTS for DL TFI=0 prio=3 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 @@ -4530,14 +4442,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 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 56 + 13 = 69 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=69, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=69, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 12, MCS-4): 0f 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 Detected FN jump! 8 -> 60 PDCH(bts=0,trx=0,ts=4) Expiring FN=60 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 60) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=69, TS=4 (curr FN 60) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=4) Expiring FN=60 but previous FN=17 is still reserved! +PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=69, TS=4 (curr FN 60) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) 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 @@ -4597,12 +4516,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) 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 4 + 13 = 17 +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-5): 0f 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 Detected FN jump! 60 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 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) @@ -4610,90 +4531,73 @@ 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) 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +Received RTS for PDCH: TRX=0 TS=4 FN=13 block_nr=3 scheduling free USF for polling at FN=17 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 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) 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 2) -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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 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) 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 3) -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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 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) 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 4) -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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 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) 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 5) -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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 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) 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 6) -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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=39 Scheduling data message at RTS for DL TFI=0 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) 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-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 -PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=43 Scheduling data message at RTS for DL TFI=0 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) 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 9) -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 -PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=47 Scheduling data message at RTS for DL TFI=0 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 @@ -4704,14 +4608,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 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 47 + 13 = 60 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=60, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=60, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-5): 0f 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 Detected FN jump! 8 -> 52 PDCH(bts=0,trx=0,ts=4) Expiring FN=52 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 52) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=60, TS=4 (curr FN 52) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=4) Expiring FN=52 but previous FN=17 is still reserved! +PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=60, TS=4 (curr FN 52) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) 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 @@ -4771,12 +4682,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) 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 4 + 13 = 17 +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-6): 0f 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 Detected FN jump! 52 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 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) @@ -4784,60 +4697,49 @@ 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) 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +Received RTS for PDCH: TRX=0 TS=4 FN=13 block_nr=3 scheduling free USF for polling at FN=17 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 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) 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 2) -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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 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) 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 3) -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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 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) 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 4) -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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 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) 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 5) -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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 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) 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 6) -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 -PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=34 Scheduling data message at RTS for DL TFI=0 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 @@ -4848,14 +4750,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 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 34 + 13 = 47 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=47, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=47, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 7, MCS-6): 0f 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 Detected FN jump! 8 -> 39 PDCH(bts=0,trx=0,ts=4) Expiring FN=39 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 39) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=47, TS=4 (curr FN 39) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=4) Expiring FN=39 but previous FN=17 is still reserved! +PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=47, TS=4 (curr FN 39) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) 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 @@ -4916,12 +4825,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) 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 4 + 13 = 17 +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-5): 0f 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 Detected FN jump! 39 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 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 @@ -4932,10 +4843,9 @@ 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) 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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +Received RTS for PDCH: TRX=0 TS=4 FN=13 block_nr=3 scheduling free USF for polling at FN=17 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 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 @@ -4945,10 +4855,8 @@ 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 2) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 3) -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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 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 @@ -4958,10 +4866,8 @@ 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 4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 5) -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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 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 @@ -4971,10 +4877,8 @@ 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-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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 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 @@ -4984,10 +4888,8 @@ 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 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 9) -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 -PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=30 Scheduling data message at RTS for DL TFI=0 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 @@ -4999,14 +4901,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 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 30 + 13 = 43 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=43, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=43, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-5): 0f 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 Detected FN jump! 8 -> 34 PDCH(bts=0,trx=0,ts=4) Expiring FN=34 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 34) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=43, TS=4 (curr FN 34) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=4) Expiring FN=34 but previous FN=17 is still reserved! +PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=43, TS=4 (curr FN 34) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) 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 @@ -5068,12 +4977,14 @@ 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 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 4 + 13 = 17 +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-8): 0f 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 Detected FN jump! 34 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 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 @@ -5084,10 +4995,9 @@ 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) 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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +Received RTS for PDCH: TRX=0 TS=4 FN=13 block_nr=3 scheduling free USF for polling at FN=17 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 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 @@ -5097,10 +5007,8 @@ 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 2) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 3) -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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 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 @@ -5110,10 +5018,8 @@ 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 4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 5) -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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 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 @@ -5123,10 +5029,8 @@ 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-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 -PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=26 Scheduling data message at RTS for DL TFI=0 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 @@ -5139,14 +5043,21 @@ 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) 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 26 + 13 = 39 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=39, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=39, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-8): 0f 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 Detected FN jump! 8 -> 30 PDCH(bts=0,trx=0,ts=4) Expiring FN=30 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 30) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=39, TS=4 (curr FN 30) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=4) Expiring FN=30 but previous FN=17 is still reserved! +PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=39, TS=4 (curr FN 30) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) 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 @@ -5207,12 +5118,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) 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 4 + 13 = 17 +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-6): 0f 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 Detected FN jump! 30 -> 8 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) -PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 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 @@ -5223,10 +5136,9 @@ 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) 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 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 -PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +Received RTS for PDCH: TRX=0 TS=4 FN=13 block_nr=3 scheduling free USF for polling at FN=17 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +PDCH(bts=0,trx=0,ts=4) FN=13 Scheduling data message at RTS for DL TFI=0 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 @@ -5236,10 +5148,8 @@ 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 2) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 3) -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 -PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=17 Scheduling data message at RTS for DL TFI=0 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 @@ -5249,10 +5159,8 @@ 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 4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 5) -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 -PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 prio=5 mcs_mode_restrict=EGPRS +PDCH(bts=0,trx=0,ts=4) FN=21 Scheduling data message at RTS for DL TFI=0 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 @@ -5266,14 +5174,21 @@ 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 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 +PDCH(bts=0,trx=0,ts=4) POLL scheduled at FN 21 + 13 = 34 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=34, TS=4) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=34, TS=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-9): 0f 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 Detected FN jump! 8 -> 26 PDCH(bts=0,trx=0,ts=4) Expiring FN=26 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 26) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=34, TS=4 (curr FN 26) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=4) Expiring FN=26 but previous FN=17 is still reserved! +PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=34, TS=4 (curr FN 26) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) 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/+/23527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic4080db684a4626cae90dd574d123081981284ca Gerrit-Change-Number: 23527 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: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:27:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:31 +0000 Subject: Change in osmo-pcu[master]: Remove unneeded poll_state check In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23528 ) Change subject: Remove unneeded poll_state check ...................................................................... Remove unneeded poll_state check The related ul_ass_state already implies polling is ongoing since we are waiting for an ACK to be received from MS. Hence there's no need to check poll_state there. Change-Id: I5e12280a6835407fa452bd4d5df799d2672790ec --- M src/tbf.cpp 1 file changed, 2 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve diff --git a/src/tbf.cpp b/src/tbf.cpp index 8520a1b..4a57375 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -866,8 +866,7 @@ poll_ass_dl = 0; } if (poll_ass_dl) { - if (poll_state == GPRS_RLCMAC_POLL_SCHED && - ul_ass_state == GPRS_RLCMAC_UL_ASS_WAIT_ACK) + if (ul_ass_state == GPRS_RLCMAC_UL_ASS_WAIT_ACK) { LOGPTBF(this, LOGL_DEBUG, "Polling is already scheduled, so we must wait for the uplink assignment...\n"); @@ -997,8 +996,7 @@ unsigned int rrbp; uint32_t new_poll_fn; - if (poll_state == GPRS_RLCMAC_POLL_SCHED && - ul_ass_state == GPRS_RLCMAC_UL_ASS_WAIT_ACK) { + if (ul_ass_state == GPRS_RLCMAC_UL_ASS_WAIT_ACK) { LOGPTBFUL(this, LOGL_DEBUG, "Polling is already scheduled, so we must wait for the uplink assignment...\n"); return NULL; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5e12280a6835407fa452bd4d5df799d2672790ec Gerrit-Change-Number: 23528 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Mon Apr 12 10:27:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:32 +0000 Subject: Change in osmo-pcu[master]: tbf: get rid of poll_state completely In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23529 ) Change subject: tbf: get rid of poll_state completely ...................................................................... tbf: get rid of poll_state completely The poll_state logic was part of previous implementation (prior to pdch ul controller) where the ssumption was that TBF could only had 1 POLL request in transit, which is really not true. With current infrastructure we don't need this state tracking at all. Change-Id: Ie5b807ccd38aa736ae11b3310ca61ad0156ca4d4 --- M src/pdch.cpp M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M tests/tbf/TbfTest.err 5 files changed, 0 insertions(+), 53 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/src/pdch.cpp b/src/pdch.cpp index 22bac0b..0d9ebf2 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -334,7 +334,6 @@ tbf->update_ms(tlli, GPRS_RLCMAC_UL_TBF); LOGPTBF(tbf, LOGL_DEBUG, "RX: [PCU <- BTS] Packet Control Ack\n"); - TBF_POLL_SCHED_UNSET(tbf); pdch_ulc_release_fn(ulc, fn); /* check if this control ack belongs to packet uplink ack */ @@ -721,7 +720,6 @@ LOGPDCH(this, DRLCMAC, LOGL_INFO, "FN=%" PRIu32 " Rx Meas Report " "on RRBP POLL, this probably means a DL/CTRL ACK/NACk will " "need to be polled again later\n", fn); - TBF_POLL_SCHED_UNSET(poll->tbf_poll.poll_tbf); pdch_ulc_release_fn(ulc, fn); break; case PDCH_ULC_NODE_SBA: diff --git a/src/tbf.cpp b/src/tbf.cpp index 4a57375..1dc052a 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -61,12 +61,6 @@ static void tbf_timer_cb(void *_tbf); -const struct value_string gprs_rlcmac_tbf_poll_state_names[] = { - OSMO_VALUE_STRING(GPRS_RLCMAC_POLL_NONE), - OSMO_VALUE_STRING(GPRS_RLCMAC_POLL_SCHED), /* a polling was scheduled */ - { 0, NULL } -}; - const struct value_string gprs_rlcmac_tbf_dl_ass_state_names[] = { OSMO_VALUE_STRING(GPRS_RLCMAC_DL_ASS_NONE), OSMO_VALUE_STRING(GPRS_RLCMAC_DL_ASS_SEND_ASS), @@ -146,7 +140,6 @@ 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_egprs_enabled(false) { /* The classes of these members do not have proper constructors yet. @@ -589,7 +582,6 @@ chan, poll_fn, ts); return; } - poll_state = GPRS_RLCMAC_POLL_SCHED; poll_fn = new_poll_fn; poll_ts = ts; @@ -631,8 +623,6 @@ LOGPTBF(this, LOGL_NOTICE, "poll timeout for FN=%d, TS=%d (curr FN %d)\n", poll_fn, poll_ts, bts_current_frame_number(bts)); - poll_state = GPRS_RLCMAC_POLL_NONE; - if (ul_tbf && ul_tbf->handle_ctrl_ack(reason)) { if (!ul_tbf->ctrl_ack_to_toggle()) { LOGPTBF(this, LOGL_NOTICE, diff --git a/src/tbf.h b/src/tbf.h index 5064216..cb5aac4 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -64,13 +64,6 @@ GPRS_RLCMAC_RELEASING, /* releasing, wait to free TBI/USF */ }; -enum gprs_rlcmac_tbf_poll_state { - GPRS_RLCMAC_POLL_NONE = 0, - GPRS_RLCMAC_POLL_SCHED, /* a polling was scheduled */ -}; - -extern const struct value_string gprs_rlcmac_tbf_poll_state_names[]; - enum gprs_rlcmac_tbf_dl_ass_state { GPRS_RLCMAC_DL_ASS_NONE = 0, GPRS_RLCMAC_DL_ASS_SEND_ASS, /* send downlink assignment on next RTS */ @@ -174,8 +167,6 @@ #define TBF_SET_ASS_STATE_DL(t, st) do { t->set_ass_state_dl(st, __FILE__, __LINE__); } while(0) #define TBF_SET_ASS_STATE_UL(t, st) do { t->set_ass_state_ul(st, __FILE__, __LINE__); } while(0) #define TBF_SET_ACK_STATE(t, st) do { t->set_ack_state(st, __FILE__, __LINE__); } while(0) -#define TBF_POLL_SCHED_SET(t) do { t->poll_sched_set(__FILE__, __LINE__); } while(0) -#define TBF_POLL_SCHED_UNSET(t) do { t->poll_sched_unset(__FILE__, __LINE__); } while(0) #define TBF_SET_ASS_ON(t, fl, chk) do { t->set_assigned_on(fl, chk, __FILE__, __LINE__); } while(0) #define TBF_ASS_TYPE_SET(t, kind) do { t->ass_type_mod(kind, false, __FILE__, __LINE__); } while(0) #define TBF_ASS_TYPE_UNSET(t, kind) do { t->ass_type_mod(kind, true, __FILE__, __LINE__); } while(0) @@ -353,7 +344,6 @@ 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; bool m_egprs_enabled; struct osmo_timer_list Tarr[T_MAX]; uint8_t Narr[N_MAX]; @@ -482,20 +472,6 @@ ul_ack_state = new_state; } -inline void gprs_rlcmac_tbf::poll_sched_set(const char *file, int line) -{ - LOGPSRC(DTBF, LOGL_DEBUG, file, line, "%s changes poll state from %s to GPRS_RLCMAC_POLL_SCHED\n", - tbf_name(this), get_value_string(gprs_rlcmac_tbf_poll_state_names, poll_state)); - poll_state = GPRS_RLCMAC_POLL_SCHED; -} - -inline void gprs_rlcmac_tbf::poll_sched_unset(const char *file, int line) -{ - LOGPSRC(DTBF, LOGL_DEBUG, file, line, "%s changes poll state from %s to GPRS_RLCMAC_POLL_NONE\n", - tbf_name(this), get_value_string(gprs_rlcmac_tbf_poll_state_names, poll_state)); - poll_state = GPRS_RLCMAC_POLL_NONE; -} - inline bool gprs_rlcmac_tbf::check_n_clear(uint8_t state_flag) { if ((state_flags & (1 << state_flag))) { diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index ba5c651..de32a1d 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -781,7 +781,6 @@ /* reset N3105 */ n_reset(N3105); t_stop(T3191, "ACK/NACK received"); - TBF_POLL_SCHED_UNSET(this); return ack_recovered; } diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 6d2c384..dde62a1 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1549,7 +1549,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654283 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654283 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes state from ASSIGN to FLOW @@ -1634,7 +1633,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654283 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654283 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes state from ASSIGN to FLOW @@ -1686,7 +1684,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654288 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654288 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) [UPLINK] DOWNLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) changes DL ASS state from GPRS_RLCMAC_DL_ASS_WAIT_ACK to GPRS_RLCMAC_DL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) changes state from ASSIGN to FLOW @@ -1790,7 +1787,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654361 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654361 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) changes state from ASSIGN to FLOW @@ -1862,7 +1858,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654283 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654283 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes state from ASSIGN to FLOW @@ -1949,7 +1944,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654340 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654340 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes state from ASSIGN to FLOW @@ -2010,7 +2004,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654283 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654283 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes state from ASSIGN to FLOW @@ -2158,7 +2151,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654283 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654283 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes state from ASSIGN to FLOW @@ -2250,7 +2242,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654288 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654288 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) [UPLINK] DOWNLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) changes DL ASS state from GPRS_RLCMAC_DL_ASS_WAIT_ACK to GPRS_RLCMAC_DL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) changes state from ASSIGN to FLOW @@ -2810,7 +2801,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654409 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654409 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) stopping timer T3191 [ACK/NACK received] -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) RX: [PCU <- BTS] Packet Downlink Ack/Nack PDCH(bts=0,trx=0,ts=7) Got GPRS DL ACK bitmap: SSN: 0, BSN 0 to 28 - 1 (28 blocks), "RRRRRRRRRRRRRRRRRRRRRRRRRRRR" TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) downlink acknowledge @@ -2937,7 +2927,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654413 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654413 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) [UPLINK] DOWNLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes DL ASS state from GPRS_RLCMAC_DL_ASS_WAIT_ACK to GPRS_RLCMAC_DL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes state from WAIT RELEASE to RELEASING @@ -3295,7 +3284,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654283 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654283 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes state from ASSIGN to FLOW @@ -3388,7 +3376,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654283 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654283 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes state from ASSIGN to FLOW @@ -5984,7 +5971,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654283 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654283 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes state from ASSIGN to FLOW @@ -6150,7 +6136,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654283 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654283 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes state from ASSIGN to FLOW @@ -6476,7 +6461,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654283 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654283 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes poll state from GPRS_RLCMAC_POLL_SCHED to GPRS_RLCMAC_POLL_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) [DOWNLINK] UPLINK ASSIGNED TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_WAIT_ACK to GPRS_RLCMAC_UL_ASS_NONE TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes state from ASSIGN to FLOW -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie5b807ccd38aa736ae11b3310ca61ad0156ca4d4 Gerrit-Change-Number: 23529 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: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:27:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:32 +0000 Subject: Change in osmo-pcu[master]: Get rid of param 'poll' with constant value In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23530 ) Change subject: Get rid of param 'poll' with constant value ...................................................................... Get rid of param 'poll' with constant value Value 'false' is always passed by all callers of the function, so there's no need to pass it. Furthermore, since it's false, there's no need to access poll_fn since RRBP will always be invalid. Change-Id: Ia48ce2a021865e76e813dedb22aca9c2522c5693 --- M src/bts.cpp M src/bts.h M src/tbf.cpp M src/tbf_dl.cpp M tests/tbf/TbfTest.err 5 files changed, 43 insertions(+), 43 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved laforge: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve diff --git a/src/bts.cpp b/src/bts.cpp index fee36be..0443df6 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -965,7 +965,7 @@ return 0; } -void bts_snd_dl_ass(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf *tbf, bool poll, uint16_t pgroup) +void bts_snd_dl_ass(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf *tbf, uint16_t pgroup) { uint8_t trx_no = tbf->trx->trx_no; uint8_t ts_no = tbf->first_ts; @@ -976,12 +976,12 @@ bitvec_unhex(immediate_assignment, DUMMY_VEC); /* standard '2B'O padding */ /* use request reference that has maximum distance to current time, * so the assignment will not conflict with possible RACH requests. */ - LOGP(DRLCMAC, LOGL_DEBUG, " - TRX=%d (%d) TS=%d TA=%d pollFN=%d\n", - trx_no, tbf->trx->arfcn, ts_no, tbf->ta(), poll ? tbf->poll_fn : -1); + LOGP(DRLCMAC, LOGL_DEBUG, " - TRX=%d (%d) TS=%d TA=%d\n", + trx_no, tbf->trx->arfcn, ts_no, tbf->ta()); plen = Encoding::write_immediate_assignment(&bts->trx[trx_no].pdch[ts_no], tbf, immediate_assignment, true, 125, (tbf->pdch[ts_no]->last_rts_fn + 21216) % GSM_MAX_FN, - tbf->ta(), 7, poll, tbf->poll_fn, + tbf->ta(), 7, false, 0, bts_get_ms_pwr_alpha(bts), bts->pcu->vty.gamma, -1, GSM_L1_BURST_TYPE_ACCESS_0); if (plen >= 0) { diff --git a/src/bts.h b/src/bts.h index ab8a973..a8b4d7b 100644 --- a/src/bts.h +++ b/src/bts.h @@ -273,7 +273,7 @@ struct gprs_rlcmac_dl_tbf *bts_dl_tbf_by_tfi(struct gprs_rlcmac_bts *bts, uint8_t tfi, uint8_t trx, uint8_t ts); struct gprs_rlcmac_ul_tbf *bts_ul_tbf_by_tfi(struct gprs_rlcmac_bts *bts, uint8_t tfi, uint8_t trx, uint8_t ts); -void bts_snd_dl_ass(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf *tbf, bool poll, uint16_t pgroup); +void bts_snd_dl_ass(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf *tbf, uint16_t pgroup); void bts_set_current_frame_number(struct gprs_rlcmac_bts *bts, uint32_t frame_number); void bts_set_current_block_frame_number(struct gprs_rlcmac_bts *bts, int frame_number); diff --git a/src/tbf.cpp b/src/tbf.cpp index 1dc052a..0ea0ceb 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -717,7 +717,7 @@ /* send immediate assignment */ if ((pgroup = imsi2paging_group(imsi())) > 999) LOGPTBF(dl_tbf, LOGL_ERROR, "IMSI to paging group failed! (%s)\n", imsi()); - bts_snd_dl_ass(dl_tbf->bts, dl_tbf, false, pgroup); + bts_snd_dl_ass(dl_tbf->bts, dl_tbf, pgroup); dl_tbf->m_wait_confirm = 1; } } else diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index de32a1d..19415f1 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -616,7 +616,7 @@ /* send immediate assignment */ if ((pgroup = imsi2paging_group(imsi())) > 999) LOGPTBFDL(this, LOGL_ERROR, "IMSI to paging group failed! (%s)\n", imsi()); - bts_snd_dl_ass(bts, this, false, pgroup); + bts_snd_dl_ass(bts, this, pgroup); m_wait_confirm = 1; } } diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index dde62a1..811cfaa 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -555,7 +555,7 @@ TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000000) TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -580,7 +580,7 @@ TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000001) TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -605,7 +605,7 @@ TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000002) TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -630,7 +630,7 @@ TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000003) TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -655,7 +655,7 @@ TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000004) TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -680,7 +680,7 @@ TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000005) TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -705,7 +705,7 @@ TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000006) TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -730,7 +730,7 @@ TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000007) TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -755,7 +755,7 @@ TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000008) TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -780,7 +780,7 @@ TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000009) TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -805,7 +805,7 @@ TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000010) TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -830,7 +830,7 @@ TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000011) TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -855,7 +855,7 @@ TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000012) TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -880,7 +880,7 @@ TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000013) TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -905,7 +905,7 @@ TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000014) TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -930,7 +930,7 @@ TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000015) TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -955,7 +955,7 @@ TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000016) TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -980,7 +980,7 @@ TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000017) TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1005,7 +1005,7 @@ TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000018) TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1030,7 +1030,7 @@ TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000019) TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1055,7 +1055,7 @@ TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000020) TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1080,7 +1080,7 @@ TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000021) TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1105,7 +1105,7 @@ TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000022) TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1130,7 +1130,7 @@ TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000023) TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1155,7 +1155,7 @@ TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000024) TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1180,7 +1180,7 @@ TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000025) TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1205,7 +1205,7 @@ TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000026) TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1230,7 +1230,7 @@ TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000027) TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1255,7 +1255,7 @@ TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000028) TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1280,7 +1280,7 @@ TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000029) TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1305,7 +1305,7 @@ TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000030) TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1330,7 +1330,7 @@ TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000000031) TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=ASSIGN) appending 256 bytes Creating MS object, TLLI = 0xffffffff Modifying MS object, TLLI = 0xffffffff, MS class 0 -> 45 @@ -1368,7 +1368,7 @@ TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000123456) TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) appending 19 bytes Modifying MS object, TLLI = 0xc0123456, TA 220 -> 0 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) appending 19 bytes @@ -1399,7 +1399,7 @@ TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000123456) TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=0 pollFN=-1 + - TRX=0 (0) TS=4 TA=0 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) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Sending new block at BSN 0, CS=CS-1 @@ -1503,7 +1503,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=0011223344) TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=7 TA=7 pollFN=-1 + - TRX=0 (0) TS=7 TA=7 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) appending 4 bytes === end test_tbf_single_phase === === start test_tbf_two_phase === @@ -3153,7 +3153,7 @@ TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001123456789) TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - - TRX=0 (0) TS=4 TA=220 pollFN=-1 + - TRX=0 (0) TS=4 TA=220 TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=ASSIGN) appending 256 bytes === end test_tbf_gprs_egprs === === start test_tbf_ws === -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia48ce2a021865e76e813dedb22aca9c2522c5693 Gerrit-Change-Number: 23530 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:27:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:33 +0000 Subject: Change in osmo-pcu[master]: tbf: Get rid of attribute poll_fn In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23531 ) Change subject: tbf: Get rid of attribute poll_fn ...................................................................... tbf: Get rid of attribute poll_fn That field is not needed anymore, and it works only under the assumption that only 1 poll request can be active at a time per TBF, which is not true. Change-Id: I63a34a702f028b871530fb7caeb13e8ea1cc78ac --- M src/bts.cpp M src/pdch_ul_controller.c M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 7 files changed, 104 insertions(+), 100 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 0443df6..b61c6b4 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -1086,10 +1086,8 @@ /* limit target TA in range 0..63 bits */ ta_target = ta_limit(ta_adj); - LOGP(DL1IF, LOGL_INFO, "PH-DATA-IND is updating TLLI=0x%08x: TA %u -> %u on " - "TRX = %d, TS = %d, FN = %d\n", - tbf->tlli(), tbf->ta(), ta_target, - tbf->trx->trx_no , tbf->poll_ts, tbf->poll_fn); + LOGP(DL1IF, LOGL_INFO, "PH-DATA-IND is updating %s: TA %u -> %u on " + "TRX = %d\n", tbf_name(tbf), tbf->ta(), ta_target, tbf->trx->trx_no); tbf->set_ta(ta_target); } } @@ -1103,10 +1101,8 @@ /* limit target TA in range 0..63 bits */ ta_target = ta_limit(ta); - LOGP(DL1IF, LOGL_INFO, "PH-RA-IND is updating TLLI=0x%08x: TA %u -> %u on " - "TRX = %d, TS = %d, FN = %d\n", - tbf->tlli(), tbf->ta(), ta_target, - tbf->trx->trx_no , tbf->poll_ts, tbf->poll_fn); + LOGP(DL1IF, LOGL_INFO, "PH-RA-IND is updating %s: TA %u -> %u on " + "TRX = %d\n", tbf_name(tbf), tbf->ta(), ta_target, tbf->trx->trx_no); tbf->set_ta(ta_target); } } diff --git a/src/pdch_ul_controller.c b/src/pdch_ul_controller.c index 8fb5582..5911080 100644 --- a/src/pdch_ul_controller.c +++ b/src/pdch_ul_controller.c @@ -318,7 +318,7 @@ LOGPDCH(ulc->pdch, DRLCMAC, LOGL_NOTICE, "Timeout for registered POLL (FN=%u): %s\n", item->fn, tbf_name(item->tbf_poll.poll_tbf)); - tbf_poll_timeout(item->tbf_poll.poll_tbf, item->tbf_poll.reason); + tbf_poll_timeout(item->tbf_poll.poll_tbf, item->fn, item->tbf_poll.reason); break; case PDCH_ULC_NODE_SBA: sba = item->sba.sba; diff --git a/src/tbf.cpp b/src/tbf.cpp index 0ea0ceb..92dede5 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -125,7 +125,6 @@ first_ts(0), first_common_ts(0), control_ts(0xff), - poll_fn(0), poll_ts(0), fT(0), num_fT_exp(0), @@ -579,10 +578,9 @@ /* schedule polling */ if (pdch_ulc_reserve_tbf_poll(trx->pdch[ts].ulc, new_poll_fn, this, reason) < 0) { LOGPTBFDL(this, LOGL_ERROR, "Failed scheduling poll on %s (FN=%d, TS=%d)\n", - chan, poll_fn, ts); + chan, new_poll_fn, ts); return; } - poll_fn = new_poll_fn; poll_ts = ts; switch (reason) { @@ -590,32 +588,32 @@ ul_ass_state = GPRS_RLCMAC_UL_ASS_WAIT_ACK; LOGPTBFDL(this, LOGL_INFO, "Scheduled UL Assignment polling on %s (FN=%d, TS=%d)\n", - chan, poll_fn, poll_ts); + chan, new_poll_fn, poll_ts); break; case PDCH_ULC_POLL_DL_ASS: dl_ass_state = GPRS_RLCMAC_DL_ASS_WAIT_ACK; LOGPTBFDL(this, LOGL_INFO, "Scheduled DL Assignment polling on %s (FN=%d, TS=%d)\n", - chan, poll_fn, poll_ts); + chan, new_poll_fn, poll_ts); break; case PDCH_ULC_POLL_UL_ACK: ul_ack_state = GPRS_RLCMAC_UL_ACK_WAIT_ACK; LOGPTBFUL(this, LOGL_DEBUG, "Scheduled UL Acknowledgement polling on %s (FN=%d, TS=%d)\n", - chan, poll_fn, poll_ts); + chan, new_poll_fn, poll_ts); break; case PDCH_ULC_POLL_DL_ACK: LOGPTBFDL(this, LOGL_DEBUG, "Scheduled DL Acknowledgement polling on %s (FN=%d, TS=%d)\n", - chan, poll_fn, poll_ts); + chan, new_poll_fn, poll_ts); break; case PDCH_ULC_POLL_CELL_CHG_CONTINUE: LOGPTBFDL(this, LOGL_DEBUG, "Scheduled 'Packet Cell Change Continue' polling on %s (FN=%d, TS=%d)\n", - chan, poll_fn, poll_ts); + chan, new_poll_fn, poll_ts); break; } } -void gprs_rlcmac_tbf::poll_timeout(enum pdch_ulc_tbf_poll_reason reason) +void gprs_rlcmac_tbf::poll_timeout(uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason) { uint16_t pgroup; gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(this); @@ -1211,7 +1209,7 @@ return tbf->set_polling(new_poll_fn, ts, t); } -void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, enum pdch_ulc_tbf_poll_reason reason) +void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason) { - tbf->poll_timeout(reason); + tbf->poll_timeout(poll_fn, reason); } diff --git a/src/tbf.h b/src/tbf.h index cb5aac4..b0bec31 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -193,7 +193,7 @@ int tbf_assign_control_ts(struct gprs_rlcmac_tbf *tbf); int tbf_check_polling(const struct gprs_rlcmac_tbf *tbf, uint32_t fn, uint8_t ts, uint32_t *poll_fn, unsigned int *rrbp); void tbf_set_polling(struct gprs_rlcmac_tbf *tbf, uint32_t new_poll_fn, uint8_t ts, enum pdch_ulc_tbf_poll_reason t); -void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, enum pdch_ulc_tbf_poll_reason reason); +void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason); #ifdef __cplusplus } #endif @@ -251,7 +251,7 @@ int check_polling(uint32_t fn, uint8_t ts, uint32_t *poll_fn, unsigned int *rrbp) const; void set_polling(uint32_t poll_fn, uint8_t ts, enum pdch_ulc_tbf_poll_reason reason); - void poll_timeout(enum pdch_ulc_tbf_poll_reason reason); + void poll_timeout(uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason); /** tlli handling */ uint32_t tlli() const; @@ -292,7 +292,6 @@ gprs_llc m_llc; - uint32_t poll_fn; /* frame number to poll */ uint8_t poll_ts; /* TS to poll */ gprs_rlc m_rlc; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 19415f1..c122bba 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -990,11 +990,11 @@ rlc.rrbp = rrbp; rlc.es_p = 1; /* Polling */ - m_last_dl_poll_fn = poll_fn; + m_last_dl_poll_fn = new_poll_fn; LOGPTBFDL(this, LOGL_INFO, "Scheduled Ack/Nack polling on FN=%d, TS=%d\n", - poll_fn, poll_ts); + new_poll_fn, poll_ts); } } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 46667b4..8fbdde6 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -651,11 +651,26 @@ send_ul_mac_block_buf(bts, pdch, fn, &buf[0], num_bytes); } + +static uint32_t get_poll_fn(struct gprs_rlcmac_tbf *tbf, uint8_t poll_ts) +{ + struct gprs_rlcmac_pdch *pdch = &tbf->trx->pdch[poll_ts]; + struct pdch_ulc *ulc = pdch->ulc; + struct rb_node *node; + struct pdch_ulc_node *item; + + for (node = rb_first(&ulc->tree_root); node; node = rb_next(node)) { + item = container_of(node, struct pdch_ulc_node, node); + if (item->type == PDCH_ULC_NODE_TBF_POLL && item->tbf_poll.poll_tbf == tbf) + return item->fn; + } + OSMO_ASSERT(0); +} + static void send_control_ack(gprs_rlcmac_tbf *tbf) { RlcMacUplink_t ulreq = {0}; - OSMO_ASSERT(tbf->poll_fn != 0); OSMO_ASSERT(tbf->is_control_ts(tbf->poll_ts)); ulreq.u.MESSAGE_TYPE = MT_PACKET_CONTROL_ACK; @@ -665,7 +680,7 @@ ctrl_ack->PayloadType = GPRS_RLCMAC_CONTROL_BLOCK; ctrl_ack->TLLI = tbf->tlli(); send_ul_mac_block(tbf->bts, tbf->trx->trx_no, tbf->poll_ts, - &ulreq, tbf->poll_fn); + &ulreq, get_poll_fn(tbf, tbf->poll_ts)); } static void send_empty_block(gprs_rlcmac_tbf *tbf, unsigned ts_no, unsigned fn) @@ -1924,7 +1939,7 @@ dl_tbf = ms_dl_tbf(ms1); OSMO_ASSERT(dl_tbf); - fn = dl_tbf->poll_fn; + fn = get_poll_fn(dl_tbf, dl_tbf->poll_ts); send_empty_block(dl_tbf, dl_tbf->poll_ts, fn); fn = fn_add_blocks(fn, 1); @@ -2149,7 +2164,7 @@ ack->DOWNLINK_TFI = dl_tbf1->tfi(); ack->Ack_Nack_Description.FINAL_ACK_INDICATION = 1; - send_ul_mac_block(bts, 0, dl_tbf1->poll_ts, &ulreq, dl_tbf1->poll_fn); + send_ul_mac_block(bts, 0, dl_tbf1->poll_ts, &ulreq, get_poll_fn(dl_tbf1, dl_tbf1->poll_ts)); OSMO_ASSERT(dl_tbf1->state_is(GPRS_RLCMAC_WAIT_RELEASE)); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 811cfaa..b190c9a 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -2797,9 +2797,9 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes -Detected FN jump! 2654288 -> 2654409 -PDCH(bts=0,trx=0,ts=7) FN=2654409 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ -PDCH(bts=0,trx=0,ts=7) FN=2654409 ------------------------- RX : Uplink Control Block ------------------------- +Detected FN jump! 2654288 -> 2654379 +PDCH(bts=0,trx=0,ts=7) FN=2654379 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=2654379 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) stopping timer T3191 [ACK/NACK received] TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) RX: [PCU <- BTS] Packet Downlink Ack/Nack PDCH(bts=0,trx=0,ts=7) Got GPRS DL ACK bitmap: SSN: 0, BSN 0 to 28 - 1 (28 blocks), "RRRRRRRRRRRRRRRRRRRRRRRRRRRR" @@ -2809,7 +2809,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) V(B): (V(A)=28)""(V(S)-1=27) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received. TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) changes state from FINISHED to WAIT RELEASE -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654409 +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654379 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) ********** DL-TBF starts here ********** MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Allocating DL TBF [DL] algo A (suggested TRX: 0): Alloc start @@ -2830,79 +2830,94 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes DL ASS state from GPRS_RLCMAC_DL_ASS_NONE to GPRS_RLCMAC_DL_ASS_SEND_ASS TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) set ass. type PACCH [prev CCCH:0, PACCH:0] -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=2654409 -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654283 is still reserved! +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=2654379 +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654283 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654283): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 1 => 2 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654288 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654288 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654288): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 2 => 3 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654292 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654292 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654292): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 3 => 4 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654296 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654296 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654296): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 4 => 5 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654301 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654301 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654301): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 5 => 6 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654305 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654305 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654305): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 6 => 7 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654309 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654309 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654309): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 7 => 8 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654314 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654314 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654314): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 8 => 9 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654318 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654318 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654318): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 exceeded MAX (10) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) changes state from FLOW to RELEASING -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654322 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654322 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654322): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 10 => 11 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654327 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654327 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654327): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 11 => 12 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654331 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654331 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654331): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 12 => 13 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654335 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654335 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654335): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 13 => 14 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654340 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654340 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654340): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 14 => 15 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654344 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654344 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654344): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 15 => 16 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654348 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654348 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654348): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 16 => 17 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654353 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654353 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654353): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 17 => 18 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654357 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654357 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654357): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 18 => 19 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654361 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654361 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654361): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 19 => 20 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654366 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654366 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654366): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 20 => 21 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654370 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654370 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654370): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 21 => 22 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654374 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654374 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654374): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 22 => 23 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654379 is still reserved! -PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654379): TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) poll timeout for FN=2654409, TS=7 (curr FN 2654409) -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|Downlink ACK was received| -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413 +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Downlink Assignment ------------------------- +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) +Detected FN jump! 2654379 -> 2654409 +PDCH(bts=0,trx=0,ts=7) FN=2654409 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=2654409 ------------------------- RX : Uplink Control Block ------------------------- +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) RX: [PCU <- BTS] Packet Control Ack +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) [UPLINK] DOWNLINK ASSIGNED +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes DL ASS state from GPRS_RLCMAC_DL_ASS_WAIT_ACK to GPRS_RLCMAC_DL_ASS_NONE +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes state from WAIT RELEASE to RELEASING +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) free +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) stopping timer T3193 [freeing TBF] +PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING), 1 TBFs, USFs = 01, TFIs = 00000002. +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) +********** DL-TBF ends here ********** +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) changes state from ASSIGN to FLOW +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) stopping timer T0 [control acked (DL-TBF)] PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654383 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654383): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 23 => 24 (< MAX 10) @@ -2918,25 +2933,6 @@ PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654400 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654400): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 27 => 28 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) -+++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ -------------------------- TX : Packet Downlink Assignment ------------------------- -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7) -PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) -PDCH(bts=0,trx=0,ts=7) FN=2654413 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ -PDCH(bts=0,trx=0,ts=7) FN=2654413 ------------------------- RX : Uplink Control Block ------------------------- -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) [UPLINK] DOWNLINK ASSIGNED -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes DL ASS state from GPRS_RLCMAC_DL_ASS_WAIT_ACK to GPRS_RLCMAC_DL_ASS_NONE -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes state from WAIT RELEASE to RELEASING -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) free -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) stopping timer T3193 [freeing TBF] -PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING), 1 TBFs, USFs = 01, TFIs = 00000002. -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) -********** DL-TBF ends here ********** -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) changes state from ASSIGN to FLOW -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) stopping timer T0 [control acked (DL-TBF)] Received RTS on disabled PDCH: TRX=0 TS=0 Received RTS on disabled PDCH: TRX=0 TS=1 Received RTS on disabled PDCH: TRX=0 TS=2 @@ -3125,7 +3121,7 @@ TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654448 + 13 = 2654461 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled DL Acknowledgement polling on PACCH (FN=2654461, TS=7) -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654413 +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654409 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled Ack/Nack polling on FN=2654461, TS=7 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 10, CS-1): 0f 03 14 4d 43 20 50 41 43 4b 45 54 20 30 39 20 28 54 42 46 20 32 29 === end test_tbf_dl_reuse === @@ -3814,17 +3810,17 @@ Detected FN jump! 8 -> 112 PDCH(bts=0,trx=0,ts=4) Expiring FN=112 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=121, TS=4 (curr FN 112) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 112) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=112 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=121, TS=4 (curr FN 112) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 112) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=112 but previous FN=104 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=104): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=121, TS=4 (curr FN 112) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=104, TS=4 (curr FN 112) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 2 => 3 (< MAX 8) 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. @@ -4056,12 +4052,12 @@ Detected FN jump! 8 -> 91 PDCH(bts=0,trx=0,ts=4) Expiring FN=91 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=99, TS=4 (curr FN 91) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 91) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=91 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=99, TS=4 (curr FN 91) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 91) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -4254,12 +4250,12 @@ Detected FN jump! 8 -> 69 PDCH(bts=0,trx=0,ts=4) Expiring FN=69 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=78, TS=4 (curr FN 69) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 69) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=69 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=78, TS=4 (curr FN 69) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 69) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -4436,12 +4432,12 @@ Detected FN jump! 8 -> 60 PDCH(bts=0,trx=0,ts=4) Expiring FN=60 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=69, TS=4 (curr FN 60) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 60) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=60 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=69, TS=4 (curr FN 60) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 60) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -4602,12 +4598,12 @@ Detected FN jump! 8 -> 52 PDCH(bts=0,trx=0,ts=4) Expiring FN=52 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=60, TS=4 (curr FN 52) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 52) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=52 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=60, TS=4 (curr FN 52) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 52) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -4744,12 +4740,12 @@ Detected FN jump! 8 -> 39 PDCH(bts=0,trx=0,ts=4) Expiring FN=39 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=47, TS=4 (curr FN 39) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 39) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=39 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=47, TS=4 (curr FN 39) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 39) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -4895,12 +4891,12 @@ Detected FN jump! 8 -> 34 PDCH(bts=0,trx=0,ts=4) Expiring FN=34 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=43, TS=4 (curr FN 34) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 34) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=34 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=43, TS=4 (curr FN 34) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 34) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -5037,12 +5033,12 @@ Detected FN jump! 8 -> 30 PDCH(bts=0,trx=0,ts=4) Expiring FN=30 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=39, TS=4 (curr FN 30) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 30) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=30 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=39, TS=4 (curr FN 30) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 30) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -5168,12 +5164,12 @@ Detected FN jump! 8 -> 26 PDCH(bts=0,trx=0,ts=4) Expiring FN=26 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=34, TS=4 (curr FN 26) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 26) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=26 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=34, TS=4 (curr FN 26) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 26) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I63a34a702f028b871530fb7caeb13e8ea1cc78ac Gerrit-Change-Number: 23531 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: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:27:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 10:27:35 +0000 Subject: Change in osmo-pcu[master]: tbf: Get rid of attribute poll_ts In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23532 ) Change subject: tbf: Get rid of attribute poll_ts ...................................................................... tbf: Get rid of attribute poll_ts That field is not needed anymore, and it works only under the assumption that only 1 poll request can be active at a time per TBF, which is not true. Change-Id: I9b8bed7741d385bab4cd8c64b841a78a02a05fe1 --- M src/pdch_ul_controller.c M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M tests/tbf/TbfTest.cpp 5 files changed, 22 insertions(+), 29 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/pdch_ul_controller.c b/src/pdch_ul_controller.c index 5911080..f8089ff 100644 --- a/src/pdch_ul_controller.c +++ b/src/pdch_ul_controller.c @@ -318,7 +318,7 @@ LOGPDCH(ulc->pdch, DRLCMAC, LOGL_NOTICE, "Timeout for registered POLL (FN=%u): %s\n", item->fn, tbf_name(item->tbf_poll.poll_tbf)); - tbf_poll_timeout(item->tbf_poll.poll_tbf, item->fn, item->tbf_poll.reason); + tbf_poll_timeout(item->tbf_poll.poll_tbf, ulc->pdch, item->fn, item->tbf_poll.reason); break; case PDCH_ULC_NODE_SBA: sba = item->sba.sba; diff --git a/src/tbf.cpp b/src/tbf.cpp index 92dede5..69c35f8 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -125,7 +125,6 @@ first_ts(0), first_common_ts(0), control_ts(0xff), - poll_ts(0), fT(0), num_fT_exp(0), was_releasing(0), @@ -581,45 +580,44 @@ chan, new_poll_fn, ts); return; } - poll_ts = ts; switch (reason) { case PDCH_ULC_POLL_UL_ASS: ul_ass_state = GPRS_RLCMAC_UL_ASS_WAIT_ACK; LOGPTBFDL(this, LOGL_INFO, "Scheduled UL Assignment polling on %s (FN=%d, TS=%d)\n", - chan, new_poll_fn, poll_ts); + chan, new_poll_fn, ts); break; case PDCH_ULC_POLL_DL_ASS: dl_ass_state = GPRS_RLCMAC_DL_ASS_WAIT_ACK; LOGPTBFDL(this, LOGL_INFO, "Scheduled DL Assignment polling on %s (FN=%d, TS=%d)\n", - chan, new_poll_fn, poll_ts); + chan, new_poll_fn, ts); break; case PDCH_ULC_POLL_UL_ACK: ul_ack_state = GPRS_RLCMAC_UL_ACK_WAIT_ACK; LOGPTBFUL(this, LOGL_DEBUG, "Scheduled UL Acknowledgement polling on %s (FN=%d, TS=%d)\n", - chan, new_poll_fn, poll_ts); + chan, new_poll_fn, ts); break; case PDCH_ULC_POLL_DL_ACK: LOGPTBFDL(this, LOGL_DEBUG, "Scheduled DL Acknowledgement polling on %s (FN=%d, TS=%d)\n", - chan, new_poll_fn, poll_ts); + chan, new_poll_fn, ts); break; case PDCH_ULC_POLL_CELL_CHG_CONTINUE: LOGPTBFDL(this, LOGL_DEBUG, "Scheduled 'Packet Cell Change Continue' polling on %s (FN=%d, TS=%d)\n", - chan, new_poll_fn, poll_ts); + chan, new_poll_fn, ts); break; } } -void gprs_rlcmac_tbf::poll_timeout(uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason) +void gprs_rlcmac_tbf::poll_timeout(struct gprs_rlcmac_pdch *pdch, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason) { uint16_t pgroup; gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(this); LOGPTBF(this, LOGL_NOTICE, "poll timeout for FN=%d, TS=%d (curr FN %d)\n", - poll_fn, poll_ts, bts_current_frame_number(bts)); + poll_fn, pdch->ts_no, bts_current_frame_number(bts)); if (ul_tbf && ul_tbf->handle_ctrl_ack(reason)) { if (!ul_tbf->ctrl_ack_to_toggle()) { @@ -679,7 +677,7 @@ /* reschedule DL assignment */ dl_ass_state = GPRS_RLCMAC_DL_ASS_SEND_ASS; } else if (m_ms->nacc && m_ms->nacc->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && - m_ms->nacc->continue_poll_fn == poll_fn && m_ms->nacc->continue_poll_ts == poll_ts) { + m_ms->nacc->continue_poll_fn == poll_fn && m_ms->nacc->continue_poll_ts == pdch->ts_no) { /* Timeout waiting for CTRL ACK acking Pkt Cell Change Continue */ osmo_fsm_inst_dispatch(m_ms->nacc->fi, NACC_EV_TIMEOUT_CELL_CHG_CONTINUE, NULL); return; @@ -1209,7 +1207,7 @@ return tbf->set_polling(new_poll_fn, ts, t); } -void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason) +void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, struct gprs_rlcmac_pdch *pdch, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason) { - tbf->poll_timeout(poll_fn, reason); + tbf->poll_timeout(pdch, poll_fn, reason); } diff --git a/src/tbf.h b/src/tbf.h index b0bec31..ca6de0f 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -193,7 +193,7 @@ int tbf_assign_control_ts(struct gprs_rlcmac_tbf *tbf); int tbf_check_polling(const struct gprs_rlcmac_tbf *tbf, uint32_t fn, uint8_t ts, uint32_t *poll_fn, unsigned int *rrbp); void tbf_set_polling(struct gprs_rlcmac_tbf *tbf, uint32_t new_poll_fn, uint8_t ts, enum pdch_ulc_tbf_poll_reason t); -void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason); +void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, struct gprs_rlcmac_pdch *pdch, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason); #ifdef __cplusplus } #endif @@ -251,7 +251,7 @@ int check_polling(uint32_t fn, uint8_t ts, uint32_t *poll_fn, unsigned int *rrbp) const; void set_polling(uint32_t poll_fn, uint8_t ts, enum pdch_ulc_tbf_poll_reason reason); - void poll_timeout(uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason); + void poll_timeout(struct gprs_rlcmac_pdch *pdch, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason); /** tlli handling */ uint32_t tlli() const; @@ -291,9 +291,6 @@ struct gprs_rlcmac_pdch *pdch[8]; /* list of PDCHs allocated to TBF */ gprs_llc m_llc; - - uint8_t poll_ts; /* TS to poll */ - gprs_rlc m_rlc; unsigned int fT; /* fTxxxx number */ diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index c122bba..dd5d0f2 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -994,7 +994,7 @@ LOGPTBFDL(this, LOGL_INFO, "Scheduled Ack/Nack polling on FN=%d, TS=%d\n", - new_poll_fn, poll_ts); + new_poll_fn, ts); } } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 8fbdde6..5ce2611 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -671,16 +671,14 @@ { RlcMacUplink_t ulreq = {0}; - OSMO_ASSERT(tbf->is_control_ts(tbf->poll_ts)); - ulreq.u.MESSAGE_TYPE = MT_PACKET_CONTROL_ACK; Packet_Control_Acknowledgement_t *ctrl_ack = &ulreq.u.Packet_Control_Acknowledgement; ctrl_ack->PayloadType = GPRS_RLCMAC_CONTROL_BLOCK; ctrl_ack->TLLI = tbf->tlli(); - send_ul_mac_block(tbf->bts, tbf->trx->trx_no, tbf->poll_ts, - &ulreq, get_poll_fn(tbf, tbf->poll_ts)); + send_ul_mac_block(tbf->bts, tbf->trx->trx_no, tbf->control_ts, + &ulreq, get_poll_fn(tbf, tbf->control_ts)); } static void send_empty_block(gprs_rlcmac_tbf *tbf, unsigned ts_no, unsigned fn) @@ -1939,8 +1937,8 @@ dl_tbf = ms_dl_tbf(ms1); OSMO_ASSERT(dl_tbf); - fn = get_poll_fn(dl_tbf, dl_tbf->poll_ts); - send_empty_block(dl_tbf, dl_tbf->poll_ts, fn); + fn = get_poll_fn(dl_tbf, dl_tbf->control_ts); + send_empty_block(dl_tbf, dl_tbf->control_ts, fn); fn = fn_add_blocks(fn, 1); /* Now establish a new TBF for the RA UPDATE COMPLETE (new TLLI) */ @@ -2164,7 +2162,7 @@ ack->DOWNLINK_TFI = dl_tbf1->tfi(); ack->Ack_Nack_Description.FINAL_ACK_INDICATION = 1; - send_ul_mac_block(bts, 0, dl_tbf1->poll_ts, &ulreq, get_poll_fn(dl_tbf1, dl_tbf1->poll_ts)); + send_ul_mac_block(bts, 0, dl_tbf1->control_ts, &ulreq, get_poll_fn(dl_tbf1, dl_tbf1->control_ts)); OSMO_ASSERT(dl_tbf1->state_is(GPRS_RLCMAC_WAIT_RELEASE)); @@ -2713,7 +2711,7 @@ /* Request to send one RLC/MAC block */ request_dl_rlc_block(dl_tbf, &fn); } - send_empty_block(dl_tbf, dl_tbf->poll_ts, fn); + send_empty_block(dl_tbf, dl_tbf->control_ts, fn); /* Schedule a large LLC frame */ dl_tbf->append_data(1000, test_data, sizeof(test_data)); @@ -2725,7 +2723,7 @@ /* Request to send one RLC/MAC block */ request_dl_rlc_block(dl_tbf, &fn); } - send_empty_block(dl_tbf, dl_tbf->poll_ts, fn); + send_empty_block(dl_tbf, dl_tbf->control_ts, fn); OSMO_ASSERT(dl_tbf->state_is(GPRS_RLCMAC_FLOW)); @@ -3069,7 +3067,7 @@ MAKE_ACKED(msg, dl_tbf, fn, mcs, true); } /* Clean up pending items in UL controller: */ - send_empty_block(dl_tbf, dl_tbf->poll_ts, fn+50); + send_empty_block(dl_tbf, dl_tbf->control_ts, fn+50); tbf_cleanup(dl_tbf); } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9b8bed7741d385bab4cd8c64b841a78a02a05fe1 Gerrit-Change-Number: 23532 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: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:34:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 10:34:04 +0000 Subject: Change in osmo-gbproxy[for-0.1]: gbproxy_main: Add ctrl vty commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23724 ) Change subject: gbproxy_main: Add ctrl vty commands ...................................................................... gbproxy_main: Add ctrl vty commands osmo-gbproxy already provides a ctrl interface, we should be able to change ctrl-related configuration. Change-Id: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 --- M src/gb_proxy_main.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb_proxy_main.c b/src/gb_proxy_main.c index 6bd8bd8..3b5a1a8 100644 --- a/src/gb_proxy_main.c +++ b/src/gb_proxy_main.c @@ -280,6 +280,7 @@ vty_info.copyright = openbsc_copyright; vty_init(&vty_info); + ctrl_vty_init(tall_sgsn_ctx); logging_vty_add_cmds(); osmo_talloc_vty_add_cmds(); osmo_stats_vty_add_cmds(); -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: for-0.1 Gerrit-Change-Id: I3f3aa46aa032c1bd0ec88163bb89701d2250f414 Gerrit-Change-Number: 23724 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 Mon Apr 12 10:34:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 10:34:04 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gbproxy=5Bfor-0=2E1=5D=3A_Bump_version=3A_0=2E1=2E0=2E1-e64c_=E2=86=92_0=2E1=2E1?= In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23725 ) Change subject: Bump version: 0.1.0.1-e64c ? 0.1.1 ...................................................................... Bump version: 0.1.0.1-e64c ? 0.1.1 Change-Id: I49b111c6949b89b9bc6c379ff125c3921b2c853a --- M debian/changelog 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/changelog b/debian/changelog index c6702cd..580125d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +osmo-gbproxy (1:0.1.1) unstable; urgency=medium + + [ Daniel Willmann ] + * gbproxy_main: Add ctrl vty commands + + -- Harald Welte Mon, 12 Apr 2021 12:26:01 +0200 + osmo-gbproxy (1:0.1.0) unstable; urgency=medium [ Philipp Maier ] -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: for-0.1 Gerrit-Change-Id: I49b111c6949b89b9bc6c379ff125c3921b2c853a Gerrit-Change-Number: 23725 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 Mon Apr 12 10:46:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 12 Apr 2021 10:46:36 +0000 Subject: Change in osmo-bsc[master]: drop unused func decl rsl_lchan_mark_broken() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23726 ) Change subject: drop unused func decl rsl_lchan_mark_broken() ...................................................................... drop unused func decl rsl_lchan_mark_broken() Change-Id: Ib08e69720e2b9a6ea5f5b5d13baa9920c415f078 --- M include/osmocom/bsc/abis_rsl.h 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/26/23726/1 diff --git a/include/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h index 58eca29..158f7fb 100644 --- a/include/osmocom/bsc/abis_rsl.h +++ b/include/osmocom/bsc/abis_rsl.h @@ -80,8 +80,6 @@ int rsl_release_request(struct gsm_lchan *lchan, uint8_t link_id, enum rsl_rel_mode release_mode); -int rsl_lchan_mark_broken(struct gsm_lchan *lchan, const char *broken); - /* to be provided by external code */ int rsl_deact_sacch(struct gsm_lchan *lchan); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib08e69720e2b9a6ea5f5b5d13baa9920c415f078 Gerrit-Change-Number: 23726 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:46:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 12 Apr 2021 10:46:36 +0000 Subject: Change in osmo-bsc[master]: drop unused gsm_bts_trx->description References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23727 ) Change subject: drop unused gsm_bts_trx->description ...................................................................... drop unused gsm_bts_trx->description Change-Id: I3c0778322b8c630b0eb9d9cd3ac3cc71386c9c12 --- M include/osmocom/bsc/bts_trx.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/osmo_bsc_main.c 3 files changed, 0 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/27/23727/1 diff --git a/include/osmocom/bsc/bts_trx.h b/include/osmocom/bsc/bts_trx.h index 7c8ef52..e42e1e4 100644 --- a/include/osmocom/bsc/bts_trx.h +++ b/include/osmocom/bsc/bts_trx.h @@ -31,8 +31,6 @@ struct gsm_bts *bts; /* number of this TRX in the BTS */ uint8_t nr; - /* human readable name / description */ - char *description; /* how do we talk RSL with this TRX? */ struct gsm_e1_subslot rsl_e1_link; uint8_t rsl_tei; diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 6a6411f..8ed9f0c 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -726,9 +726,6 @@ int i; vty_out(vty, " trx %u%s", trx->nr, VTY_NEWLINE); - if (trx->description) - vty_out(vty, " description %s%s", trx->description, - VTY_NEWLINE); vty_out(vty, " rf_locked %u%s", trx->mo.force_rf_lock ? 1 : 0, VTY_NEWLINE); @@ -983,8 +980,6 @@ vty_out(vty, " bts %u%s", bts->nr, VTY_NEWLINE); vty_out(vty, " type %s%s", btstype2str(bts->type), VTY_NEWLINE); - if (bts->description) - vty_out(vty, " description %s%s", bts->description, VTY_NEWLINE); vty_out(vty, " band %s%s", gsm_band_name(bts->band), VTY_NEWLINE); vty_out(vty, " cell_identity %u%s", bts->cell_identity, VTY_NEWLINE); vty_out(vty, " location_area_code %u%s", bts->location_area_code, @@ -1335,8 +1330,6 @@ vty_out(vty, "TRX %u of BTS %u is on ARFCN %u%s", trx->nr, trx->bts->nr, trx->arfcn, VTY_NEWLINE); - vty_out(vty, "Description: %s%s", - trx->description ? trx->description : "(null)", VTY_NEWLINE); vty_out(vty, " RF Nominal Power: %d dBm, reduced by %u dB, " "resulting BS power: %d dBm%s", trx->nominal_power, trx->max_power_red, @@ -5308,7 +5301,6 @@ return CMD_WARNING; vty->index = trx; - vty->index_sub = &trx->description; vty->node = TRX_NODE; return CMD_SUCCESS; diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 6c7c275..595fcad 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -611,7 +611,6 @@ /* set vty->index correctly ! */ struct gsm_bts_trx_ts *ts = vty->index; vty->index = ts->trx; - vty->index_sub = &ts->trx->description; } break; case OML_NODE: -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3c0778322b8c630b0eb9d9cd3ac3cc71386c9c12 Gerrit-Change-Number: 23727 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:46:37 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 12 Apr 2021 10:46:37 +0000 Subject: Change in osmo-bsc[master]: deprecation: use osmo_bts_features_names() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23728 ) Change subject: deprecation: use osmo_bts_features_names() ...................................................................... deprecation: use osmo_bts_features_names() Instead of the feature description, use the short feature name, which better matches the message "reported feature '%s'..." Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d --- M src/osmo-bsc/abis_nm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/28/23728/1 diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 3eab14e..ba1075a 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -607,7 +607,7 @@ if (!Frep && Fexp) { LOGPMO(&bts->mo, DNM, LOGL_NOTICE, "Get Attributes Response: " "reported feature '%s' is not supported, while we thought it is.\n", - osmo_bts_feature_name(i)); + osmo_bts_features_name(i)); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d Gerrit-Change-Number: 23728 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:51:37 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Mon, 12 Apr 2021 10:51:37 +0000 Subject: Change in pysim[master]: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py 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/+/23723 to look at the new patch set (#2). Change subject: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py ...................................................................... Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py Also serves as example for RFU (reserved for future use) fields which should not always be reset to zero in case they have been set on the uSIM for some reason. See pySim/ts_51_011.py, class EF_AD. * Add definitions for RFU {Flag, Bits, Byte, Bytes} * Use IntEnum for OP_MODE (convenient auto completion) * Remove obsolete definitions and imports * Update test results for all SIMs (opmode strings are shortened) Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 --- M pySim-prog.py M pySim-read.py M pySim-shell.py M pySim/cards.py M pySim/construct.py M pySim/ts_51_011.py M pysim-testdata/Fairwaves-SIM.ok M pysim-testdata/Wavemobile-SIM.ok M pysim-testdata/fakemagicsim.ok M pysim-testdata/sysmoISIM-SJA2.ok M pysim-testdata/sysmoUSIM-SJS1.ok M pysim-testdata/sysmosim-gr1.ok 12 files changed, 81 insertions(+), 57 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/23/23723/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 Gerrit-Change-Number: 23723 Gerrit-PatchSet: 2 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 10:55:28 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Mon, 12 Apr 2021 10:55:28 +0000 Subject: Change in pysim[master]: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py In-Reply-To: References: Message-ID: Falkenber9 has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23723 ) Change subject: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py ...................................................................... Patch Set 2: It seems that ``EF_AD`` has only 3 Bytes in ``sysmosim-gr1`` and ``fakemagicsim`` although it should be 4 Bytes? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 Gerrit-Change-Number: 23723 Gerrit-PatchSet: 2 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 10:55:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 11:06:33 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Mon, 12 Apr 2021 11:06:33 +0000 Subject: Change in pysim[master]: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py In-Reply-To: References: Message-ID: Falkenber9 has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23723 ) Change subject: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py ...................................................................... Patch Set 2: > Patch Set 2: > > It seems that ``EF_AD`` has only 3 Bytes in ``sysmosim-gr1`` and ``fakemagicsim`` although it should be 4 Bytes? I see, only first three bytes are mandatory (M). Further bytes are optional (O) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 Gerrit-Change-Number: 23723 Gerrit-PatchSet: 2 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 11:06: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 Apr 12 11:21:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 11:21:57 +0000 Subject: Change in osmo-bsc[master]: drop unused func decl rsl_lchan_mark_broken() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23726 ) Change subject: drop unused func decl rsl_lchan_mark_broken() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib08e69720e2b9a6ea5f5b5d13baa9920c415f078 Gerrit-Change-Number: 23726 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 11:21: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 Apr 12 11:22:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 11:22:27 +0000 Subject: Change in osmo-bsc[master]: drop unused gsm_bts_trx->description In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23727 ) Change subject: drop unused gsm_bts_trx->description ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3c0778322b8c630b0eb9d9cd3ac3cc71386c9c12 Gerrit-Change-Number: 23727 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 11:22: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 Apr 12 11:22:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 11:22:45 +0000 Subject: Change in osmo-bsc[master]: deprecation: use osmo_bts_features_names() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23728 ) Change subject: deprecation: use osmo_bts_features_names() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d Gerrit-Change-Number: 23728 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 11: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 Mon Apr 12 11:23:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 11:23:34 +0000 Subject: Change in osmo-bsc[master]: deprecation: use osmo_bts_features_names() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23728 ) Change subject: deprecation: use osmo_bts_features_names() ...................................................................... Patch Set 1: This probably means osmo-bts requires a new libosmocore not yet released. Please add an entry to TODO-RELEASE file. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d Gerrit-Change-Number: 23728 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 11:23: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 Mon Apr 12 11:48:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 11:48:32 +0000 Subject: Change in osmo-gsm-tester[master]: open5gs: Avoid use of non-standard ports References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/23729 ) Change subject: open5gs: Avoid use of non-standard ports ...................................................................... open5gs: Avoid use of non-standard ports Despite open5gs allowing to change the GTP ports in the config file, in reality changing those values to something else than the standard prot will fail. Hence, we must use the standard port. As a result, we must use different IP addresses in each process to avoid ip+port collisions. Let's use some loopback addresses which shouldn't require extra configuration on the host, and still only requiring 1 run_node as per existing EPCs, with the limitation that only 1 open5gs EPC instance can be run at one in a given run_node. Related: https://github.com/open5gs/open5gs/issues/897 Change-Id: Id3062c6ad9d6de4c6066547e1e46edad5da285c1 --- M src/osmo_gsm_tester/obj/epc_open5gs.py M src/osmo_gsm_tester/templates/open5gs-mmed.yaml.tmpl M src/osmo_gsm_tester/templates/open5gs-sgwcd.yaml.tmpl M src/osmo_gsm_tester/templates/open5gs-sgwud.yaml.tmpl M src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl M src/osmo_gsm_tester/templates/open5gs-upfd.yaml.tmpl 6 files changed, 70 insertions(+), 51 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/29/23729/1 diff --git a/src/osmo_gsm_tester/obj/epc_open5gs.py b/src/osmo_gsm_tester/obj/epc_open5gs.py index 15f4eab..feff901 100644 --- a/src/osmo_gsm_tester/obj/epc_open5gs.py +++ b/src/osmo_gsm_tester/obj/epc_open5gs.py @@ -39,7 +39,9 @@ schema.register_config_schema('epc', config_schema) class Open5gsEPC(epc.EPC): - +############## +# PROTECTED +############## REMOTE_DIR = '/osmo-gsm-tester-open5gs' def __init__(self, testenv, run_node): @@ -54,6 +56,43 @@ self.sgwu = None self.subscriber_list = [] + def configure(self): + values = super().configure(['open5gsepc']) + db_host = values['epc']['db_host'] + db_uri = 'mongodb://'+db_host+'/open5gs' + config.overlay(values, dict(epc=dict(db_uri=db_uri, + tun_addr=self.tun_addr(), + addr_smf=self.priv_addr_smf(), + addr_upf=self.priv_addr_upf(), + addr_sgwc=self.priv_addr_sgwc(), + addr_sgwu=self.priv_addr_sgwu(), + ))) + self.fill_subscribers_mongodb(values['epc']['db_host'], 27017) + self.pcrf = Open5gsPCRF(self.testenv, self) + self.upf = Open5gsUPF(self.testenv, self) + self.smf = Open5gsSMF(self.testenv, self) + self.hss = Open5gsHSS(self.testenv, self) + self.mme = Open5gsMME(self.testenv, self) + self.sgwc = Open5gsSGWC(self.testenv, self) + self.sgwu = Open5gsSGWU(self.testenv, self) + self.pcrf.configure(copy.deepcopy(values)) + self.upf.configure(copy.deepcopy(values)) + self.smf.configure(copy.deepcopy(values)) + self.hss.configure(copy.deepcopy(values)) + self.mme.configure(copy.deepcopy(values)) + self.sgwc.configure(copy.deepcopy(values)) + self.sgwu.configure(copy.deepcopy(values)) + + def gen_priv_addr(self, suffix): + if ':' in self.addr(): + raise log.Error('IPv6 not implemented!') + public_suffix = self.addr()[self.addr().rindex('.')+1:] + return '127.0.' + public_suffix + '.' + str(suffix) + +######################## +# PUBLIC - INTERNAL API +######################## + def cleanup(self): if self.pcrf: self.pcrf.cleanup() @@ -70,27 +109,21 @@ if self.sgwu: self.sgwu.cleanup() - def configure(self): - values = super().configure(['open5gsepc']) - db_host = values['epc']['db_host'] - db_uri = 'mongodb://'+db_host+'/open5gs' - config.overlay(values, dict(epc=dict(db_uri=db_uri))) - self.fill_subscribers_mongodb(values['epc']['db_host'], 27017) - self.pcrf = Open5gsPCRF(self.testenv, self) - self.upf = Open5gsUPF(self.testenv, self) - self.smf = Open5gsSMF(self.testenv, self) - self.hss = Open5gsHSS(self.testenv, self) - self.mme = Open5gsMME(self.testenv, self) - self.sgwc = Open5gsSGWC(self.testenv, self) - self.sgwu = Open5gsSGWU(self.testenv, self) - self.pcrf.configure(copy.deepcopy(values)) - self.upf.configure(copy.deepcopy(values)) - self.smf.configure(copy.deepcopy(values)) - self.hss.configure(copy.deepcopy(values)) - self.mme.configure(copy.deepcopy(values)) - self.sgwc.configure(copy.deepcopy(values)) - self.sgwu.configure(copy.deepcopy(values)) + def priv_addr_smf(self): + return self.gen_priv_addr(1) + def priv_addr_upf(self): + return self.gen_priv_addr(2) + + def priv_addr_sgwc(self): + return self.gen_priv_addr(3) + + def priv_addr_sgwu(self): + return self.gen_priv_addr(4) + +################### +# PUBLIC (test API included) +################### def start(self): self.log('Starting srsepc') self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) diff --git a/src/osmo_gsm_tester/templates/open5gs-mmed.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-mmed.yaml.tmpl index 9aec578..5c886e3 100644 --- a/src/osmo_gsm_tester/templates/open5gs-mmed.yaml.tmpl +++ b/src/osmo_gsm_tester/templates/open5gs-mmed.yaml.tmpl @@ -104,8 +104,7 @@ # sgwc: gtpc: - - addr: ${epc.run_addr} - port: 2125 + - addr: ${epc.addr_sgwc} # # smf: @@ -146,8 +145,7 @@ # apn: volte smf: gtpc: - - addr: ${epc.run_addr} - port: 2124 + - addr: ${epc.addr_smf} # # parameter: diff --git a/src/osmo_gsm_tester/templates/open5gs-sgwcd.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-sgwcd.yaml.tmpl index 8d2bd1a..a1db7ed 100644 --- a/src/osmo_gsm_tester/templates/open5gs-sgwcd.yaml.tmpl +++ b/src/osmo_gsm_tester/templates/open5gs-sgwcd.yaml.tmpl @@ -52,11 +52,9 @@ # sgwc: gtpc: - - addr: ${epc.run_addr} - port: 2125 + - addr: ${epc.addr_sgwc} pfcp: - - addr: ${epc.run_addr} - port: 8805 + - addr: ${epc.addr_sgwc} # # sgwu: @@ -112,8 +110,7 @@ # sgwu: pfcp: - - addr: ${epc.run_addr} - port: 8806 + - addr: ${epc.addr_sgwu} # # parameter: diff --git a/src/osmo_gsm_tester/templates/open5gs-sgwud.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-sgwud.yaml.tmpl index 27dd55c..f0e2384 100644 --- a/src/osmo_gsm_tester/templates/open5gs-sgwud.yaml.tmpl +++ b/src/osmo_gsm_tester/templates/open5gs-sgwud.yaml.tmpl @@ -49,8 +49,7 @@ # sgwu: pfcp: - - addr: ${epc.run_addr} - port: 8806 + - addr: ${epc.addr_sgwu} gtpu: - addr: ${epc.run_addr} port: 2152 @@ -67,8 +66,7 @@ # sgwc: pfcp: - - addr: ${epc.run_addr} - port: 8805 + - addr: ${epc.addr_sgwc} # # parameter: diff --git a/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl index 0e01337..4a030d6 100644 --- a/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl +++ b/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl @@ -20,6 +20,7 @@ # logger: file: ${smf.log_filename} + level: debug # # smf: # @@ -310,22 +311,17 @@ - addr: ${epc.run_addr} port: 7777 pfcp: - - addr: ${epc.run_addr} - port: 8808 + - addr: ${epc.addr_smf} gtpc: - - addr: ${epc.run_addr} - port: 2124 + - addr: ${epc.addr_smf} gtpu: - addr: ${epc.run_addr} port: 2153 subnet: - - addr: 10.45.0.1/16 - - addr: 2001:230:cafe::1/48 + - addr: ${epc.tun_addr}/16 dns: - 8.8.8.8 - 8.8.4.4 - - 2001:4860:4860::8888 - - 2001:4860:4860::8844 mtu: 1400 freeDiameter: ${smf.diameter_filename} @@ -415,8 +411,7 @@ # upf: pfcp: - - addr: ${epc.run_addr} - port: 8807 + - addr: ${epc.addr_upf} # # parameter: diff --git a/src/osmo_gsm_tester/templates/open5gs-upfd.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-upfd.yaml.tmpl index 4f7a25d..4fd77f6 100644 --- a/src/osmo_gsm_tester/templates/open5gs-upfd.yaml.tmpl +++ b/src/osmo_gsm_tester/templates/open5gs-upfd.yaml.tmpl @@ -20,6 +20,7 @@ # logger: file: ${upf.log_filename} + level: debug # # upf: @@ -104,14 +105,12 @@ # upf: pfcp: - - addr: ${epc.run_addr} - port: 8807 + - addr: ${epc.addr_upf} gtpu: - addr: ${epc.run_addr} port: 2154 subnet: - - addr: 10.45.0.1/16 - - addr: 2001:230:cafe::1/48 + - addr: ${epc.tun_addr}/16 # # smf: @@ -125,8 +124,7 @@ # smf: pfcp: - - addr: ${epc.run_addr} - port: 8808 + - addr: ${epc.addr_smf} # # parameter: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/23729 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: Id3062c6ad9d6de4c6066547e1e46edad5da285c1 Gerrit-Change-Number: 23729 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 Apr 12 12:00:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 12:00:23 +0000 Subject: Change in docker-playground[master]: ogt: Add support to build open5gs 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/+/23562 to look at the new patch set (#2). Change subject: ogt: Add support to build open5gs ...................................................................... ogt: Add support to build open5gs meson from open5gs requires debian10's version. physicial sysmocom OGT setup already migrated to debian10, do the same here. Related: SYS#4805 Change-Id: Id329726f93251b617219beeb674046065c30a436 --- M osmo-gsm-tester/Dockerfile M osmo-gsm-tester/jenkins.sh M osmo-gsm-tester/osmo-gsm-tester-master.sh M osmo-gsm-tester/resources.conf 4 files changed, 106 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/62/23562/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id329726f93251b617219beeb674046065c30a436 Gerrit-Change-Number: 23562 Gerrit-PatchSet: 2 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 Mon Apr 12 12:02:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 12:02:06 +0000 Subject: Change in osmo-gsm-tester[master]: open5gs: Avoid use of non-standard ports In-Reply-To: References: Message-ID: pespin has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/23729 ) Change subject: open5gs: Avoid use of non-standard ports ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/23729 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: Id3062c6ad9d6de4c6066547e1e46edad5da285c1 Gerrit-Change-Number: 23729 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 12:02:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 12:02:11 +0000 Subject: Change in osmo-gsm-tester[master]: open5gs: Avoid use of non-standard ports In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/23729 ) Change subject: open5gs: Avoid use of non-standard ports ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/23729 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: Id3062c6ad9d6de4c6066547e1e46edad5da285c1 Gerrit-Change-Number: 23729 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 12:02: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 Apr 12 12:02:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 12:02:14 +0000 Subject: Change in osmo-gsm-tester[master]: open5gs: Avoid use of non-standard ports In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/23729 ) Change subject: open5gs: Avoid use of non-standard ports ...................................................................... open5gs: Avoid use of non-standard ports Despite open5gs allowing to change the GTP ports in the config file, in reality changing those values to something else than the standard prot will fail. Hence, we must use the standard port. As a result, we must use different IP addresses in each process to avoid ip+port collisions. Let's use some loopback addresses which shouldn't require extra configuration on the host, and still only requiring 1 run_node as per existing EPCs, with the limitation that only 1 open5gs EPC instance can be run at one in a given run_node. Related: https://github.com/open5gs/open5gs/issues/897 Change-Id: Id3062c6ad9d6de4c6066547e1e46edad5da285c1 --- M src/osmo_gsm_tester/obj/epc_open5gs.py M src/osmo_gsm_tester/templates/open5gs-mmed.yaml.tmpl M src/osmo_gsm_tester/templates/open5gs-sgwcd.yaml.tmpl M src/osmo_gsm_tester/templates/open5gs-sgwud.yaml.tmpl M src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl M src/osmo_gsm_tester/templates/open5gs-upfd.yaml.tmpl 6 files changed, 70 insertions(+), 51 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/src/osmo_gsm_tester/obj/epc_open5gs.py b/src/osmo_gsm_tester/obj/epc_open5gs.py index 15f4eab..feff901 100644 --- a/src/osmo_gsm_tester/obj/epc_open5gs.py +++ b/src/osmo_gsm_tester/obj/epc_open5gs.py @@ -39,7 +39,9 @@ schema.register_config_schema('epc', config_schema) class Open5gsEPC(epc.EPC): - +############## +# PROTECTED +############## REMOTE_DIR = '/osmo-gsm-tester-open5gs' def __init__(self, testenv, run_node): @@ -54,6 +56,43 @@ self.sgwu = None self.subscriber_list = [] + def configure(self): + values = super().configure(['open5gsepc']) + db_host = values['epc']['db_host'] + db_uri = 'mongodb://'+db_host+'/open5gs' + config.overlay(values, dict(epc=dict(db_uri=db_uri, + tun_addr=self.tun_addr(), + addr_smf=self.priv_addr_smf(), + addr_upf=self.priv_addr_upf(), + addr_sgwc=self.priv_addr_sgwc(), + addr_sgwu=self.priv_addr_sgwu(), + ))) + self.fill_subscribers_mongodb(values['epc']['db_host'], 27017) + self.pcrf = Open5gsPCRF(self.testenv, self) + self.upf = Open5gsUPF(self.testenv, self) + self.smf = Open5gsSMF(self.testenv, self) + self.hss = Open5gsHSS(self.testenv, self) + self.mme = Open5gsMME(self.testenv, self) + self.sgwc = Open5gsSGWC(self.testenv, self) + self.sgwu = Open5gsSGWU(self.testenv, self) + self.pcrf.configure(copy.deepcopy(values)) + self.upf.configure(copy.deepcopy(values)) + self.smf.configure(copy.deepcopy(values)) + self.hss.configure(copy.deepcopy(values)) + self.mme.configure(copy.deepcopy(values)) + self.sgwc.configure(copy.deepcopy(values)) + self.sgwu.configure(copy.deepcopy(values)) + + def gen_priv_addr(self, suffix): + if ':' in self.addr(): + raise log.Error('IPv6 not implemented!') + public_suffix = self.addr()[self.addr().rindex('.')+1:] + return '127.0.' + public_suffix + '.' + str(suffix) + +######################## +# PUBLIC - INTERNAL API +######################## + def cleanup(self): if self.pcrf: self.pcrf.cleanup() @@ -70,27 +109,21 @@ if self.sgwu: self.sgwu.cleanup() - def configure(self): - values = super().configure(['open5gsepc']) - db_host = values['epc']['db_host'] - db_uri = 'mongodb://'+db_host+'/open5gs' - config.overlay(values, dict(epc=dict(db_uri=db_uri))) - self.fill_subscribers_mongodb(values['epc']['db_host'], 27017) - self.pcrf = Open5gsPCRF(self.testenv, self) - self.upf = Open5gsUPF(self.testenv, self) - self.smf = Open5gsSMF(self.testenv, self) - self.hss = Open5gsHSS(self.testenv, self) - self.mme = Open5gsMME(self.testenv, self) - self.sgwc = Open5gsSGWC(self.testenv, self) - self.sgwu = Open5gsSGWU(self.testenv, self) - self.pcrf.configure(copy.deepcopy(values)) - self.upf.configure(copy.deepcopy(values)) - self.smf.configure(copy.deepcopy(values)) - self.hss.configure(copy.deepcopy(values)) - self.mme.configure(copy.deepcopy(values)) - self.sgwc.configure(copy.deepcopy(values)) - self.sgwu.configure(copy.deepcopy(values)) + def priv_addr_smf(self): + return self.gen_priv_addr(1) + def priv_addr_upf(self): + return self.gen_priv_addr(2) + + def priv_addr_sgwc(self): + return self.gen_priv_addr(3) + + def priv_addr_sgwu(self): + return self.gen_priv_addr(4) + +################### +# PUBLIC (test API included) +################### def start(self): self.log('Starting srsepc') self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) diff --git a/src/osmo_gsm_tester/templates/open5gs-mmed.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-mmed.yaml.tmpl index 9aec578..5c886e3 100644 --- a/src/osmo_gsm_tester/templates/open5gs-mmed.yaml.tmpl +++ b/src/osmo_gsm_tester/templates/open5gs-mmed.yaml.tmpl @@ -104,8 +104,7 @@ # sgwc: gtpc: - - addr: ${epc.run_addr} - port: 2125 + - addr: ${epc.addr_sgwc} # # smf: @@ -146,8 +145,7 @@ # apn: volte smf: gtpc: - - addr: ${epc.run_addr} - port: 2124 + - addr: ${epc.addr_smf} # # parameter: diff --git a/src/osmo_gsm_tester/templates/open5gs-sgwcd.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-sgwcd.yaml.tmpl index 8d2bd1a..a1db7ed 100644 --- a/src/osmo_gsm_tester/templates/open5gs-sgwcd.yaml.tmpl +++ b/src/osmo_gsm_tester/templates/open5gs-sgwcd.yaml.tmpl @@ -52,11 +52,9 @@ # sgwc: gtpc: - - addr: ${epc.run_addr} - port: 2125 + - addr: ${epc.addr_sgwc} pfcp: - - addr: ${epc.run_addr} - port: 8805 + - addr: ${epc.addr_sgwc} # # sgwu: @@ -112,8 +110,7 @@ # sgwu: pfcp: - - addr: ${epc.run_addr} - port: 8806 + - addr: ${epc.addr_sgwu} # # parameter: diff --git a/src/osmo_gsm_tester/templates/open5gs-sgwud.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-sgwud.yaml.tmpl index 27dd55c..f0e2384 100644 --- a/src/osmo_gsm_tester/templates/open5gs-sgwud.yaml.tmpl +++ b/src/osmo_gsm_tester/templates/open5gs-sgwud.yaml.tmpl @@ -49,8 +49,7 @@ # sgwu: pfcp: - - addr: ${epc.run_addr} - port: 8806 + - addr: ${epc.addr_sgwu} gtpu: - addr: ${epc.run_addr} port: 2152 @@ -67,8 +66,7 @@ # sgwc: pfcp: - - addr: ${epc.run_addr} - port: 8805 + - addr: ${epc.addr_sgwc} # # parameter: diff --git a/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl index 0e01337..4a030d6 100644 --- a/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl +++ b/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl @@ -20,6 +20,7 @@ # logger: file: ${smf.log_filename} + level: debug # # smf: # @@ -310,22 +311,17 @@ - addr: ${epc.run_addr} port: 7777 pfcp: - - addr: ${epc.run_addr} - port: 8808 + - addr: ${epc.addr_smf} gtpc: - - addr: ${epc.run_addr} - port: 2124 + - addr: ${epc.addr_smf} gtpu: - addr: ${epc.run_addr} port: 2153 subnet: - - addr: 10.45.0.1/16 - - addr: 2001:230:cafe::1/48 + - addr: ${epc.tun_addr}/16 dns: - 8.8.8.8 - 8.8.4.4 - - 2001:4860:4860::8888 - - 2001:4860:4860::8844 mtu: 1400 freeDiameter: ${smf.diameter_filename} @@ -415,8 +411,7 @@ # upf: pfcp: - - addr: ${epc.run_addr} - port: 8807 + - addr: ${epc.addr_upf} # # parameter: diff --git a/src/osmo_gsm_tester/templates/open5gs-upfd.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-upfd.yaml.tmpl index 4f7a25d..4fd77f6 100644 --- a/src/osmo_gsm_tester/templates/open5gs-upfd.yaml.tmpl +++ b/src/osmo_gsm_tester/templates/open5gs-upfd.yaml.tmpl @@ -20,6 +20,7 @@ # logger: file: ${upf.log_filename} + level: debug # # upf: @@ -104,14 +105,12 @@ # upf: pfcp: - - addr: ${epc.run_addr} - port: 8807 + - addr: ${epc.addr_upf} gtpu: - addr: ${epc.run_addr} port: 2154 subnet: - - addr: 10.45.0.1/16 - - addr: 2001:230:cafe::1/48 + - addr: ${epc.tun_addr}/16 # # smf: @@ -125,8 +124,7 @@ # smf: pfcp: - - addr: ${epc.run_addr} - port: 8808 + - addr: ${epc.addr_smf} # # parameter: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/23729 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: Id3062c6ad9d6de4c6066547e1e46edad5da285c1 Gerrit-Change-Number: 23729 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 Apr 12 12:06:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 12:06:01 +0000 Subject: Change in docker-playground[master]: ogt: Add support to build open5gs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23562 ) Change subject: ogt: Add support to build open5gs ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id329726f93251b617219beeb674046065c30a436 Gerrit-Change-Number: 23562 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 12: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 Mon Apr 12 12:14:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 12:14:10 +0000 Subject: Change in docker-playground[master]: ogt: Add support to build open5gs In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23562 ) Change subject: ogt: Add support to build open5gs ...................................................................... ogt: Add support to build open5gs meson from open5gs requires debian10's version. physicial sysmocom OGT setup already migrated to debian10, do the same here. Related: SYS#4805 Change-Id: Id329726f93251b617219beeb674046065c30a436 --- M osmo-gsm-tester/Dockerfile M osmo-gsm-tester/jenkins.sh M osmo-gsm-tester/osmo-gsm-tester-master.sh M osmo-gsm-tester/resources.conf 4 files changed, 106 insertions(+), 20 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/osmo-gsm-tester/Dockerfile b/osmo-gsm-tester/Dockerfile index 8dea613..dc8ba1b 100644 --- a/osmo-gsm-tester/Dockerfile +++ b/osmo-gsm-tester/Dockerfile @@ -1,5 +1,6 @@ ARG USER FROM $USER/debian-buster-jenkins +ARG OGT_MASTER_ADDR="172.18.50.2" MAINTAINER Pau Espin Pedrol @@ -37,7 +38,8 @@ "git+https://github.com/podshumok/python-smpplib.git at master#egg=smpplib" \ pydbus \ pyusb \ - pysispm + pysispm \ + pymongo # Intall sshd: RUN apt-get update && apt-get install -y openssh-server @@ -51,13 +53,10 @@ /osmo-gsm-tester-srsenb \ /osmo-gsm-tester-srsepc \ /osmo-gsm-tester-trx \ - /osmo-gsm-tester-grbroker + /osmo-gsm-tester-grbroker \ + /osmo-gsm-tester-open5gs RUN chown -R jenkins:jenkins \ - /osmo-gsm-tester-srsue \ - /osmo-gsm-tester-srsenb \ - /osmo-gsm-tester-srsepc \ - /osmo-gsm-tester-trx \ - /osmo-gsm-tester-grbroker + /osmo-gsm-tester-* # Set a UTF-8 locale RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ @@ -112,6 +111,45 @@ gnuradio && \ apt-get clean +# install open5gs dependencies: (mongodb not available in Debian) +# systemctl stuff: workaround for https://jira.mongodb.org/browse/SERVER-54386 +ADD https://www.mongodb.org/static/pgp/server-4.4.asc /tmp/mongodb-server-4.4.asc +RUN apt-key add /tmp/mongodb-server-4.4.asc && \ + echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" > /etc/apt/sources.list.d/mongodb-org-4.4.list +RUN apt-get update && \ + systemctl_path=$(which systemctl) && \ + mv $systemctl_path /tmp/systemctl && \ + apt-get install -y --no-install-recommends mongodb-org && \ + apt-get clean && \ + mv /tmp/systemctl $systemctl_path && \ + sed -i "s/127.0.0.1/$OGT_MASTER_ADDR/g" /etc/mongod.conf + +# install open5gs dependencies: +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + ninja-build \ + build-essential \ + flex \ + bison \ + git \ + libsctp-dev \ + libgnutls28-dev \ + libgcrypt-dev \ + libssl-dev \ + libidn11-dev \ + libmongoc-dev \ + libbson-dev \ + libyaml-dev \ + libnghttp2-dev \ + libmicrohttpd-dev \ + libcurl4-gnutls-dev \ + libnghttp2-dev \ + meson && \ + apt-get clean + WORKDIR /tmp ARG OSMO_GSM_TESTER_BRANCH="master" diff --git a/osmo-gsm-tester/jenkins.sh b/osmo-gsm-tester/jenkins.sh index ae645e7..05a6cde 100755 --- a/osmo-gsm-tester/jenkins.sh +++ b/osmo-gsm-tester/jenkins.sh @@ -28,34 +28,45 @@ SRS_LTE_BRANCH=${SRS_LTE_BRANCH:-master} SRS_LTE_REPO_PREFIX=${SRS_LTE_REPO_PREFIX:-git at github.com:srsLTE} SRS_LTE_REPO_NAME=${SRS_LTE_REPO_NAME:-srsLTE} -have_repo_srslte() { +OPEN5GS_REPO_PREFIX=${OPEN5GS_REPO_PREFIX:-git at github.com:open5gs} +OPEN5GS_BRANCH=${OPEN5GS_BRANCH:-main} +have_repo() { + repo_prefix=$1 + repo_name=$2 + branch=$3 echo "srsLTE inst not provided, fetching it now and it will be build in container" - if [ -d "${TRIAL_DIR}/${SRS_LTE_REPO_NAME}" ]; then - git fetch -C ${TRIAL_DIR}/${SRS_LTE_REPO_NAME} + if [ -d "${TRIAL_DIR}/${repo_name}" ]; then + git fetch -C ${TRIAL_DIR}/${repo_name} else mkdir -p ${TRIAL_DIR} - git clone "${SRS_LTE_REPO_PREFIX}/${SRS_LTE_REPO_NAME}" "${TRIAL_DIR}/${SRS_LTE_REPO_NAME}" + git clone "${repo_prefix}/${repo_name}" "${TRIAL_DIR}/${repo_name}" fi # Figure out whether we need to prepend origin/ to find branches in upstream. # Doing this allows using git hashes instead of a branch name. - if git -C "${TRIAL_DIR}/${SRS_LTE_REPO_NAME}" rev-parse "origin/$SRS_LTE_BRANCH"; then - SRS_LTE_BRANCH="origin/$SRS_LTE_BRANCH" + if git -C "${TRIAL_DIR}/${repo_name}" rev-parse "origin/$branch"; then + branch="origin/$branch" fi - git -C "${TRIAL_DIR}/${SRS_LTE_REPO_NAME}" checkout -B build_branch "$SRS_LTE_BRANCH" - rm -rf "${TRIAL_DIR:?}/${SRS_LTE_REPO_NAME}/*" - git -C "${TRIAL_DIR}/${SRS_LTE_REPO_NAME}" reset --hard "$SRS_LTE_BRANCH" + git -C "${TRIAL_DIR}/${repo_name}" checkout -B build_branch "$branch" + rm -rf "${TRIAL_DIR:?}/${repo_name}/*" + git -C "${TRIAL_DIR}/${repo_name}" reset --hard "$branch" } - # If srsLTE trial not provided by user, fetch srsLTE git repo and let the container build it: if [ "x$(ls ${TRIAL_DIR}/srslte.*.tgz 2>/dev/null | wc -l)" = "x0" ]; then - have_repo_srslte + have_repo $SRS_LTE_REPO_PREFIX $SRS_LTE_REPO_NAME $SRS_LTE_BRANCH +fi + +# If open5gs trial not provided by user, fetch srsLTE git repo and let the container build it: +if [ "x$(ls ${TRIAL_DIR}/open5gs.*.tgz 2>/dev/null | wc -l)" = "x0" ]; then + have_repo $OPEN5GS_REPO_PREFIX "open5gs" $OPEN5GS_BRANCH + have_repo "https://github.com/open5gs" "freeDiameter" "r1.5.0" + mv "${TRIAL_DIR}/freeDiameter" "${TRIAL_DIR}/open5gs/subprojects" fi . ../jenkins-common.sh IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" docker_images_require \ - "debian-stretch-jenkins" \ + "debian-buster-jenkins" \ "osmo-gsm-tester" set_clean_up_trap diff --git a/osmo-gsm-tester/osmo-gsm-tester-master.sh b/osmo-gsm-tester/osmo-gsm-tester-master.sh index 4a32376..ae300c9 100755 --- a/osmo-gsm-tester/osmo-gsm-tester-master.sh +++ b/osmo-gsm-tester/osmo-gsm-tester-master.sh @@ -34,11 +34,47 @@ popd } +build_open5gs() { + git_repo_dir="/tmp/trial/open5gs" + if [ ! -d "$git_repo_dir" ]; then + echo "No external trial nor git repo provided for Open5GS!" + exit 1 + fi + pushd "/tmp/trial" + rm -rf sysroot && mkdir sysroot + rm -rf build && mkdir build && cd build || exit 1 + meson "${git_repo_dir}" --prefix="/tmp/trial/sysroot" --libdir="lib" + set +x; echo; echo; set -x + ninja "-j$(nproc)" + set +x; echo; echo; set -x + ninja install + find "/tmp/trial/sysroot/lib" -depth -type f -name "lib*.so.*" -exec patchelf --set-rpath '$ORIGIN/' {} \; + cd .. + this="open5gs.build-${BUILD_NUMBER-$(date +%Y-%m-%d_%H_%M_%S)}" + tar="${this}.tgz" + tar czf "/tmp/trial/$tar" -C "/tmp/trial/sysroot" . + rm -rf build sysroot + md5sum "$tar" >>checksums.md5 + popd +} + # Build srsLTE.git if not provided by host system: if [ "x$(ls /tmp/trial/srslte.*.tgz 2>/dev/null | wc -l)" = "x0" ]; then build_srslte fi +# Build open5gs.git if not provided by host system: +if [ "x$(ls /tmp/trial/open5gs.*.tgz 2>/dev/null | wc -l)" = "x0" ]; then + build_open5gs +fi + +# If open5gs is available, start mongodb in the background: +if [ "x$(ls /tmp/trial/open5gs.*.tgz 2>/dev/null | wc -l)" != "x0" ]; then + echo "Starting mongodb in the background..." + /usr/bin/mongod --fork --config /etc/mongod.conf --logpath /data/mongodb.log + chown "${HOST_USER_ID}:${HOST_GROUP_ID}" /data/mongodb.log +fi + # Make trial dir avaialable to jenkins user inside container: chown -R jenkins /tmp/trial/ diff --git a/osmo-gsm-tester/resources.conf b/osmo-gsm-tester/resources.conf index d10cc1e..1a8f2a7 100644 --- a/osmo-gsm-tester/resources.conf +++ b/osmo-gsm-tester/resources.conf @@ -56,7 +56,8 @@ rf_dev_type: zmq imsi: '001010123456789' ki: '00112233445566778899aabbccddeeff' - auth_algo: 'xor' + opc: '63BFA50EE6523365FF14C1F45F88737D' + auth_algo: 'milenage' features: ['4g'] run_node: run_type: ssh -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id329726f93251b617219beeb674046065c30a436 Gerrit-Change-Number: 23562 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 Apr 12 12:15:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 12:15:17 +0000 Subject: Change in libosmocore[master]: vty/logging: logp: properly handle library specific sub-systems In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23630 ) Change subject: vty/logging: logp: properly handle library specific sub-systems ...................................................................... vty/logging: logp: properly handle library specific sub-systems The library specific sub-systems are kind of special, because their position in the 'osmo_log_info' may vary depending on the number of application specific sub-systems. This is why their associated constant values (like DLGLOBAL) are negative, and this is what the LOGP() macro expects as the first argument. Before this change, invoking 'logp' command with any library specific logging sub-system would result in getting messages printed with the fall-back DLGLOBAL sub-systems. Change-Id: If86563e169fe1243adfa7b09c9d65d9f88c8a99e --- M src/vty/logging_vty.c M tests/logging/logging_vty_test.vty 2 files changed, 20 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 5f31b39..3b131c2 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -1110,6 +1110,23 @@ int category = log_parse_category(argv[0]); int level = log_parse_level(argv[1]); char *str = argv_concat(argv, argc, 2); + + if (level < 0) { + vty_out(vty, "%% Invalid level '%s'%s", argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + + if (category < 0) { + vty_out(vty, "%% Invalid category '%s'%s", argv[0], VTY_NEWLINE); + return CMD_WARNING; + } + + /* Properly handle library specific sub-systems */ + if ((unsigned int) category >= osmo_log_info->num_cat_user) { + category -= osmo_log_info->num_cat_user - 1; + category *= -1; + } + LOGP(category, level, "%s\n", str); return CMD_SUCCESS; } diff --git a/tests/logging/logging_vty_test.vty b/tests/logging/logging_vty_test.vty index 30e73ab..99e8781 100644 --- a/tests/logging/logging_vty_test.vty +++ b/tests/logging/logging_vty_test.vty @@ -526,3 +526,6 @@ logging_vty_test# logp lglobal debug This log message is not echoed logging_vty_test# logp lglobal notice This log message is echoed DLGLOBAL NOTICE This log message is echoed + +logging_vty_test# logp lctrl notice This is a CTRL specific message +DLCTRL NOTICE This is a CTRL specific message -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If86563e169fe1243adfa7b09c9d65d9f88c8a99e Gerrit-Change-Number: 23630 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder 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 Mon Apr 12 12:17:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 12:17:41 +0000 Subject: Change in osmo-bsc[master]: [hopping] Rework generation of Cell/Mobile Allocation In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23649 ) Change subject: [hopping] Rework generation of Cell/Mobile Allocation ...................................................................... [hopping] Rework generation of Cell/Mobile Allocation Calculating the Cell Allocation (basically a bit-vector of all the frequencies allocated to a cell) on the OML link establishment has several downsides and potential problems: * Theoretically, more than 64 ARFCNs can be allocated for a cell via the VTY interface. The problem here is that the Mobile Allocation IE cannot contain more than 64 channels. * The BSC's operator will neither be warned by the interactive VTY shell during configuration, nor during the startup. * The BSC will accept such a configuration, but then will be unable to encode the Mobile Allocation IEs at run-time. This change aims to improve the situation by separating part of the logic from generate_cell_chan_list(), and invoking this part directly from the VTY commands. This way it will become impossible to configure more than 64 ARFCNs, neither via the config file, nor interactively from the VTY. Change-Id: I98211fb0684a973239f5760e1de52a24a1f4c33c --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/system_information.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/system_information.c 5 files changed, 92 insertions(+), 35 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/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index c8cf8b3..c03c75e 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -451,6 +451,7 @@ struct bitvec si5_neigh_list; struct osmo_earfcn_si2q si2quater_neigh_list; size_t uarfcn_length; /* index for uarfcn and scramble lists */ + size_t cell_chan_num; /* number of channels in Cell Allocation */ struct { /* bitmask large enough for all possible ARFCN's */ uint8_t neigh_list[1024/8]; diff --git a/include/osmocom/bsc/system_information.h b/include/osmocom/bsc/system_information.h index 35892d9..e86a349 100644 --- a/include/osmocom/bsc/system_information.h +++ b/include/osmocom/bsc/system_information.h @@ -7,6 +7,7 @@ struct gsm_bts; +int generate_cell_chan_alloc(struct gsm_bts *bts); int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts); int gsm_generate_si(struct gsm_bts *bts, enum osmo_sysinfo_type type); size_t si2q_earfcn_count(const struct osmo_earfcn_si2q *e); diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 6a6411f..5eb2393 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -5334,6 +5334,12 @@ trx->arfcn = arfcn; + /* Update Cell Allocation (list of all the frequencies allocated to a cell) */ + if (generate_cell_chan_alloc(trx->bts) != 0) { + vty_out(vty, "%% Failed to re-generate Cell Allocation%s", VTY_NEWLINE); + return CMD_WARNING; + } + /* FIXME: patch ARFCN into SYSTEM INFORMATION */ /* FIXME: use OML layer to update the ARFCN */ /* FIXME: use RSL layer to update SYSTEM INFORMATION */ @@ -5604,6 +5610,13 @@ bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, 1); + /* Update Cell Allocation (list of all the frequencies allocated to a cell) */ + if (generate_cell_chan_alloc(ts->trx->bts) != 0) { + vty_out(vty, "%% Failed to re-generate Cell Allocation%s", VTY_NEWLINE); + bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, ZERO); /* roll-back */ + return CMD_WARNING; + } + return CMD_SUCCESS; } @@ -5630,6 +5643,13 @@ bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, 0); + /* Update Cell Allocation (list of all the frequencies allocated to a cell) */ + if (generate_cell_chan_alloc(ts->trx->bts) != 0) { + vty_out(vty, "%% Failed to re-generate Cell Allocation%s", VTY_NEWLINE); + /* It's unlikely to happen on removal, so we don't roll-back */ + return CMD_WARNING; + } + return CMD_SUCCESS; } @@ -5644,6 +5664,13 @@ bitvec_zero(&ts->hopping.arfcns); + /* Update Cell Allocation (list of all the frequencies allocated to a cell) */ + if (generate_cell_chan_alloc(ts->trx->bts) != 0) { + vty_out(vty, "%% Failed to re-generate Cell Allocation%s", VTY_NEWLINE); + /* It's unlikely to happen on removal, so we don't roll-back */ + return CMD_WARNING; + } + return CMD_SUCCESS; } diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 6c7c275..2b4224f 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -260,10 +260,10 @@ { /* we have three bitvecs: the per-timeslot ARFCNs, the cell chan ARFCNs * and the MA */ + const size_t num_cell_arfcns = ts->trx->bts->si_common.cell_chan_num; const struct bitvec *cell_chan = &ts->trx->bts->si_common.cell_alloc; const struct bitvec *ts_arfcn = &ts->hopping.arfcns; struct bitvec *ma = &ts->hopping.ma; - unsigned int num_cell_arfcns; int i; /* re-set the MA to all-zero */ @@ -273,13 +273,6 @@ if (!ts->hopping.enabled) return; - /* count the number of ARFCNs in the cell channel allocation */ - num_cell_arfcns = 0; - for (i = 0; i < 1024; i++) { - if (bitvec_get_bit_pos(cell_chan, i)) - num_cell_arfcns++; - } - /* pad it to octet-aligned number of bits */ ts->hopping.ma_len = OSMO_BYTES_FOR_BITS(num_cell_arfcns); ma->cur_bit = (ts->hopping.ma_len * 8) - 1; @@ -305,6 +298,20 @@ } } +static void generate_ma_for_bts(struct gsm_bts *bts) +{ + struct gsm_bts_trx *trx; + unsigned int tn; + + OSMO_ASSERT(bts->si_common.cell_chan_num > 0); + OSMO_ASSERT(bts->si_common.cell_chan_num <= 64); + + llist_for_each_entry(trx, &bts->trx_list, list) { + for (tn = 0; tn < ARRAY_SIZE(trx->ts); tn++) + generate_ma_for_ts(&trx->ts[tn]); + } +} + static void bootstrap_rsl(struct gsm_bts_trx *trx) { unsigned int i; @@ -388,19 +395,9 @@ switch (signal) { case S_L_INP_TEI_UP: if (isd->link_type == E1INP_SIGN_OML) { - /* TODO: this is required for the Nokia BTS, hopping is configured - during OML, other MA is not set. */ - struct gsm_bts_trx *cur_trx; - uint8_t ca[20]; - /* has to be called before generate_ma_for_ts to - set bts->si_common.cell_alloc */ - generate_cell_chan_list(ca, trx->bts); - - llist_for_each_entry(cur_trx, &trx->bts->trx_list, list) { - int i; - for (i = 0; i < ARRAY_SIZE(cur_trx->ts); i++) - generate_ma_for_ts(&cur_trx->ts[i]); - } + /* Generate Mobile Allocation bit-masks for all timeslots. + * This needs to be done here, because it's used for TS configuration. */ + generate_ma_for_bts(trx->bts); } if (isd->link_type == E1INP_SIGN_RSL) bootstrap_rsl(trx); diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index e2ac04d..0dbf53c 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -574,31 +574,62 @@ return -EINVAL; } -/* generate a cell channel list as per Section 10.5.2.1b of 04.08 */ -int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts) +/* (Re)generate Cell Allocation (basically a bit-vector of all cell channels) */ +int generate_cell_chan_alloc(struct gsm_bts *bts) { - struct bitvec *bv = &bts->si_common.cell_alloc; const struct gsm_bts_trx *trx; + unsigned int chan, chan_num; + unsigned int tn; - /* Zero-initialize the bit-vector */ - memset(bv->data, 0, bv->data_len); + /* Temporary Cell Allocation bit-vector */ + uint8_t ca[1024 / 8] = { 0 }; + struct bitvec bv = { + .data_len = sizeof(ca), + .data = &ca[0], + }; - /* first we generate a bitvec of all TRX ARFCN's in our BTS */ + /* Calculate a bit-mask of all assigned ARFCNs */ llist_for_each_entry(trx, &bts->trx_list, list) { - unsigned int i, j; /* Always add the TRX's ARFCN */ - bitvec_set_bit_pos(bv, trx->arfcn, 1); - for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { - const struct gsm_bts_trx_ts *ts = &trx->ts[i]; + bitvec_set_bit_pos(&bv, trx->arfcn, 1); + for (tn = 0; tn < ARRAY_SIZE(trx->ts); tn++) { + const struct gsm_bts_trx_ts *ts = &trx->ts[tn]; /* Add any ARFCNs present in hopping channels */ - for (j = 0; j < 1024; j++) { - if (bitvec_get_bit_pos(&ts->hopping.arfcns, j)) - bitvec_set_bit_pos(bv, j, 1); + for (chan = 0; chan < sizeof(ca) * 8; chan++) { + if (bitvec_get_bit_pos(&ts->hopping.arfcns, chan) == ONE) + bitvec_set_bit_pos(&bv, chan, ONE); } } } - /* then we generate a GSM 04.08 frequency list from the bitvec */ + /* Calculate the overall number of assigned ARFCNs */ + for (chan_num = 0, chan = 0; chan < sizeof(ca) * 8; chan++) { + if (bitvec_get_bit_pos(&bv, chan) == ONE) + chan_num++; + } + + /* The Mobile Allocation IE may contain up to 64 bits, so here we + * cannot allow more than 64 channels in Cell Allocation. */ + if (chan_num > 64) { + LOGP(DRR, LOGL_ERROR, "Failed to (re)generate Cell Allocation: " + "number of channels (%u) exceeds the maximum number of " + "ARFCNs in Mobile Allocation (64)\n", chan_num); + return -E2BIG; + } + + /* Commit the new Channel Allocation */ + memcpy(&bts->si_common.data.cell_alloc[0], ca, sizeof(ca)); + bts->si_common.cell_chan_num = chan_num; + + return 0; +} + +/* generate a cell channel list as per Section 10.5.2.1b of 04.08 */ +int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts) +{ + const struct bitvec *bv = &bts->si_common.cell_alloc; + + /* generate a Frequency List from the Cell Allocation */ return bitvec2freq_list(chan_list, bv, bts, false, false); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I98211fb0684a973239f5760e1de52a24a1f4c33c Gerrit-Change-Number: 23649 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 Apr 12 12:17:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 12:17:41 +0000 Subject: Change in osmo-bsc[master]: [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23650 ) Change subject: [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again ...................................................................... [hopping] bootstrap_rsl(): do not call generate_ma_for_ts() again It's already being called in inp_sig_cb(), once the A-bis/OML link is established. There is no need to do this on the A-bis/RSL link establishment again. Change-Id: I435018f439181cdd046ca99fe7e01ac85e226cce --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 2b4224f..5426b1e 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -357,7 +357,6 @@ for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { struct gsm_bts_trx_ts *ts = &trx->ts[i]; - generate_ma_for_ts(ts); OSMO_ASSERT(ts->fi); osmo_fsm_inst_dispatch(ts->fi, TS_EV_RSL_READY, NULL); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I435018f439181cdd046ca99fe7e01ac85e226cce Gerrit-Change-Number: 23650 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 Apr 12 12:48:52 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 12 Apr 2021 12:48:52 +0000 Subject: Change in osmo-bsc[master]: deprecation: use osmo_bts_features_*() 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/+/23728 to look at the new patch set (#2). Change subject: deprecation: use osmo_bts_features_*() ...................................................................... deprecation: use osmo_bts_features_*() For "reported feature '%s'...", use the short feature name, which better matches the message. Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d --- M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bsc_vty.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/28/23728/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d Gerrit-Change-Number: 23728 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 12:48:53 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 12 Apr 2021 12:48:53 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... abis_nm_ipaccess_rsl_connect(): use msgb to compose attr So far the function uses insane byte array magic numbers to compose the OML "RSL Connect" message. For VAMOS, I intend to modify that message. To ensure sanity, first change the attr composition to msgb_put*(). Related: OS#4940 Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 --- M src/osmo-bsc/abis_nm.c 1 file changed, 9 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/30/23730/1 diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index ba1075a..a5407ed 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -3014,32 +3014,28 @@ int abis_nm_ipaccess_rsl_connect(struct gsm_bts_trx *trx, uint32_t ip, uint16_t port, uint8_t stream) { + struct msgb *attr; struct in_addr ia; - uint8_t attr[] = { NM_ATT_IPACC_STREAM_ID, 0, - NM_ATT_IPACC_DST_IP_PORT, 0, 0, - NM_ATT_IPACC_DST_IP, 0, 0, 0, 0 }; - - int attr_len = sizeof(attr); int error; osmo_timer_setup(&trx->rsl_connect_timeout, rsl_connect_timeout, trx); - ia.s_addr = htonl(ip); - attr[1] = stream; - attr[3] = port >> 8; - attr[4] = port & 0xff; - memcpy(attr + 6, &ia.s_addr, sizeof(uint32_t)); + attr = msgb_alloc_c(OTC_SELECT, 32, "RSL-connect-attr"); + msgb_tv_put(attr, NM_ATT_IPACC_STREAM_ID, stream); + msgb_tv16_put(attr, NM_ATT_IPACC_DST_IP_PORT, port); /* if ip == 0, we use the default IP */ - if (ip == 0) - attr_len -= 5; + if (ip != 0) { + ia.s_addr = htonl(ip); + msgb_tv_fixed_put(attr, NM_ATT_IPACC_DST_IP, 4, (void*)&ia.s_addr); + } LOG_TRX(trx, DNM, LOGL_INFO, "IPA RSL CONNECT IP=%s PORT=%u STREAM=0x%02x\n", inet_ntoa(ia), port, stream); error = abis_nm_ipaccess_msg(trx->bts, NM_MT_IPACC_RSL_CONNECT, NM_OC_BASEB_TRANSC, trx->bts->bts_nr, - trx->nr, 0xff, attr, attr_len); + trx->nr, 0xff, attr->data, attr->len); if (error == 0) osmo_timer_schedule(&trx->rsl_connect_timeout, 60, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 12:49:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 12:49:42 +0000 Subject: Change in osmo-bsc[master]: deprecation: use osmo_bts_features_*() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23728 ) Change subject: deprecation: use osmo_bts_features_*() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d Gerrit-Change-Number: 23728 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 12:49:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 12:50:43 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 12 Apr 2021 12:50:43 +0000 Subject: Change in osmo-bsc[master]: deprecation: use osmo_bts_features_*() 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/+/23728 to look at the new patch set (#3). Change subject: deprecation: use osmo_bts_features_*() ...................................................................... deprecation: use osmo_bts_features_*() For "reported feature '%s'...", use the short feature name, which better matches the message. Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d --- M TODO-RELEASE M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bsc_vty.c 3 files changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/28/23728/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d Gerrit-Change-Number: 23728 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 12:54:17 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 12 Apr 2021 12:54:17 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... abis_nm_ipaccess_rsl_connect(): use msgb to compose attr So far the function uses insane byte array magic numbers to compose the OML "RSL Connect" message. For VAMOS, I intend to modify that message. To ensure sanity, first change the attr composition to msgb_put*(). Related: OS#4940 Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 --- M src/osmo-bsc/abis_nm.c 1 file changed, 10 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/30/23730/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 13:08:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:08:25 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: check in simple declarative codec In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23135 ) Change subject: trx_toolkit: check in simple declarative codec ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Gerrit-Change-Number: 23135 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 13:08:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:08:35 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: check in simple declarative codec In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23135 ) Change subject: trx_toolkit: check in simple declarative codec ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Gerrit-Change-Number: 23135 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 13:08: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 Apr 12 13:08:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:08:40 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: check in simple declarative codec In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23135 ) Change subject: trx_toolkit: check in simple declarative codec ...................................................................... Patch Set 4: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Gerrit-Change-Number: 23135 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 13:08:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 13:08:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:08:52 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: check in simple declarative codec In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23135 ) Change subject: trx_toolkit: check in simple declarative codec ...................................................................... trx_toolkit: check in simple declarative codec Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Related: OS#4006, SYS#4895 --- A src/target/trx_toolkit/codec.py A src/target/trx_toolkit/test_codec.py 2 files changed, 1,000 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/src/target/trx_toolkit/codec.py b/src/target/trx_toolkit/codec.py new file mode 100644 index 0000000..7a42c9b --- /dev/null +++ b/src/target/trx_toolkit/codec.py @@ -0,0 +1,408 @@ +# -*- coding: utf-8 -*- + +''' +Very simple (performance oriented) declarative message codec. +Inspired by Pycrate and Scapy. +''' + +# TRX Toolkit +# +# (C) 2021 by sysmocom - s.f.m.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 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. + +from typing import Optional, Callable, Tuple, Any +import abc + +class ProtocolError(Exception): + ''' Error in a protocol definition. ''' + +class DecodeError(Exception): + ''' Error during decoding of a field/message. ''' + +class EncodeError(Exception): + ''' Error during encoding of a field/message. ''' + + +class Codec(abc.ABC): + ''' Base class providing encoding and decoding API. ''' + + @abc.abstractmethod + def from_bytes(self, vals: dict, data: bytes) -> int: + ''' Decode value(s) from the given buffer of bytes. ''' + + @abc.abstractmethod + def to_bytes(self, vals: dict) -> bytes: + ''' Encode value(s) into bytes. ''' + + +class Field(Codec): + ''' Base class representing one field in a Message. ''' + + # Default length (0 means the whole buffer) + DEF_LEN: int = 0 + + # Default parameters + DEF_PARAMS: dict = { } + + # Presence of a field during decoding and encoding + get_pres: Callable[[dict], bool] + # Length of a field for self.from_bytes() + get_len: Callable[[dict, bytes], int] + # Value of a field for self.to_bytes() + get_val: Callable[[dict], Any] + + def __init__(self, name: str, **kw) -> None: + self.name = name + + self.len = kw.get('len', self.DEF_LEN) + if self.len == 0: # flexible field + self.get_len = lambda _, data: len(data) + else: # fixed length + self.get_len = lambda vals, _: self.len + + # Field is unconditionally present by default + self.get_pres = lambda vals: True + # Field takes its value from the given dict by default + self.get_val = lambda vals: vals[self.name] + + # Additional parameters for derived field types + self.p = { key : kw.get(key, self.DEF_PARAMS[key]) + for key in self.DEF_PARAMS } + + def from_bytes(self, vals: dict, data: bytes) -> int: + if self.get_pres(vals) is False: + return 0 + length = self.get_len(vals, data) + if len(data) < length: + raise DecodeError('Short read') + self._from_bytes(vals, data[:length]) + return length + + def to_bytes(self, vals: dict) -> bytes: + if self.get_pres(vals) is False: + return b'' + data = self._to_bytes(vals) + if self.len > 0 and len(data) != self.len: + raise EncodeError('Field length mismatch') + return data + + @abc.abstractmethod + def _from_bytes(self, vals: dict, data: bytes) -> None: + ''' Decode value(s) from the given buffer of bytes. ''' + raise NotImplementedError + + @abc.abstractmethod + def _to_bytes(self, vals: dict) -> bytes: + ''' Encode value(s) into bytes. ''' + raise NotImplementedError + + +class Buf(Field): + ''' A sequence of octets. ''' + + def _from_bytes(self, vals: dict, data: bytes) -> None: + vals[self.name] = data + + def _to_bytes(self, vals: dict) -> bytes: + # TODO: handle len(self.get_val()) < self.get_len() + return self.get_val(vals) + + +class Spare(Field): + ''' Spare filling for RFU fields or padding. ''' + + # Default parameters + DEF_PARAMS = { + 'filler' : b'\x00', + } + + def _from_bytes(self, vals: dict, data: bytes) -> None: + pass # Just ignore it + + def _to_bytes(self, vals: dict) -> bytes: + return self.p['filler'] * self.get_len(vals, b'') + + +class Uint(Field): + ''' An integer field: unsigned, N bits, big endian. ''' + + # Uint8 by default + DEF_LEN = 1 + + # Default parameters + DEF_PARAMS = { + 'offset' : 0, + 'mult' : 1, + } + + # Big endian, unsigned + SIGN = False + BO = 'big' + + def _from_bytes(self, vals: dict, data: bytes) -> None: + val = int.from_bytes(data, self.BO, signed=self.SIGN) + vals[self.name] = val * self.p['mult'] + self.p['offset'] + + def _to_bytes(self, vals: dict) -> bytes: + val = (self.get_val(vals) - self.p['offset']) // self.p['mult'] + return val.to_bytes(self.len, self.BO, signed=self.SIGN) + +class Uint16BE(Uint): + DEF_LEN = 16 // 8 + +class Uint16LE(Uint16BE): + BO = 'little' + +class Uint32BE(Uint): + DEF_LEN = 32 // 8 + +class Uint32LE(Uint32BE): + BO = 'little' + +class Int(Uint): + SIGN = True + +class Int16BE(Int): + DEF_LEN = 16 // 8 + +class Int16LE(Int16BE): + BO = 'little' + +class Int32BE(Int): + DEF_LEN = 32 // 8 + +class Int32LE(Int32BE): + BO = 'little' + + +class BitFieldSet(Field): + ''' A set of bit-fields. ''' + + # Default parameters + DEF_PARAMS = { + # Default field order (MSB first) + 'order' : 'big', + } + + # To be defined by derived types + STRUCT: Tuple['BitField', ...] = () + + def __init__(self, **kw) -> None: + Field.__init__(self, self.__class__.__name__, **kw) + + self._fields = kw.get('set', self.STRUCT) + if type(self._fields) is not tuple: + raise ProtocolError('Expected a tuple') + + # LSB first is basically reversed order + if self.p['order'] in ('little', 'lsb'): + self._fields = self._fields[::-1] + + # Calculate the overall field length + if self.len == 0: + bl_sum = sum([f.bl for f in self._fields]) + self.len = bl_sum // 8 + if bl_sum % 8 > 0: + self.len += 1 + + # Re-define self.get_len() since we always know the length + self.get_len = lambda vals, data: self.len + + # Pre-calculate offset and mask for each field + offset = self.len * 8 + for f in self._fields: + if f.bl > offset: + raise ProtocolError(f, 'BitFieldSet overflow') + f.offset = offset - f.bl + f.mask = 2 ** f.bl - 1 + offset -= f.bl + + def _from_bytes(self, vals: dict, data: bytes) -> None: + blob = int.from_bytes(data, byteorder='big') # intentionally using 'big' here + for f in self._fields: + f.dec_val(vals, blob) + + def _to_bytes(self, vals: dict) -> bytes: + blob = 0x00 + for f in self._fields: # TODO: use functools.reduce()? + blob |= f.enc_val(vals) + return blob.to_bytes(self.len, byteorder='big') + +class BitField: + ''' One field in a BitFieldSet. ''' + + # Special fields for BitFieldSet + offset: int = 0 + mask: int = 0 + + class Spare: + ''' Spare filling in a BitFieldSet. ''' + + def __init__(self, bl: int) -> None: + self.name = None + self.bl = bl + + def enc_val(self, vals: dict) -> int: + return 0 + + def dec_val(self, vals: dict, blob: int) -> None: + pass # Just ignore it + + def __init__(self, name: str, bl: int, **kw) -> None: + if bl < 1: # Ensure proper length + raise ProtocolError('Incorrect bit-field length') + + self.name = name + self.bl = bl + + # (Optional) fixed value for encoding and decoding + self.val: Optional[int] = kw.get('val', None) + + def enc_val(self, vals: dict) -> int: + if self.val is None: + val = vals[self.name] + else: + val = self.val + return (val & self.mask) << self.offset + + def dec_val(self, vals: dict, blob: int) -> None: + vals[self.name] = (blob >> self.offset) & self.mask + if (self.val is not None) and (vals[self.name] != self.val): + raise DecodeError('Unexpected value %d, expected %d' + % (vals[self.name], self.val)) + + +class Envelope: + ''' A group of related fields. ''' + + STRUCT: Tuple[Codec, ...] = () + + def __init__(self, check_len: bool = True): + # TODO: ensure uniqueue field names in self.STRUCT + self.c: dict = { } + self.check_len = check_len + + def __getitem__(self, key: str) -> Any: + return self.c[key] + + def __setitem__(self, key: str, val: Any) -> None: + self.c[key] = val + + def __delitem__(self, key: str) -> None: + del self.c[key] + + def check(self, vals: dict) -> None: + ''' Check the content before encoding and after decoding. + Raise exceptions (e.g. ValueError) if something is wrong. + + Do not assert for every possible error (e.g. a negative value + for a Uint field) if an exception will be thrown by the field's + to_bytes() method anyway. Only additional constraints here. + ''' + + def from_bytes(self, data: bytes) -> int: + self.c.clear() # forget the old content + return self._from_bytes(self.c, data) + + def to_bytes(self) -> bytes: + return self._to_bytes(self.c) + + def _from_bytes(self, vals: dict, data: bytes, offset: int = 0) -> int: + try: # Fields throw exceptions + for f in self.STRUCT: + offset += f.from_bytes(vals, data[offset:]) + except Exception as e: + # Add contextual info + raise DecodeError(self, f, offset) from e + if self.check_len and len(data) != offset: + raise DecodeError(self, 'Unhandled tail octets: %s' + % data[offset:].hex()) + self.check(vals) # Check the content after decoding (raises exceptions) + return offset + + def _to_bytes(self, vals: dict) -> bytes: + def proc(f: Codec): + try: # Fields throw exceptions + return f.to_bytes(vals) + except Exception as e: + # Add contextual info + raise EncodeError(self, f) from e + self.check(vals) # Check the content before encoding (raises exceptions) + return b''.join([proc(f) for f in self.STRUCT]) + + class F(Field): + ''' Field wrapper. ''' + + def __init__(self, e: 'Envelope', name: str, **kw) -> None: + Field.__init__(self, name, **kw) + self.e = e + + def _from_bytes(self, vals: dict, data: bytes) -> None: + vals[self.name] = { } + self.e._from_bytes(vals[self.name], data) + + def _to_bytes(self, vals: dict) -> bytes: + return self.e._to_bytes(self.get_val(vals)) + + def f(self, name: str, **kw) -> Field: + return self.F(self, name, **kw) + + +class Sequence: + ''' A sequence of repeating elements (e.g. TLVs). ''' + + # The item of sequence + ITEM: Optional[Envelope] = None + + def __init__(self, **kw) -> None: + if (self.ITEM is None) and ('item' not in kw): + raise ProtocolError('Missing Sequence item') + self._item = kw.get('item', self.ITEM) # type: Envelope + self._item.check_len = False + + def from_bytes(self, data: bytes) -> list: + proc = self._item._from_bytes + vseq, offset = [], 0 + length = len(data) + + while offset < length: + vseq.append({ }) # new item of sequence + offset += proc(vseq[-1], data[offset:]) + + return vseq + + def to_bytes(self, vseq: list) -> bytes: + proc = self._item._to_bytes + return b''.join([proc(v) for v in vseq]) + + class F(Field): + ''' Field wrapper. ''' + + def __init__(self, s: 'Sequence', name: str, **kw) -> None: + Field.__init__(self, name, **kw) + self.s = s + + def _from_bytes(self, vals: dict, data: bytes) -> None: + vals[self.name] = self.s.from_bytes(data) + + def _to_bytes(self, vals: dict) -> bytes: + return self.s.to_bytes(self.get_val(vals)) + + def f(self, name: str, **kw) -> Field: + return self.F(self, name, **kw) diff --git a/src/target/trx_toolkit/test_codec.py b/src/target/trx_toolkit/test_codec.py new file mode 100644 index 0000000..e0649d8 --- /dev/null +++ b/src/target/trx_toolkit/test_codec.py @@ -0,0 +1,592 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +''' +Unit tests for declarative message codec. +''' + +# (C) 2021 by sysmocom - s.f.m.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 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. + +import unittest +import struct +import codec + +class TestField(codec.Field): + DEF_PARAMS = { 'key' : 0xde } + DEF_LEN = 4 + + @staticmethod + def xor(data: bytes, key: int = 0x00): + return bytes([x ^ key for x in data]) + + def _from_bytes(self, vals: dict, data: bytes) -> None: + vals[self.name] = self.xor(data, self.p['key']) + + def _to_bytes(self, vals: dict) -> bytes: + return self.xor(self.get_val(vals), self.p['key']) + +class Field(unittest.TestCase): + MAGIC = b'\xde\xad\xbe\xef' + + def test_to_bytes(self): + vals = { 'magic' : self.MAGIC, 'other' : 'unrelated' } + encoded_de = TestField.xor(self.MAGIC, 0xde) + encoded_88 = TestField.xor(self.MAGIC, 0x88) + + with self.subTest('default length=4, default key=0xde'): + field = TestField('magic') + self.assertEqual(field.to_bytes(vals), encoded_de) + + with self.subTest('different length=2, default key=0xde'): + field = TestField('magic', len=2) + vals['magic'] = vals['magic'][:2] + self.assertEqual(field.to_bytes(vals), encoded_de[:2]) + + with self.subTest('EncodeError due to length mismatch'): + field = TestField('magic', len=8) + with self.assertRaises(codec.EncodeError): + field.to_bytes(vals) + + def test_from_bytes(self): + encoded_de = TestField.xor(self.MAGIC, 0xde) + b'\xff' * 60 + encoded_88 = TestField.xor(self.MAGIC, 0x88) + b'\xff' * 60 + vals = { 'magic' : 'overrien', 'other' : 'unchanged' } + + with self.subTest('default length=4, default key=0xde'): + field = TestField('magic') + offset = field.from_bytes(vals, encoded_de) + self.assertEqual(vals['other'], 'unchanged') + self.assertEqual(vals['magic'], self.MAGIC) + self.assertEqual(offset, len(self.MAGIC)) + + with self.subTest('default length=4, different key=0x88'): + field = TestField('magic', key=0x88) + offset = field.from_bytes(vals, encoded_88) + self.assertEqual(vals['other'], 'unchanged') + self.assertEqual(vals['magic'], self.MAGIC) + self.assertEqual(offset, len(self.MAGIC)) + + with self.subTest('different length=2, default key=0xde'): + field = TestField('magic', len=2) + offset = field.from_bytes(vals, encoded_de) + self.assertEqual(vals['other'], 'unchanged') + self.assertEqual(vals['magic'], self.MAGIC[:2]) + self.assertEqual(offset, 2) + + with self.subTest('full length, different key=0x88'): + field = TestField('magic', len=0, key=0x88) + offset = field.from_bytes(vals, encoded_88) + self.assertEqual(vals['other'], 'unchanged') + self.assertEqual(vals['magic'], self.MAGIC + b'\x77' * 60) + self.assertEqual(offset, len(encoded_88)) + + with self.subTest('DecodeError due to short read'): + field = TestField('magic', len=4) + with self.assertRaises(codec.DecodeError): + field.from_bytes(vals, b'\x00') + + def test_get_pres(self): + vals = { 'magic' : self.MAGIC } + + with self.subTest('to_bytes() for a non-existing field'): + field = TestField('not-there') + with self.assertRaises(KeyError): + field.to_bytes(vals) + + with self.subTest('to_bytes() for a field with get_pres()'): + field = TestField('magic', key=0x00) + field.get_pres = lambda v: not v['omit'] + + data = field.to_bytes({ **vals, 'omit' : False }) + self.assertEqual(data, self.MAGIC) + + data = field.to_bytes({ **vals, 'omit' : True }) + self.assertEqual(data, b'') + + with self.subTest('from_bytes() for a field with get_pres()'): + field = TestField('magic', key=0x00) + field.get_pres = lambda v: not v['omit'] + + vals = { 'omit' : False } + offset = field.from_bytes(vals, self.MAGIC) + self.assertEqual(vals['magic'], self.MAGIC) + self.assertEqual(offset, len(self.MAGIC)) + + vals = { 'omit' : True } + offset = field.from_bytes(vals, self.MAGIC) + self.assertFalse('magic' in vals) + self.assertEqual(offset, 0) + + def test_get_len(self): + vals = { 'len' : 32, 'unrelated' : 'foo' } + + field = TestField('magic', key=0x00) + field.get_len = lambda v, _: v['len'] + + with self.subTest('not enough octets in the buffer: 16 < 32'): + with self.assertRaises(codec.DecodeError): + field.from_bytes(vals, b'\xff' * 16) + + with self.subTest('more than enough octets in the buffer'): + offset = field.from_bytes(vals, b'\xff' * 64) + self.assertEqual(vals['magic'], b'\xff' * 32) + self.assertEqual(offset, 32) + + with self.subTest('length field does not exist'): + with self.assertRaises(KeyError): + field.from_bytes({ }, b'\xff' * 64) + + def test_get_val(self): + field = TestField('magic', key=0x00, len=0) + field.get_val = lambda v: v.get('val', self.MAGIC) + + with self.subTest('value is present in the dict'): + data = field.to_bytes({ 'val' : b'\xd0\xde' }) + self.assertEqual(data, b'\xd0\xde') + + with self.subTest('value is not present in the dict'): + data = field.to_bytes({ }) + self.assertEqual(data, self.MAGIC) + +class Buf(unittest.TestCase): + MAGIC = b'\xde\xad' * 4 + + def test_to_bytes(self): + vals = { 'buf' : self.MAGIC } + + with self.subTest('with no length constraints'): + field = codec.Buf('buf') # default: len=0 + self.assertEqual(field.to_bytes(vals), self.MAGIC) + + with self.subTest('with length constraints'): + field = codec.Buf('buf', len=len(self.MAGIC)) + self.assertEqual(field.to_bytes(vals), self.MAGIC) + + with self.subTest('EncodeError due to length mismatch'): + field = codec.Buf('buf', len=4) + with self.assertRaises(codec.EncodeError): + field.to_bytes(vals) + + def test_from_bytes(self): + vals = { } + + with self.subTest('with no length constraints'): + field = codec.Buf('buf') # default: len=0 + offset = field.from_bytes(vals, self.MAGIC) + self.assertEqual(vals['buf'], self.MAGIC) + self.assertEqual(offset, len(self.MAGIC)) + + with self.subTest('with length constraints'): + field = codec.Buf('buf', len=2) + offset = field.from_bytes(vals, self.MAGIC) + self.assertEqual(vals['buf'], self.MAGIC[:2]) + self.assertEqual(offset, len(self.MAGIC[:2])) + + with self.subTest('DecodeError due to not enough bytes'): + field = codec.Buf('buf', len=64) + with self.assertRaises(codec.DecodeError): + field.from_bytes(vals, self.MAGIC) + +class Spare(unittest.TestCase): + # Fixed length with custom filler + SAA = codec.Spare('pad', len=4, filler=b'\xaa') + # Auto-calculated length with custom filler + SFF = codec.Spare('pad', filler=b'\xff') + SFF.get_len = lambda v, _: v['len'] + # Fixed length with default filler + S00 = codec.Spare('pad', len=2) + + def test_to_bytes(self): + self.assertEqual(self.SFF.to_bytes({ 'len' : 8 }), b'\xff' * 8) + self.assertEqual(self.SAA.to_bytes({ }), b'\xaa' * 4) + self.assertEqual(self.S00.to_bytes({ }), b'\x00' * 2) + + def test_from_bytes(self): + with self.assertRaises(codec.DecodeError): + self.S00.from_bytes({ }, b'\x00') # Short read + self.assertEqual(self.SFF.from_bytes({ 'len' : 8 }, b'\xff' * 8), 8) + self.assertEqual(self.SAA.from_bytes({ }, b'\xaa' * 64), 4) + self.assertEqual(self.S00.from_bytes({ }, b'\x00' * 64), 2) + +class Uint(unittest.TestCase): + def _test_uint(self, field, fmt, vals): + for i in vals: + with self.subTest('to_bytes()'): + val = field.to_bytes({ field.name : i }) + self.assertEqual(val, struct.pack(fmt, i)) + + with self.subTest('from_bytes()'): + data, parsed = struct.pack(fmt, i), { } + offset = field.from_bytes(parsed, data) + self.assertEqual(offset, len(data)) + self.assertEqual(parsed[field.name], i) + + def test_uint8(self): + self._test_uint(codec.Uint('foo'), 'B', range(2 ** 8)) + + def test_int8(self): + self._test_uint(codec.Int('foo'), 'b', range(-128, 128)) + + def test_uint16(self): + vals = (0, 65, 128, 255, 512, 1023, 2 ** 16 - 1) + self._test_uint(codec.Uint16BE('foo'), '>H', vals) + self._test_uint(codec.Uint16LE('foo'), 'h', vals) + self._test_uint(codec.Int16LE('foo'), 'I', vals) + self._test_uint(codec.Uint32LE('foo'), 'i', vals) + self._test_uint(codec.Int32LE('foo'), ' dict: + vals = { } + s.from_bytes(vals, data) + return vals + + def test_len_auto(self): + with self.subTest('1 + 2 = 3 bits => 1 octet (with padding)'): + s = codec.BitFieldSet(set=( + codec.BitField('f1', bl=1), + codec.BitField('f2', bl=2), + )) + self.assertEqual(s.len, 1) + + with self.subTest('4 + 2 + 2 = 8 bits => 1 octet'): + s = codec.BitFieldSet(set=( + codec.BitField('f4', bl=4), + codec.BitField('f2a', bl=2), + codec.BitField('f2b', bl=2), + )) + self.assertEqual(s.len, 1) + + with self.subTest('12 + 4 + 2 = 18 bits => 3 octets (with padding)'): + s = codec.BitFieldSet(set=( + codec.BitField('f12', bl=12), + codec.BitField('f4', bl=4), + codec.BitField('f2', bl=2), + )) + self.assertEqual(s.len, 3) + + def test_overflow(self): + with self.assertRaises(codec.ProtocolError): + s = codec.BitFieldSet(len=1, set=( + codec.BitField('f6', bl=6), + codec.BitField('f4', bl=4), + )) + + def test_offset_mask(self): + calc = lambda s: [(f.name, f.offset, f.mask) for f in s._fields] + + with self.subTest('16 bit total (MSB): f4a + f8 + f4b'): + om = [('f4a', 8 + 4, 0x0f), ('f8', 4, 0xff), ('f4b', 0, 0x0f)] + self.assertEqual(len(self.S16._fields), 3) + self.assertEqual(calc(self.S16), om) + + with self.subTest('8 bit total (MSB): f4 + f1 + f3'): + om = [('f4', 1 + 3, 0x0f), ('f1', 3, 0x01), ('f3', 0, 0x07)] + self.assertEqual(len(self.S8M._fields), 3) + self.assertEqual(calc(self.S8M), om) + + with self.subTest('8 bit total (LSB): f4 + f1 + f3'): + om = [('f3', 1 + 4, 0x07), ('f1', 4, 0x01), ('f4', 0, 0x0f)] + self.assertEqual(len(self.S8L._fields), 3) + self.assertEqual(calc(self.S8L), om) + + with self.subTest('8 bit total (LSB): s4 + f4'): + om = [(None, 4, 0x0f), ('f4', 0, 0x0f)] + self.assertEqual(len(self.S8P._fields), 2) + self.assertEqual(calc(self.S8P), om) + + def test_to_bytes(self): + with self.subTest('16 bit total (MSB): f4a + f8 + f4b'): + vals = { 'f4a' : 0x0f, 'f8' : 0xff, 'f4b' : 0x0f } + self.assertEqual(self.S16.to_bytes(vals), b'\xff\xff') + vals = { 'f4a' : 0x00, 'f8' : 0x00, 'f4b' : 0x00 } + self.assertEqual(self.S16.to_bytes(vals), b'\x00\x00') + vals = { 'f4a' : 0x0f, 'f8' : 0x00, 'f4b' : 0x0f } + self.assertEqual(self.S16.to_bytes(vals), b'\xf0\x0f') + vals = { 'f4a' : 0x00, 'f8' : 0xff, 'f4b' : 0x00 } + self.assertEqual(self.S16.to_bytes(vals), b'\x0f\xf0') + + with self.subTest('8 bit total (MSB): f4 + f1 + f3'): + vals = { 'f4' : 0x0f, 'f1' : 0x01, 'f3' : 0x07 } + self.assertEqual(self.S8M.to_bytes(vals), b'\xff') + vals = { 'f4' : 0x00, 'f1' : 0x00, 'f3' : 0x00 } + self.assertEqual(self.S8M.to_bytes(vals), b'\x00') + vals = { 'f4' : 0x0f, 'f1' : 0x00, 'f3' : 0x00 } + self.assertEqual(self.S8M.to_bytes(vals), b'\xf0') + + with self.subTest('8 bit total (LSB): f4 + f1 + f3'): + vals = { 'f4' : 0x0f, 'f1' : 0x01, 'f3' : 0x07 } + self.assertEqual(self.S8L.to_bytes(vals), b'\xff') + vals = { 'f4' : 0x00, 'f1' : 0x00, 'f3' : 0x00 } + self.assertEqual(self.S8L.to_bytes(vals), b'\x00') + vals = { 'f4' : 0x0f, 'f1' : 0x00, 'f3' : 0x00 } + self.assertEqual(self.S8L.to_bytes(vals), b'\x0f') + + def test_from_bytes(self): + pad = b'\xff' * 64 + + with self.subTest('16 bit total (MSB): f4a + f8 + f4b'): + vals = { 'f4a' : 0x0f, 'f8' : 0xff, 'f4b' : 0x0f } + self.assertEqual(self.from_bytes(self.S16, b'\xff\xff' + pad), vals) + vals = { 'f4a' : 0x00, 'f8' : 0x00, 'f4b' : 0x00 } + self.assertEqual(self.from_bytes(self.S16, b'\x00\x00' + pad), vals) + vals = { 'f4a' : 0x0f, 'f8' : 0x00, 'f4b' : 0x0f } + self.assertEqual(self.from_bytes(self.S16, b'\xf0\x0f' + pad), vals) + vals = { 'f4a' : 0x00, 'f8' : 0xff, 'f4b' : 0x00 } + self.assertEqual(self.from_bytes(self.S16, b'\x0f\xf0' + pad), vals) + + with self.subTest('8 bit total (MSB): f4 + f1 + f3'): + vals = { 'f4' : 0x0f, 'f1' : 0x01, 'f3' : 0x07 } + self.assertEqual(self.from_bytes(self.S8M, b'\xff' + pad), vals) + vals = { 'f4' : 0x00, 'f1' : 0x00, 'f3' : 0x00 } + self.assertEqual(self.from_bytes(self.S8M, b'\x00' + pad), vals) + vals = { 'f4' : 0x0f, 'f1' : 0x00, 'f3' : 0x00 } + self.assertEqual(self.from_bytes(self.S8M, b'\xf0' + pad), vals) + + with self.subTest('8 bit total (LSB): f4 + f1 + f3'): + vals = { 'f4' : 0x0f, 'f1' : 0x01, 'f3' : 0x07 } + self.assertEqual(self.from_bytes(self.S8L, b'\xff' + pad), vals) + vals = { 'f4' : 0x00, 'f1' : 0x00, 'f3' : 0x00 } + self.assertEqual(self.from_bytes(self.S8L, b'\x00' + pad), vals) + vals = { 'f4' : 0x0f, 'f1' : 0x00, 'f3' : 0x00 } + self.assertEqual(self.from_bytes(self.S8L, b'\x0f' + pad), vals) + + def test_to_bytes_val(self): + with self.subTest('fixed values in absence of user-supplied values'): + vals = { 'f3' : 0x00 } # | { 'f4' : 2, 'f1' : 0 } + self.assertEqual(self.S8V.to_bytes(vals), b'\x20') + + with self.subTest('fixed values take precedence'): + vals = { 'f4' : 1, 'f1' : 1, 'f3' : 0 } + self.assertEqual(self.S8V.to_bytes(vals), b'\x20') + + def test_from_bytes_val(self): + with self.assertRaises(codec.DecodeError): + self.S8V.from_bytes({ }, b'\xf0') # 'f4': 15 vs 2 + + with self.assertRaises(codec.DecodeError): + self.S8V.from_bytes({ }, b'\x08') # 'f1': 1 vs 0 + + # Field 'f3' takes any value, no exceptions shall be raised + for i in range(8): + data, vals = bytes([0x20 + i]), { 'f4' : 2, 'f1' : 0, 'f3' : i } + self.assertEqual(self.from_bytes(self.S8V, data), vals) + + def test_to_bytes_spare(self): + self.assertEqual(self.S8P.to_bytes({ 'f4' : 0x00 }), b'\x00') + self.assertEqual(self.S8P.to_bytes({ 'f4' : 0x0f }), b'\x0f') + self.assertEqual(self.S8P.to_bytes({ 'f4' : 0xff }), b'\x0f') + + def test_from_bytes_spare(self): + self.assertEqual(self.from_bytes(self.S8P, b'\x00'), { 'f4' : 0x00 }) + self.assertEqual(self.from_bytes(self.S8P, b'\x0f'), { 'f4' : 0x0f }) + self.assertEqual(self.from_bytes(self.S8P, b'\xff'), { 'f4' : 0x0f }) + +class TestPDU(codec.Envelope): + STRUCT = ( + codec.BitFieldSet(len=2, set=( + codec.BitField('ver', bl=4), + codec.BitField('flag', bl=1), + )), + codec.Uint16BE('len'), + codec.Buf('data'), + codec.Buf('tail', len=2), + ) + + def __init__(self, *args, **kw): + codec.Envelope.__init__(self, *args, **kw) + self.STRUCT[-3].get_val = lambda v: len(v['data']) + self.STRUCT[-2].get_len = lambda v, _: v['len'] + self.STRUCT[-1].get_pres = lambda v: bool(v['flag']) + + def check(self, vals: dict) -> None: + if not vals['ver'] in (0, 1, 2): + raise ValueError('Unknown version %d' % vals['ver']) + +class Envelope(unittest.TestCase): + def test_rest_octets(self): + pdu = TestPDU(check_len=False) + pdu.from_bytes(b'\x00' * 64) + + with self.assertRaises(codec.DecodeError): + pdu = TestPDU(check_len=True) + pdu.from_bytes(b'\x00' * 64) # 'len' : 0 + + def test_field_raises(self): + pdu = TestPDU() + with self.assertRaises(codec.EncodeError): + pdu.c = { 'ver' : 0, 'flag' : 1, 'data' : b'\xff' * 16 } + pdu.to_bytes() # KeyError: 'tail' not found + + def test_to_bytes(self): + pdu = TestPDU() + + # No content in the new instances + self.assertEqual(pdu.c, { }) + + pdu.c = { 'ver' : 0, 'flag' : 1, 'data' : b'', 'tail' : b'\xde\xbe' } + self.assertEqual(pdu.to_bytes(), b'\x08\x00\x00\x00' + b'\xde\xbe') + + pdu.c = { 'ver' : 1, 'flag' : 0, 'data' : b'\xff' * 15 } + self.assertEqual(pdu.to_bytes(), b'\x10\x00\x00\x0f' + b'\xff' * 15) + + pdu.c = { 'ver' : 2, 'flag' : 1, 'data' : b'\xf0', 'tail' : b'\xbe\xed' } + self.assertEqual(pdu.to_bytes(), b'\x28\x00\x00\x01\xf0\xbe\xed') + + def test_from_bytes(self): + pdu = TestPDU() + + # No content in the new instances + self.assertEqual(pdu.c, { }) + + c = { 'ver' : 0, 'flag' : 1, 'len' : 0, 'data' : b'', 'tail' : b'\xde\xbe' } + pdu.from_bytes(b'\x08\x00\x00\x00' + b'\xde\xbe') + self.assertEqual(pdu.c, c) + + c = { 'ver' : 1, 'flag' : 0, 'len' : 15, 'data' : b'\xff' * 15 } + pdu.from_bytes(b'\x10\x00\x00\x0f' + b'\xff' * 15) + self.assertEqual(pdu.c, c) + + c = { 'ver' : 2, 'flag' : 1, 'len' : 1, 'data' : b'\xf0', 'tail' : b'\xbe\xed' } + pdu.from_bytes(b'\x28\x00\x00\x01\xf0\xbe\xed') + self.assertEqual(pdu.c, c) + + def test_to_bytes_check(self): + pdu = TestPDU() + + pdu.c = { 'ver' : 8, 'flag' : 1, 'data' : b'', 'tail' : b'\xde\xbe' } + with self.assertRaises(ValueError): + pdu.to_bytes() + + def test_from_bytes_check(self): + pdu = TestPDU() + + with self.assertRaises(ValueError): + pdu.from_bytes(b'\xf0\x00\x00\x00') + +class Sequence(unittest.TestCase): + class TLV(codec.Envelope): + STRUCT = ( + codec.Uint('T'), + codec.Uint('L'), + codec.Buf('V'), + ) + + def __init__(self, *args, **kw) -> None: + codec.Envelope.__init__(self, *args, **kw) + self.STRUCT[-2].get_val = lambda v: len(v['V']) + self.STRUCT[-1].get_len = lambda v, _: v['L'] + + # Sequence of TLVs + SEQ = codec.Sequence(item=TLV()) + + Vseq, Bseq = [ + { 'T' : 0xde, 'L' : 4, 'V' : b'\xde\xad\xbe\xef' }, + { 'T' : 0xbe, 'L' : 2, 'V' : b'\xbe\xef' }, + { 'T' : 0xbe, 'L' : 2, 'V' : b'\xef\xbe' }, + { 'T' : 0x00, 'L' : 0, 'V' : b'' }, + ], b''.join([ + b'\xde\x04\xde\xad\xbe\xef', + b'\xbe\x02\xbe\xef', + b'\xbe\x02\xef\xbe', + b'\x00\x00', + ]) + + def test_to_bytes(self): + res = self.SEQ.to_bytes(self.Vseq) + self.assertEqual(res, self.Bseq) + + def test_from_bytes(self): + res = self.SEQ.from_bytes(self.Bseq) + self.assertEqual(res, self.Vseq) + +if __name__ == '__main__': + unittest.main() -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Gerrit-Change-Number: 23135 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria 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 Mon Apr 12 13:08:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:08:52 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: make codec.py work with EOL Python 3.5 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23677 ) Change subject: trx_toolkit: make codec.py work with EOL Python 3.5 ...................................................................... trx_toolkit: make codec.py work with EOL Python 3.5 Our build system is based on Debian 9 and EOL Python 3.5, so we have to maintain backwards compatibility (sigh). Some type hints moved to comments, some had to be commented out completely. Hopefully, we can 'un-vandalize' the code by reverting this change once there will be no requirement to support EOL stuff. Change-Id: I7211cfbb7549b6e700aa3dd44464ff762fd51185 Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/codec.py 1 file changed, 12 insertions(+), 12 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/target/trx_toolkit/codec.py b/src/target/trx_toolkit/codec.py index 7a42c9b..9387592 100644 --- a/src/target/trx_toolkit/codec.py +++ b/src/target/trx_toolkit/codec.py @@ -55,17 +55,17 @@ ''' Base class representing one field in a Message. ''' # Default length (0 means the whole buffer) - DEF_LEN: int = 0 + DEF_LEN = 0 # type: int # Default parameters - DEF_PARAMS: dict = { } + DEF_PARAMS = { } # type: dict # Presence of a field during decoding and encoding - get_pres: Callable[[dict], bool] + ## get_pres: Callable[[dict], bool] # Length of a field for self.from_bytes() - get_len: Callable[[dict, bytes], int] + ## get_len: Callable[[dict, bytes], int] # Value of a field for self.to_bytes() - get_val: Callable[[dict], Any] + ## get_val: Callable[[dict], Any] def __init__(self, name: str, **kw) -> None: self.name = name @@ -201,7 +201,7 @@ } # To be defined by derived types - STRUCT: Tuple['BitField', ...] = () + STRUCT = () # type: Tuple['BitField', ...] def __init__(self, **kw) -> None: Field.__init__(self, self.__class__.__name__, **kw) @@ -248,8 +248,8 @@ ''' One field in a BitFieldSet. ''' # Special fields for BitFieldSet - offset: int = 0 - mask: int = 0 + offset = 0 # type: int + mask = 0 # type: int class Spare: ''' Spare filling in a BitFieldSet. ''' @@ -272,7 +272,7 @@ self.bl = bl # (Optional) fixed value for encoding and decoding - self.val: Optional[int] = kw.get('val', None) + self.val = kw.get('val', None) # type: Optional[int] def enc_val(self, vals: dict) -> int: if self.val is None: @@ -291,11 +291,11 @@ class Envelope: ''' A group of related fields. ''' - STRUCT: Tuple[Codec, ...] = () + STRUCT = () # type: Tuple[Codec, ...] def __init__(self, check_len: bool = True): # TODO: ensure uniqueue field names in self.STRUCT - self.c: dict = { } + self.c = { } # type: dict self.check_len = check_len def __getitem__(self, key: str) -> Any: @@ -368,7 +368,7 @@ ''' A sequence of repeating elements (e.g. TLVs). ''' # The item of sequence - ITEM: Optional[Envelope] = None + ITEM = None # type: Optional[Envelope] def __init__(self, **kw) -> None: if (self.ITEM is None) and ('item' not in kw): -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7211cfbb7549b6e700aa3dd44464ff762fd51185 Gerrit-Change-Number: 23677 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 13:08:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:08:53 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv0/v1 PDUs using declarative codec In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23137 ) Change subject: trx_toolkit: define TRXDv0/v1 PDUs using declarative codec ...................................................................... trx_toolkit: define TRXDv0/v1 PDUs using declarative codec Change-Id: I739ae5da22c603fb2cf1e84d3a79fb1a6e7343b6 Related: OS#4006, SYS#4895 --- A src/target/trx_toolkit/trxd_proto.py 1 file changed, 120 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/target/trx_toolkit/trxd_proto.py b/src/target/trx_toolkit/trxd_proto.py new file mode 100644 index 0000000..aef3351 --- /dev/null +++ b/src/target/trx_toolkit/trxd_proto.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- + +''' +TRXD PDU definitions based on declarative codec. +''' + +# TRX Toolkit +# +# (C) 2021 by sysmocom - s.f.m.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 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. + +import codec + +class Header(codec.BitFieldSet): + ''' Header constructor for TRXD PDUs. ''' + + def __init__(self, ver: int): + codec.BitFieldSet.__init__(self, len=1, set=( + codec.BitField('ver', bl=4, val=ver), + codec.BitField.Pad(bl=1), # RFU + codec.BitField('tn', bl=3), + )) + +class MTS(codec.BitFieldSet): + ''' Modulation and Training Sequence. ''' + + DEF_LEN = 1 + STRUCT = ( + codec.BitField('nope', bl=1), + codec.BitField('mod', bl=4), + codec.BitField('tsc', bl=3), + ) + + @staticmethod + def get_burst_len(mod: int) -> int: + ''' Get burst length by modulation type. ''' + + GMSK_BURST_LEN = 148 + + if (mod >> 2) in (0b00, 0b11): # GMSK or AQPSK + return 1 * GMSK_BURST_LEN + elif (mod >> 1) == 0b010: # 8-PSK + return 3 * GMSK_BURST_LEN + elif (mod >> 1) == 0b100: # 16QAM + return 4 * GMSK_BURST_LEN + elif (mod >> 1) == 0b101: # 32QAM + return 5 * GMSK_BURST_LEN + elif mod == 0b0110: # GMSK (Access Burst) + return 1 * GMSK_BURST_LEN + raise ValueError('Unknown modulation type') + +class BurstBits(codec.Buf): + ''' Soft-/hard-bits with variable length. ''' + + def __init__(self, name: str, *args, **kw): + codec.Buf.__init__(self, name, *args, **kw) + + # This field has a variable length that depends on moduletion type + self.get_len = lambda v, _: MTS.get_burst_len(v['mod']) + # This field is not present in NOPE / IDLE indications + self.get_pres = lambda v: not v['nope'] + + +class PDUv0Rx(codec.Envelope): + STRUCT = ( + Header(ver=0), + codec.Uint32BE('fn'), + codec.Uint('rssi', mult=-1), + codec.Int16BE('toa256'), + codec.Buf('soft-bits'), + codec.Buf('pad'), # Optional + ) + + def __init__(self, *args, **kw): + codec.Envelope.__init__(self, *args, **kw) + + # Field 'soft-bits' is either 148 (GMSK) or 444 (8-PSK) octets long + self.STRUCT[-2].get_len = lambda _, data: 444 if len(data) > 148 else 148 + +class PDUv0Tx(codec.Envelope): + STRUCT = ( + Header(ver=0), + codec.Uint32BE('fn'), + codec.Uint('pwr'), + codec.Buf('hard-bits'), + ) + + +class PDUv1Rx(codec.Envelope): + STRUCT = ( + Header(ver=1), + codec.Uint32BE('fn'), + codec.Uint('rssi', mult=-1), + codec.Int16BE('toa256'), + MTS(), + codec.Int16BE('cir'), + BurstBits('soft-bits'), + ) + +class PDUv1Tx(PDUv0Tx): + # Same structure as PDUv0Tx, only the version is different + def __init__(self, *args, **kw): + PDUv0Tx.__init__(self, *args, **kw) + self.STRUCT[0]._fields[0].val = 1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23137 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I739ae5da22c603fb2cf1e84d3a79fb1a6e7343b6 Gerrit-Change-Number: 23137 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 13:09:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:09:14 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv2 PDUs using declarative codec In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23678 ) Change subject: trx_toolkit: define TRXDv2 PDUs using declarative codec ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Gerrit-Change-Number: 23678 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 13:09: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 Apr 12 13:09:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:09:16 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: define TRXDv2 PDUs using declarative codec In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23678 ) Change subject: trx_toolkit: define TRXDv2 PDUs using declarative codec ...................................................................... trx_toolkit: define TRXDv2 PDUs using declarative codec Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/trxd_proto.py 1 file changed, 88 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/target/trx_toolkit/trxd_proto.py b/src/target/trx_toolkit/trxd_proto.py index aef3351..80d8de8 100644 --- a/src/target/trx_toolkit/trxd_proto.py +++ b/src/target/trx_toolkit/trxd_proto.py @@ -30,12 +30,20 @@ class Header(codec.BitFieldSet): ''' Header constructor for TRXD PDUs. ''' - def __init__(self, ver: int): - codec.BitFieldSet.__init__(self, len=1, set=( - codec.BitField('ver', bl=4, val=ver), - codec.BitField.Pad(bl=1), # RFU + def __init__(self, ver: int, batched: bool = False): + f = [ # Dynamically generated field list + codec.BitField('ver', bl=4, val=ver) if not batched + else codec.BitField.Spare(bl=4), # RFU + codec.BitField.Spare(bl=1), codec.BitField('tn', bl=3), - )) + ] + + if ver >= 2: # TRXDv2 and higher + f.append(codec.BitField('batch', bl=1)) + f.append(codec.BitField.Spare(bl=1)) + f.append(codec.BitField('trxn', bl=6)) + + codec.BitFieldSet.__init__(self, set=tuple(f)) class MTS(codec.BitFieldSet): ''' Modulation and Training Sequence. ''' @@ -53,8 +61,10 @@ GMSK_BURST_LEN = 148 - if (mod >> 2) in (0b00, 0b11): # GMSK or AQPSK + if (mod >> 2) == 0b00: # GMSK return 1 * GMSK_BURST_LEN + elif (mod >> 2) == 0b11: # AQPSK + return 2 * GMSK_BURST_LEN elif (mod >> 1) == 0b010: # 8-PSK return 3 * GMSK_BURST_LEN elif (mod >> 1) == 0b100: # 16QAM @@ -65,6 +75,35 @@ return 1 * GMSK_BURST_LEN raise ValueError('Unknown modulation type') +class Power(codec.Codec): + ''' SCPIR and Tx power reduction (TRXDv2 and higher). + + +-----------------+---------------------------------+ + | 7 6 5 4 3 2 1 0 | Description | + +-----------------+---------------------------------+ + | . . . . x x x x | Power REDuction (in 2 dB steps) | + +-----------------+---------------------------------+ + | . x x x . . . . | SCPIR value (in 2 dB steps) | + +-----------------+---------------------------------+ + | x . . . . . . . | SCPIR sign indicator | + +-----------------+---------------------------------+ + + ''' + + def from_bytes(self, vals: dict, data: bytes) -> int: + blob = ord(data) # Convert a byte to an int + vals['red'] = (blob & 0b1111) * 2 + vals['scpir'] = ((blob >> 4) & 0b111) * 2 + if blob & (1 << 7): # negative sign + vals['scpir'] *= -1 + return 1 + + def to_bytes(self, vals: dict) -> bytes: + blob = (vals['red'] & 0b1111) \ + | (abs(vals['scpir']) << 4) // 2 \ + | (0x80 if (vals['scpir'] < 0) else 0x00) + return bytes((blob,)) + class BurstBits(codec.Buf): ''' Soft-/hard-bits with variable length. ''' @@ -118,3 +157,46 @@ def __init__(self, *args, **kw): PDUv0Tx.__init__(self, *args, **kw) self.STRUCT[0]._fields[0].val = 1 + + +class PDUv2Rx(codec.Envelope): + class BPDU(codec.Envelope): + ''' Batched PDU part. ''' + STRUCT = ( + Header(ver=2, batched=True), + MTS(), + codec.Uint('rssi', mult=-1), + codec.Int16BE('toa256'), + codec.Int16BE('cir'), + BurstBits('soft-bits'), + ) + + STRUCT = ( + Header(ver=2), + MTS(), + codec.Uint('rssi', mult=-1), + codec.Int16BE('toa256'), + codec.Int16BE('cir'), + codec.Uint32BE('fn'), + BurstBits('soft-bits'), + codec.Sequence(item=BPDU()).f('bpdu'), + ) + +class PDUv2Tx(codec.Envelope): + class BPDU(codec.Envelope): + ''' Batched PDU part. ''' + STRUCT = ( + Header(ver=2, batched=True), + MTS(), + Power(), + BurstBits('hard-bits'), + ) + + STRUCT = ( + Header(ver=2), + MTS(), + Power(), + codec.Uint32BE('fn'), + BurstBits('hard-bits'), + codec.Sequence(item=BPDU()).f('bpdu'), + ) -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Gerrit-Change-Number: 23678 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 Mon Apr 12 13:37:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:37:19 +0000 Subject: Change in docker-playground[master]: gbproxy: Switch to IP-SNS on the BSS side References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23731 ) Change subject: gbproxy: Switch to IP-SNS on the BSS side ...................................................................... gbproxy: Switch to IP-SNS on the BSS side When testing gbproxy with an IP BSS, we want to use IP-SNS as that is the more relaistic use case in practice. This un-breaks the dockerized tests since I90bd101096979b170c38fa2a80abb80d296c4d2e was merged in osmo-ttcn3-hacks.git Change-Id: Id1324e019b7f148f8d33977c0089e996089e1e59 --- M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 2 files changed, 13 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/31/23731/1 diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index e9de732..e1d6573 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -56,33 +56,39 @@ } GBProxy_Tests.mp_nsconfig_pcu := { { + handle_sns := true, nsvc := { { provider := { ip := { local_ip := "172.18.24.103", + remote_udp_port := 24000, remote_ip := "172.18.24.10" } } } } }, { + handle_sns := true, nsvc := { { provider := { ip := { local_ip := "172.18.24.103", + remote_udp_port := 24000, remote_ip := "172.18.24.10" } } } } }, { + handle_sns := true, nsvc := { { provider := { ip := { local_ip := "172.18.24.103", + remote_udp_port := 24000, remote_ip := "172.18.24.10" } } diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index f6d358e..2eb9824 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -31,15 +31,18 @@ name second nri add 4 ns - bind udp local + bind udp sgsn-side listen 172.18.24.10 23000 - accept-ipaccess nse 101 - ip-sns-bind local + ip-sns-bind sgsn-side ip-sns-remote 172.18.24.103 7777 nse 102 - ip-sns-bind local + ip-sns-bind sgsn-side ip-sns-remote 172.18.24.103 8888 + bind udp bss-side + listen 172.18.24.10 24000 + accept-dynamic-ip-sns + ip-sns-default bind bss-side timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id1324e019b7f148f8d33977c0089e996089e1e59 Gerrit-Change-Number: 23731 Gerrit-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 Apr 12 13:37:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:37:31 +0000 Subject: Change in docker-playground[master]: gbproxy: Switch to IP-SNS on the BSS side In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23731 ) Change subject: gbproxy: Switch to IP-SNS on the BSS side ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id1324e019b7f148f8d33977c0089e996089e1e59 Gerrit-Change-Number: 23731 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 13:37: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 Apr 12 13:37:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 13:37:40 +0000 Subject: Change in docker-playground[master]: gbproxy: Switch to IP-SNS on the BSS side In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23731 ) Change subject: gbproxy: Switch to IP-SNS on the BSS side ...................................................................... gbproxy: Switch to IP-SNS on the BSS side When testing gbproxy with an IP BSS, we want to use IP-SNS as that is the more relaistic use case in practice. This un-breaks the dockerized tests since I90bd101096979b170c38fa2a80abb80d296c4d2e was merged in osmo-ttcn3-hacks.git Change-Id: Id1324e019b7f148f8d33977c0089e996089e1e59 --- M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 2 files changed, 13 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index e9de732..e1d6573 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -56,33 +56,39 @@ } GBProxy_Tests.mp_nsconfig_pcu := { { + handle_sns := true, nsvc := { { provider := { ip := { local_ip := "172.18.24.103", + remote_udp_port := 24000, remote_ip := "172.18.24.10" } } } } }, { + handle_sns := true, nsvc := { { provider := { ip := { local_ip := "172.18.24.103", + remote_udp_port := 24000, remote_ip := "172.18.24.10" } } } } }, { + handle_sns := true, nsvc := { { provider := { ip := { local_ip := "172.18.24.103", + remote_udp_port := 24000, remote_ip := "172.18.24.10" } } diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index f6d358e..2eb9824 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -31,15 +31,18 @@ name second nri add 4 ns - bind udp local + bind udp sgsn-side listen 172.18.24.10 23000 - accept-ipaccess nse 101 - ip-sns-bind local + ip-sns-bind sgsn-side ip-sns-remote 172.18.24.103 7777 nse 102 - ip-sns-bind local + ip-sns-bind sgsn-side ip-sns-remote 172.18.24.103 8888 + bind udp bss-side + listen 172.18.24.10 24000 + accept-dynamic-ip-sns + ip-sns-default bind bss-side timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id1324e019b7f148f8d33977c0089e996089e1e59 Gerrit-Change-Number: 23731 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 Mon Apr 12 14:06:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 14:06:41 +0000 Subject: Change in osmo-bsc[master]: deprecation: use osmo_bts_features_*() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23728 ) Change subject: deprecation: use osmo_bts_features_*() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d Gerrit-Change-Number: 23728 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 14:06: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 Apr 12 14:08:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 14:08:41 +0000 Subject: Change in osmo-pcap[master]: vty: Add space after prompt, as customary References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23732 ) Change subject: vty: Add space after prompt, as customary ...................................................................... vty: Add space after prompt, as customary In all other programs, we have a space after the VTY prompt. Change-Id: I7916c15cc34e41738a5716e4fefbb15e18f02fa7 --- M src/osmo_client_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/32/23732/1 diff --git a/src/osmo_client_vty.c b/src/osmo_client_vty.c index 30158c5..fed9bf6 100644 --- a/src/osmo_client_vty.c +++ b/src/osmo_client_vty.c @@ -46,13 +46,13 @@ static struct cmd_node client_node = { CLIENT_NODE, - "%s(client)#", + "%s(client)# ", 1, }; static struct cmd_node server_node = { CLIENT_SERVER_NODE, - "%s(server)#", + "%s(server)# ", 1, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I7916c15cc34e41738a5716e4fefbb15e18f02fa7 Gerrit-Change-Number: 23732 Gerrit-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 Apr 12 14:10:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 14:10:01 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23730/2/src/osmo-bsc/abis_nm.c File src/osmo-bsc/abis_nm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23730/2/src/osmo-bsc/abis_nm.c at 3025 PS2, Line 3025: msgb_tv16_put(attr, NM_ATT_IPACC_DST_IP_PORT, port); make sure the endianess is put correctly here. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 14:10:01 +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 Apr 12 14:19:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 14:19:14 +0000 Subject: Change in osmo-pcap[master]: vty: Add space after prompt, as customary In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23732 ) Change subject: vty: Add space after prompt, as customary ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I7916c15cc34e41738a5716e4fefbb15e18f02fa7 Gerrit-Change-Number: 23732 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 14:19: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 Apr 12 15:14:07 2021 From: gerrit-no-reply at lists.osmocom.org (roh) Date: Mon, 12 Apr 2021 15:14:07 +0000 Subject: Change in osmo-pcap[master]: add --vty-ref-* support in osmo-pcap-client and -server, basic manual... In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcap/+/23691 to look at the new patch set (#2). Change subject: add --vty-ref-* support in osmo-pcap-client and -server, basic manuals stub ...................................................................... add --vty-ref-* support in osmo-pcap-client and -server, basic manuals stub Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb --- M .gitignore M configure.ac M contrib/jenkins.sh M doc/Makefile.am A doc/manuals/Makefile.am M src/osmo_client_main.c M src/osmo_server_main.c 7 files changed, 167 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/91/23691/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Gerrit-Change-Number: 23691 Gerrit-PatchSet: 2 Gerrit-Owner: roh Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 15:17:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 15:17:55 +0000 Subject: Change in osmo-pcap[master]: vty: Add space after prompt, as customary In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23732 ) Change subject: vty: Add space after prompt, as customary ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I7916c15cc34e41738a5716e4fefbb15e18f02fa7 Gerrit-Change-Number: 23732 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 15:17: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 Apr 12 15:17:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 15:17:57 +0000 Subject: Change in osmo-pcap[master]: vty: Add space after prompt, as customary In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23732 ) Change subject: vty: Add space after prompt, as customary ...................................................................... vty: Add space after prompt, as customary In all other programs, we have a space after the VTY prompt. Change-Id: I7916c15cc34e41738a5716e4fefbb15e18f02fa7 --- M src/osmo_client_vty.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/osmo_client_vty.c b/src/osmo_client_vty.c index 30158c5..fed9bf6 100644 --- a/src/osmo_client_vty.c +++ b/src/osmo_client_vty.c @@ -46,13 +46,13 @@ static struct cmd_node client_node = { CLIENT_NODE, - "%s(client)#", + "%s(client)# ", 1, }; static struct cmd_node server_node = { CLIENT_SERVER_NODE, - "%s(server)#", + "%s(server)# ", 1, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I7916c15cc34e41738a5716e4fefbb15e18f02fa7 Gerrit-Change-Number: 23732 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 Apr 12 15:19:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 15:19:32 +0000 Subject: Change in osmo-bsc[master]: drop unused gsm_bts_trx->description In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23727 ) Change subject: drop unused gsm_bts_trx->description ...................................................................... Patch Set 2: Code-Review+1 we could also add the vty command which is missing. but then, indeed, ther's little point in describing individual TRXs. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3c0778322b8c630b0eb9d9cd3ac3cc71386c9c12 Gerrit-Change-Number: 23727 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 15:19: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 Apr 12 15:19:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 15:19:46 +0000 Subject: Change in osmo-bsc[master]: deprecation: use osmo_bts_features_*() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23728 ) Change subject: deprecation: use osmo_bts_features_*() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d Gerrit-Change-Number: 23728 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 15:19:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 15:21:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 15:21:24 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... Patch Set 2: Code-Review-1 the port looks indeed like the endian is wrong now. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 15:21:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 17:14:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 17:14:37 +0000 Subject: Change in pysim[master]: pySim-shell: Migrate from optparse to argparse for the main() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23718 ) Change subject: pySim-shell: Migrate from optparse to argparse for the main() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23718 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I77c946dbeb9f746fe3d8051173e59462dc2fb5e2 Gerrit-Change-Number: 23718 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 17:14:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 17:26:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 17:26:38 +0000 Subject: Change in osmo-bsc[master]: generate_ma_for_ts: check num_cell_arfcns to guarantee no out-of-boun... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/20290 ) Change subject: generate_ma_for_ts: check num_cell_arfcns to guarantee no out-of-bounds access ...................................................................... Patch Set 1: This change can be abandoned now, since I98211fb0684a973239f5760e1de52a24a1f4c33c has been merged. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/20290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2ee8e8b4ba5e16b955685ba42bd58dc2ea08720f Gerrit-Change-Number: 20290 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Assignee: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 12 Apr 2021 17:26: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 Apr 12 17:37:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 17:37:42 +0000 Subject: Change in pysim[master]: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23723 ) Change subject: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/pysim/+/23723/2/pySim-read.py File pySim-read.py: https://gerrit.osmocom.org/c/pysim/+/23723/2/pySim-read.py at 233 PS2, Line 233: ad = EF_AD() You can optionally simplify this to: data = EF_AD().decode_hex(res) Also, I would call it 'parsed' or 'decoded' instead. https://gerrit.osmocom.org/c/pysim/+/23723/2/pySim/construct.py File pySim/construct.py: https://gerrit.osmocom.org/c/pysim/+/23723/2/pySim/construct.py at 56 PS2, Line 56: FlagRFU=Default(Flag,__RFU_VALUE) cosmetic: inconsistent formatting https://gerrit.osmocom.org/c/pysim/+/23723/2/pysim-testdata/Fairwaves-SIM.ok File pysim-testdata/Fairwaves-SIM.ok: https://gerrit.osmocom.org/c/pysim/+/23723/2/pysim-testdata/Fairwaves-SIM.ok at a46 PS2, Line 46: operation Unrelated change? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 Gerrit-Change-Number: 23723 Gerrit-PatchSet: 2 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 12 Apr 2021 17:37: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 Mon Apr 12 17:38:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 17:38:41 +0000 Subject: Change in pysim[master]: Move reader related argument parser to transport module In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23721 ) Change subject: Move reader related argument parser to transport module ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If77f53850e1ca65f42cf1dca3e0f460dac1b0d1a Gerrit-Change-Number: 23721 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 12 Apr 2021 17:38: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 Apr 12 17:39:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 17:39:39 +0000 Subject: Change in pysim[master]: pySim-read: Migrate over to use shared argparse from transport In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23722 ) Change subject: pySim-read: Migrate over to use shared argparse from transport ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I12ca1a484a5d6e84820d9761c9701f8a94381f66 Gerrit-Change-Number: 23722 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 12 Apr 2021 17: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 Mon Apr 12 17:40:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 17:40:04 +0000 Subject: Change in pysim[master]: pySim-shell: Introduce logical grouping of arguments In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23719 ) Change subject: pySim-shell: Introduce logical grouping of arguments ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id80a68e615fc1e457bde3dff8817776826fc6d8e Gerrit-Change-Number: 23719 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 12 Apr 2021 17: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 Mon Apr 12 17:42:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 17:42:18 +0000 Subject: Change in osmo-bsc[master]: drop unused func decl rsl_lchan_mark_broken() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23726 ) Change subject: drop unused func decl rsl_lchan_mark_broken() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib08e69720e2b9a6ea5f5b5d13baa9920c415f078 Gerrit-Change-Number: 23726 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 17: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 Apr 12 17:43:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 17:43:07 +0000 Subject: Change in osmo-bsc[master]: drop unused gsm_bts_trx->description In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23727 ) Change subject: drop unused gsm_bts_trx->description ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3c0778322b8c630b0eb9d9cd3ac3cc71386c9c12 Gerrit-Change-Number: 23727 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 17:43: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 Apr 12 17:44:47 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 17:44:47 +0000 Subject: Change in osmo-bsc[master]: deprecation: use osmo_bts_features_*() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23728 ) Change subject: deprecation: use osmo_bts_features_*() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d Gerrit-Change-Number: 23728 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 17:44: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 Apr 12 17:49:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 12 Apr 2021 17:49:34 +0000 Subject: Change in osmo-bsc[master]: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23733 ) Change subject: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND ...................................................................... bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND This change will allow handling more IEs in the future, like "Last used E-UTRAN PLMN ID" one. Related: SYS#5337 Change-Id: I96a0e1a7491fabf7aaad62207886821ad6194927 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c 2 files changed, 11 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/33/23733/1 diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 954c6a5..827416b 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -809,7 +809,8 @@ { struct gsm_subscriber_connection *conn = fi->priv; const struct gscon_clear_cmd_data *ccd; - struct osmo_mobile_identity *mi_imsi; + struct tlv_parsed *tp; + struct osmo_mobile_identity mi_imsi; /* Regular allstate event processing */ switch (event) { @@ -868,14 +869,19 @@ break; case GSCON_EV_A_COMMON_ID_IND: OSMO_ASSERT(data); - mi_imsi = data; + tp = data; + if (osmo_mobile_identity_decode(&mi_imsi, TLVP_VAL(tp, GSM0808_IE_IMSI), TLVP_LEN(tp, GSM0808_IE_IMSI), false) + || mi_imsi.type != GSM_MI_TYPE_IMSI) { + LOGPFSML(fi, LOGL_ERROR, "CommonID: could not parse IMSI\n"); + return; + } if (!conn->bsub) - conn->bsub = bsc_subscr_find_or_create_by_imsi(conn->network->bsc_subscribers, mi_imsi->imsi, + conn->bsub = bsc_subscr_find_or_create_by_imsi(conn->network->bsc_subscribers, mi_imsi.imsi, BSUB_USE_CONN); else { /* we already have a bsc_subscr associated; maybe that subscriber has no IMSI yet? */ if (!conn->bsub->imsi[0]) - bsc_subscr_set_imsi(conn->bsub, mi_imsi->imsi); + bsc_subscr_set_imsi(conn->bsub, mi_imsi.imsi); } gscon_update_id(conn); break; diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 9d78153..b558fae 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -1072,7 +1072,6 @@ struct msgb *msg, unsigned int length) { struct tlv_parsed tp; - struct osmo_mobile_identity mi_imsi; osmo_bssap_tlv_parse(&tp, msg->l4h + 1, length - 1); @@ -1084,13 +1083,7 @@ return -EINVAL; } - if (osmo_mobile_identity_decode(&mi_imsi, TLVP_VAL(&tp, GSM0808_IE_IMSI), TLVP_LEN(&tp, GSM0808_IE_IMSI), false) - || mi_imsi.type != GSM_MI_TYPE_IMSI) { - LOGPFSML(conn->fi, LOGL_ERROR, "CommonID: could not parse IMSI\n"); - return -EINVAL; - } - - osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_COMMON_ID_IND, &mi_imsi); + osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_COMMON_ID_IND, &tp); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I96a0e1a7491fabf7aaad62207886821ad6194927 Gerrit-Change-Number: 23733 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 Apr 12 17:54:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 17:54:29 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/23730/2/src/osmo-bsc/abis_nm.c File src/osmo-bsc/abis_nm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23730/2/src/osmo-bsc/abis_nm.c at 3025 PS2, Line 3025: msgb_tv16_put(attr, NM_ATT_IPACC_DST_IP_PORT, port); > make sure the endianess is put correctly here. Everything is correct here, tv16_put() does the same: *buf++ = val >> 8; *buf++ = val & 0xff; https://gerrit.osmocom.org/c/osmo-bsc/+/23730/2/src/osmo-bsc/abis_nm.c at 3030 PS2, Line 3030: msgb_tv_fixed_put Can we use msgb_tv32_put() here instead? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 12 Apr 2021 17:54:29 +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 Apr 12 18:00:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 18:00:34 +0000 Subject: Change in osmo-bsc[master]: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23733 ) Change subject: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23733/1/src/osmo-bsc/bsc_subscr_conn_fsm.c File src/osmo-bsc/bsc_subscr_conn_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23733/1/src/osmo-bsc/bsc_subscr_conn_fsm.c at 812 PS1, Line 812: struct const -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I96a0e1a7491fabf7aaad62207886821ad6194927 Gerrit-Change-Number: 23733 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 12 Apr 2021 18:00: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 Apr 12 18:16:01 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Mon, 12 Apr 2021 18:16:01 +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: keith has submitted 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. ...................................................................... stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR signal. Change-Id: Ice3379020039dc3634aa3887939740729d720dee --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bts.c M src/osmo-bsc/lchan_fsm.c 3 files changed, 11 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 c03c75e..d883570 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -64,6 +64,7 @@ BTS_CTR_LCHAN_BORKEN_EV_RF_CHAN_REL_ACK, BTS_CTR_LCHAN_BORKEN_EV_VTY, BTS_CTR_LCHAN_BORKEN_EV_TEARDOWN, + BTS_CTR_LCHAN_BORKEN_EV_TS_ERROR, BTS_CTR_LCHAN_BORKEN_FROM_WAIT_RR_CHAN_MODE_MODIFY_ACK, BTS_CTR_LCHAN_BORKEN_FROM_WAIT_RSL_CHAN_MODE_MODIFY_ACK, BTS_CTR_TS_BORKEN_FROM_NOT_INITIALIZED, diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index b5b7136..7abc126 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -885,6 +885,9 @@ [BTS_CTR_LCHAN_BORKEN_EV_TEARDOWN] = \ { "lchan_borken:event:teardown", "lchan in a BORKEN state is shutting down (BTS disconnected?)" }, + [BTS_CTR_LCHAN_BORKEN_EV_TS_ERROR] = \ + { "lchan_borken:event:ts_error", + "LCHAN_EV_TS_ERROR received in a BORKEN state" }, [BTS_CTR_TS_BORKEN_FROM_NOT_INITIALIZED] = \ { "ts_borken:from_state:not_initialized", "Transitions from TS NOT_INITIALIZED state to BORKEN state" }, diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 6f0fd63..ffcf2b1 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -1537,8 +1537,15 @@ switch (event) { case LCHAN_EV_TS_ERROR: + { + struct gsm_lchan *lchan = lchan_fi_lchan(fi); + if (fi->state == LCHAN_ST_BORKEN) { + rate_ctr_inc(&lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LCHAN_BORKEN_EV_TS_ERROR]); + osmo_stat_item_dec(lchan->ts->trx->bts->bts_statg->items[BTS_STAT_LCHAN_BORKEN], 1); + } lchan_fail_to(LCHAN_ST_UNUSED, "LCHAN_EV_TS_ERROR"); return; + } case LCHAN_EV_RLL_ERR_IND: /* let's just ignore this. We are already logging the -- 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: 5 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith 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 Apr 12 18:19:36 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Mon, 12 Apr 2021 18:19:36 +0000 Subject: Change in osmo-bsc[master]: Replace all references to 'sysmobts' with 'osmo-bts' In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23627 ) Change subject: Replace all references to 'sysmobts' with 'osmo-bts' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I93ab4dbf483e0786c35685b75ee4ea83bd591f7b Gerrit-Change-Number: 23627 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 18: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 Mon Apr 12 18:22:59 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Mon, 12 Apr 2021 18:22:59 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... Patch Set 1: Code-Review+1 > Patch Set 1: Code-Review+1 > > I would probably name it "osmobts" instead of "osmo-bts", but fine anyway. Just happen to be going through these as gerrit was saying conflict with old patch I rebased. Yeah, as it's "osmobts" in the code, maybe osmobts in the vty? We have single word bts types and "nokia_site", but yep, also fine with it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 18:22:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 18:25:11 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Mon, 12 Apr 2021 18:25:11 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... Patch Set 1: > > > > I would probably name it "osmobts" instead of "osmo-bts", but fine anyway. > > Yeah, as it's "osmobts" in the code, maybe osmobts in the vty? Actually, the program is called "osmo-bts" so I suppose that makes good sense. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 18:25:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 18:48:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 18:48:42 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... Patch Set 1: > > > I would probably name it "osmobts" instead of "osmo-bts", but fine anyway. > Actually, the program is called "osmo-bts" so I suppose that makes good sense. I also think it is most logical to use the name of the program. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 18:48: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 Apr 12 18:48:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 18:48:49 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 12 Apr 2021 18:48:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 18:49:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 18:49:13 +0000 Subject: Change in pysim[master]: pySim-shell: Migrate from optparse to argparse for the main() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23718 ) Change subject: pySim-shell: Migrate from optparse to argparse for the main() ...................................................................... pySim-shell: Migrate from optparse to argparse for the main() We're using argparse internally for all shell commands, and can use that to auto-generate command reference in the manual. Let's switch to argparse for the main program, too - and generate the related reference in the manual. Change-Id: I77c946dbeb9f746fe3d8051173e59462dc2fb5e2 --- M docs/shell.rst M pySim-shell.py 2 files changed, 37 insertions(+), 54 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/docs/shell.rst b/docs/shell.rst index 30938fe..4cdf9e0 100644 --- a/docs/shell.rst +++ b/docs/shell.rst @@ -23,6 +23,20 @@ * tab completion of commands and SELECT-able files/directories * interactive help for all commands +Running pySim-shell +------------------- + +pySim-shell has a variety of command line arguments to control + +* which transport to use (how to use a reader to talk to the SIM card) +* whether to automatically verify an ADM pin (and in which format) +* whether to execute a start-up script + +.. argparse:: + :module: pySim-shell + :func: option_parser + + cmd2 basics ----------- diff --git a/pySim-shell.py b/pySim-shell.py index 5298cb4..6bc9a95 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -28,7 +28,6 @@ import os import sys -from optparse import OptionParser from pathlib import Path from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD_mode_map @@ -430,64 +429,34 @@ (data, sw) = self._cmd.card._scc.manage_channel(mode='close', lchan_nr=opts.chan_nr) -def parse_options(): - - parser = OptionParser(usage="usage: %prog [options]") - - parser.add_option("-d", "--device", dest="device", metavar="DEV", - help="Serial Device for SIM access [default: %default]", - default="/dev/ttyUSB0", - ) - parser.add_option("-b", "--baud", dest="baudrate", type="int", metavar="BAUD", - help="Baudrate used for SIM access [default: %default]", - default=9600, - ) - parser.add_option("-p", "--pcsc-device", dest="pcsc_dev", type='int', metavar="PCSC", - help="Which PC/SC reader number for SIM access", - default=None, - ) - parser.add_option("--modem-device", dest="modem_dev", metavar="DEV", - help="Serial port of modem for Generic SIM Access (3GPP TS 27.007)", - default=None, - ) - parser.add_option("--modem-baud", dest="modem_baud", type="int", metavar="BAUD", - help="Baudrate used for modem's port [default: %default]", - default=115200, - ) - parser.add_option("--osmocon", dest="osmocon_sock", metavar="PATH", - help="Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)", - default=None, - ) - parser.add_option("--script", dest="script", metavar="PATH", - help="script with shell commands to be executed automatically", - default=None, - ) - - parser.add_option("--csv", dest="csv", metavar="FILE", - help="Read card data from CSV file", - default=None, - ) - - parser.add_option("-a", "--pin-adm", dest="pin_adm", - help="ADM PIN used for provisioning (overwrites default)", - ) - parser.add_option("-A", "--pin-adm-hex", dest="pin_adm_hex", - help="ADM PIN used for provisioning, as hex string (16 characters long", - ) - - (options, args) = parser.parse_args() - - if args: - parser.error("Extraneous arguments") - - return options - +option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) +option_parser.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', + help='Serial Device for SIM access') +option_parser.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, + help='Baud rate used for SIM access') +option_parser.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, + help='PC/SC reader number to use for SIM access') +option_parser.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, + help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') +option_parser.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, + help='Baud rate used for modem port') +option_parser.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, + help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)') +option_parser.add_argument('--script', metavar='PATH', default=None, + help='script with pySim-shell commands to be executed automatically at start-up') +option_parser.add_argument('--csv', metavar='FILE', default=None, + help='Read card data from CSV file') +option_parser.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None, + help='ADM PIN used for provisioning (overwrites default)') +option_parser.add_argument('-A', '--pin-adm-hex', metavar='PIN_ADM1_HEX', dest='pin_adm_hex', default=None, + help='ADM PIN used for provisioning, as hex string (16 characters long)') if __name__ == '__main__': # Parse options - opts = parse_options() + opts = option_parser.parse_args() # Init card reader driver sl = init_reader(opts) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23718 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I77c946dbeb9f746fe3d8051173e59462dc2fb5e2 Gerrit-Change-Number: 23718 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Mon Apr 12 18:49:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 12 Apr 2021 18:49:13 +0000 Subject: Change in pysim[master]: pySim-shell: Introduce logical grouping of arguments In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23719 ) Change subject: pySim-shell: Introduce logical grouping of arguments ...................................................................... pySim-shell: Introduce logical grouping of arguments Change-Id: Id80a68e615fc1e457bde3dff8817776826fc6d8e --- M pySim-shell.py 1 file changed, 29 insertions(+), 17 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index 6bc9a95..2a7c377 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -431,26 +431,38 @@ option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell', formatter_class=argparse.ArgumentDefaultsHelpFormatter) -option_parser.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', - help='Serial Device for SIM access') -option_parser.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, - help='Baud rate used for SIM access') -option_parser.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, - help='PC/SC reader number to use for SIM access') -option_parser.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, - help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') -option_parser.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, - help='Baud rate used for modem port') -option_parser.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, + +serial_group = option_parser.add_argument_group('Serial Reader') +serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', + help='Serial Device for SIM access') +serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, + help='Baud rate used for SIM access') + +pcsc_group = option_parser.add_argument_group('PC/SC Reader') +pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, + help='PC/SC reader number to use for SIM access') + +modem_group = option_parser.add_argument_group('AT Command Modem Reader') +modem_group.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, + help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') +modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, + help='Baud rate used for modem port') + +osmobb_group = option_parser.add_argument_group('OsmocomBB Reader') +osmobb_group.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)') -option_parser.add_argument('--script', metavar='PATH', default=None, + +global_group = option_parser.add_argument_group('General Options') +global_group.add_argument('--script', metavar='PATH', default=None, help='script with pySim-shell commands to be executed automatically at start-up') -option_parser.add_argument('--csv', metavar='FILE', default=None, +global_group.add_argument('--csv', metavar='FILE', default=None, help='Read card data from CSV file') -option_parser.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None, - help='ADM PIN used for provisioning (overwrites default)') -option_parser.add_argument('-A', '--pin-adm-hex', metavar='PIN_ADM1_HEX', dest='pin_adm_hex', default=None, - help='ADM PIN used for provisioning, as hex string (16 characters long)') + +adm_group = global_group.add_mutually_exclusive_group() +adm_group.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None, + help='ADM PIN used for provisioning (overwrites default)') +adm_group.add_argument('-A', '--pin-adm-hex', metavar='PIN_ADM1_HEX', dest='pin_adm_hex', default=None, + help='ADM PIN used for provisioning, as hex string (16 characters long)') if __name__ == '__main__': -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id80a68e615fc1e457bde3dff8817776826fc6d8e Gerrit-Change-Number: 23719 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Mon Apr 12 18:54:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 18:54:40 +0000 Subject: Change in osmo-bsc[master]: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23625 ) Change subject: vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' ...................................................................... vty: deprecate BTS type 'sysmobts' in favor of 'osmo-bts' Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 --- M doc/examples/osmo-bsc/osmo-bsc-minimal.cfg M doc/examples/osmo-bsc/osmo-bsc.cfg M doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg M doc/manuals/chapters/bts.adoc M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M tests/ctrl/osmo-bsc-neigh-test.cfg M tests/neighbor_ident.vty 8 files changed, 26 insertions(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve; Verified keith: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified fixeria: Verified diff --git a/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg b/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg index b8cd78d..2258495 100644 --- a/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg +++ b/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg @@ -2,7 +2,7 @@ network country code 901 mobile network code 70 bts 0 - type sysmobts + type osmo-bts band GSM-1800 location_area_code 23 ipa unit-id 1800 0 diff --git a/doc/examples/osmo-bsc/osmo-bsc.cfg b/doc/examples/osmo-bsc/osmo-bsc.cfg index 828875d..807bd19 100644 --- a/doc/examples/osmo-bsc/osmo-bsc.cfg +++ b/doc/examples/osmo-bsc/osmo-bsc.cfg @@ -19,7 +19,7 @@ handover1 maximum distance 9999 periodic location update 30 bts 0 - type sysmobts + type osmo-bts band DCS1800 cell_identity 6969 location_area_code 1 diff --git a/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg b/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg index 0ecb5fc..335e23d 100644 --- a/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg +++ b/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg @@ -18,7 +18,7 @@ handover1 maximum distance 9999 periodic location update 30 bts 0 - type sysmobts + type osmo-bts band DCS1800 cell_identity 0 location_area_code 1 diff --git a/doc/manuals/chapters/bts.adoc b/doc/manuals/chapters/bts.adoc index e416775..6ef0a0c 100644 --- a/doc/manuals/chapters/bts.adoc +++ b/doc/manuals/chapters/bts.adoc @@ -105,7 +105,7 @@ ---- network bts 0 - type sysmobts + type osmo-bts band DCS1800 description The new BTS in Baikonur location_area_code 2342 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 5eb2393..1a59fcb 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2342,6 +2342,20 @@ return CMD_SUCCESS; } +DEFUN_DEPRECATED(cfg_bts_type_sysmobts, + cfg_bts_type_sysmobts_cmd, + "type sysmobts", + "Set the BTS type\n" + "Deprecated alias for 'osmo-bts'\n") +{ + const char *args[] = { "osmo-bts" }; + + vty_out(vty, "%% BTS type 'sysmobts' is deprecated, " + "use 'type osmo-bts' instead.%s", VTY_NEWLINE); + + return cfg_bts_type(self, vty, 1, args); +} + DEFUN_USRATTR(cfg_bts_band, cfg_bts_band_cmd, X(BSC_VTY_ATTR_RESTART_ABIS_OML_LINK), @@ -7696,6 +7710,7 @@ install_element(GSMNET_NODE, &cfg_bts_cmd); install_node(&bts_node, config_write_bts); install_element(BTS_NODE, &cfg_bts_type_cmd); + install_element(BTS_NODE, &cfg_bts_type_sysmobts_cmd); install_element(BTS_NODE, &cfg_description_cmd); install_element(BTS_NODE, &cfg_no_description_cmd); install_element(BTS_NODE, &cfg_bts_band_cmd); diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 7abc126..2192c56 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -67,7 +67,7 @@ { GSM_BTS_TYPE_NANOBTS, "nanobts" }, { GSM_BTS_TYPE_RBS2000, "rbs2000" }, { GSM_BTS_TYPE_NOKIA_SITE, "nokia_site" }, - { GSM_BTS_TYPE_OSMOBTS, "sysmobts" }, + { GSM_BTS_TYPE_OSMOBTS, "osmo-bts" }, { 0, NULL } }; @@ -77,7 +77,7 @@ { GSM_BTS_TYPE_NANOBTS, "ip.access nanoBTS or compatible" }, { GSM_BTS_TYPE_RBS2000, "Ericsson RBS2000 Series" }, { GSM_BTS_TYPE_NOKIA_SITE, "Nokia {Metro,Ultra,In}Site" }, - { GSM_BTS_TYPE_OSMOBTS, "sysmocom sysmoBTS" }, + { GSM_BTS_TYPE_OSMOBTS, "Osmocom Base Transceiver Station" }, { 0, NULL } }; diff --git a/tests/ctrl/osmo-bsc-neigh-test.cfg b/tests/ctrl/osmo-bsc-neigh-test.cfg index 7ef8271..93d7fca 100644 --- a/tests/ctrl/osmo-bsc-neigh-test.cfg +++ b/tests/ctrl/osmo-bsc-neigh-test.cfg @@ -26,7 +26,7 @@ periodic location update 30 neighbor-resolution bind 127.0.0.1 bts 0 - type sysmobts + type osmo-bts band DCS1800 cell_identity 6969 location_area_code 1 @@ -83,7 +83,7 @@ phys_chan_config TCH/F hopping enabled 0 bts 1 - type sysmobts + type osmo-bts band DCS1800 cell_identity 123 location_area_code 1 diff --git a/tests/neighbor_ident.vty b/tests/neighbor_ident.vty index b1429d8..950d852 100644 --- a/tests/neighbor_ident.vty +++ b/tests/neighbor_ident.vty @@ -19,7 +19,7 @@ [<0-65535>] Port to bind the service to [defaults to 4248 if not provided] OsmoBSC(config-net)# bts 0 -OsmoBSC(config-net-bts)# type sysmobts +OsmoBSC(config-net-bts)# type osmo-bts OsmoBSC(config-net-bts)# base_station_id_code 10 OsmoBSC(config-net-bts)# location_area_code 20 OsmoBSC(config-net-bts)# cell_identity 30 @@ -29,7 +29,7 @@ OsmoBSC(config-net-bts)# exit OsmoBSC(config-net)# bts 1 -OsmoBSC(config-net-bts)# type sysmobts +OsmoBSC(config-net-bts)# type osmo-bts OsmoBSC(config-net-bts)# base_station_id_code 11 OsmoBSC(config-net-bts)# location_area_code 21 OsmoBSC(config-net-bts)# cell_identity 31 @@ -39,7 +39,7 @@ OsmoBSC(config-net-bts)# exit OsmoBSC(config-net)# bts 2 -OsmoBSC(config-net-bts)# type sysmobts +OsmoBSC(config-net-bts)# type osmo-bts OsmoBSC(config-net-bts)# base_station_id_code 12 OsmoBSC(config-net-bts)# location_area_code 22 OsmoBSC(config-net-bts)# cell_identity 65535 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I60d5ff887a7c830180088904c2458f7e73ce3893 Gerrit-Change-Number: 23625 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 12 18:54:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 12 Apr 2021 18:54:41 +0000 Subject: Change in osmo-bsc[master]: Replace all references to 'sysmobts' with 'osmo-bts' In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23627 ) Change subject: Replace all references to 'sysmobts' with 'osmo-bts' ...................................................................... Replace all references to 'sysmobts' with 'osmo-bts' sysmoBTS is a BTS model sold by Sysmocom, which runs osmo-bts. The later may also work with some other back-ends, including the genaral purpose SDR hardware. Therefore, it's more logical to call it 'osmo-bts'. Change-Id: I93ab4dbf483e0786c35685b75ee4ea83bd591f7b --- M include/osmocom/bsc/bss.h M include/osmocom/bsc/bts.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/bsc_ctrl_commands.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_init.c A src/osmo-bsc/bts_osmobts.c D src/osmo-bsc/bts_sysmobts.c M src/osmo-bsc/lchan_fsm.c 9 files changed, 77 insertions(+), 77 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve keith: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/bss.h b/include/osmocom/bsc/bss.h index b8945db..199f981 100644 --- a/include/osmocom/bsc/bss.h +++ b/include/osmocom/bsc/bss.h @@ -16,5 +16,5 @@ extern int bts_model_rbs2k_init(void); extern int bts_model_nanobts_init(void); extern int bts_model_nokia_site_init(void); -extern int bts_model_sysmobts_init(void); +extern int bts_model_osmobts_init(void); #endif diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index d883570..bcc215d 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -554,7 +554,7 @@ return 0; } -static inline int is_sysmobts_v2(const struct gsm_bts *bts) +static inline int is_osmobts(const struct gsm_bts *bts) { switch (bts->type) { case GSM_BTS_TYPE_OSMOBTS: diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 49b7890..ca39825 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -53,7 +53,7 @@ bts_nokia_site.c \ bts_siemens_bs11.c \ bts_sm.c \ - bts_sysmobts.c \ + bts_osmobts.c \ bts_unknown.c \ chan_alloc.c \ codec_pref.c \ diff --git a/src/osmo-bsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c index 9383167..96aeba2 100644 --- a/src/osmo-bsc/bsc_ctrl_commands.c +++ b/src/osmo-bsc/bsc_ctrl_commands.c @@ -102,7 +102,7 @@ * so let's us just reboot it. For the sysmoBTS we can just * restart the process as all state is gone. */ - if (!is_sysmobts_v2(bts) && strcmp(cmd->value, "restart") == 0) { + if (!is_osmobts(bts) && strcmp(cmd->value, "restart") == 0) { struct gsm_bts_trx *trx; llist_for_each_entry_reverse(trx, &bts->trx_list, list) abis_nm_ipaccess_restart(trx); diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 1a59fcb..0955ffe 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -3795,7 +3795,7 @@ { struct gsm_bts *bts = vty->index; - if (!is_ipaccess_bts(bts) || is_sysmobts_v2(bts)) { + if (!is_ipaccess_bts(bts) || is_osmobts(bts)) { vty_out(vty, "%% This command is only intended for ipaccess nanoBTS. See OS#3707.%s", VTY_NEWLINE); return CMD_WARNING; @@ -5801,7 +5801,7 @@ return CMD_WARNING; } - if (!is_ipaccess_bts(bts) || is_sysmobts_v2(bts)) { + if (!is_ipaccess_bts(bts) || is_osmobts(bts)) { vty_out(vty, "%% This command only works for ipaccess nanoBTS.%s", VTY_NEWLINE); return CMD_WARNING; diff --git a/src/osmo-bsc/bts_init.c b/src/osmo-bsc/bts_init.c index 18f1ed4..0e3debc 100644 --- a/src/osmo-bsc/bts_init.c +++ b/src/osmo-bsc/bts_init.c @@ -24,7 +24,7 @@ bts_model_rbs2k_init(); bts_model_nanobts_init(); bts_model_nokia_site_init(); - bts_model_sysmobts_init(); + bts_model_osmobts_init(); /* Your new BTS here. */ return 0; } diff --git a/src/osmo-bsc/bts_osmobts.c b/src/osmo-bsc/bts_osmobts.c new file mode 100644 index 0000000..1814ada --- /dev/null +++ b/src/osmo-bsc/bts_osmobts.c @@ -0,0 +1,69 @@ +/* Osmocom OsmoBTS specific code */ + +/* (C) 2010-2012 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 +#include +#include +#include +#include +#include + +extern struct gsm_bts_model bts_model_nanobts; + +static struct gsm_bts_model model_osmobts; + +int bts_model_osmobts_init(void) +{ + model_osmobts = bts_model_nanobts; + model_osmobts.name = "osmo-bts"; + model_osmobts.type = GSM_BTS_TYPE_OSMOBTS; + + /* Unlike nanoBTS, osmo-bts does support SI2bis and SI2ter fine */ + model_osmobts.force_combined_si = false; + + model_osmobts.features.data = &model_osmobts._features_data[0]; + model_osmobts.features.data_len = + sizeof(model_osmobts._features_data); + memset(model_osmobts.features.data, 0, model_osmobts.features.data_len); + + osmo_bts_set_feature(&model_osmobts.features, BTS_FEAT_GPRS); + osmo_bts_set_feature(&model_osmobts.features, BTS_FEAT_EGPRS); + osmo_bts_set_feature(&model_osmobts.features, BTS_FEAT_PAGING_COORDINATION); + osmo_bts_set_feature(&model_osmobts.features, BTS_FEAT_IPV6_NSVC); + osmo_bts_set_feature(&model_osmobts.features, BTS_FEAT_CCN); + + model_osmobts.nm_att_tlvdef.def[NM_ATT_OSMO_NS_LINK_CFG].type = TLV_TYPE_TL16V; + + return gsm_bts_model_register(&model_osmobts); +} diff --git a/src/osmo-bsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c deleted file mode 100644 index f24c615..0000000 --- a/src/osmo-bsc/bts_sysmobts.c +++ /dev/null @@ -1,69 +0,0 @@ -/* sysmocom sysmoBTS specific code */ - -/* (C) 2010-2012 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 -#include -#include -#include -#include -#include - -extern struct gsm_bts_model bts_model_nanobts; - -static struct gsm_bts_model model_sysmobts; - -int bts_model_sysmobts_init(void) -{ - model_sysmobts = bts_model_nanobts; - model_sysmobts.name = "sysmobts"; - model_sysmobts.type = GSM_BTS_TYPE_OSMOBTS; - - /* Unlike nanoBTS, sysmoBTS supports SI2bis and SI2ter fine */ - model_sysmobts.force_combined_si = false; - - model_sysmobts.features.data = &model_sysmobts._features_data[0]; - model_sysmobts.features.data_len = - sizeof(model_sysmobts._features_data); - memset(model_sysmobts.features.data, 0, model_sysmobts.features.data_len); - - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_GPRS); - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_EGPRS); - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_PAGING_COORDINATION); - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_IPV6_NSVC); - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_CCN); - - model_sysmobts.nm_att_tlvdef.def[NM_ATT_OSMO_NS_LINK_CFG].type = TLV_TYPE_TL16V; - - return gsm_bts_model_register(&model_sysmobts); -} diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index ffcf2b1..0e2eb82 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -1304,7 +1304,7 @@ lchan->release.rr_cause = bsc_gsm48_rr_cause_from_rsl_cause(lchan->release.rsl_error_cause); lchan_fsm_state_chg(LCHAN_ST_WAIT_AFTER_ERROR); /* TODO: we used to do this only for sysmobts: - int do_free = is_sysmobts_v2(ts->trx->bts); + int do_free = is_osmobts(ts->trx->bts); LOGP(DRSL, LOGL_NOTICE, "%s CHAN REL ACK for broken channel. %s.\n", gsm_lchan_name(lchan), -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I93ab4dbf483e0786c35685b75ee4ea83bd591f7b Gerrit-Change-Number: 23627 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 06:52:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 13 Apr 2021 06:52:28 +0000 Subject: Change in osmo-gbproxy[master]: doc: include gb-ns2.adoc, not gb-variants.adoc References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23735 ) Change subject: doc: include gb-ns2.adoc, not gb-variants.adoc ...................................................................... doc: include gb-ns2.adoc, not gb-variants.adoc Adjust to merge of gb-variants.adoc into gb-ns2.adoc in osmo-gsm-manuals I902b850528cbc04bd469590babd84cccf64300e8. Change-Id: I17b182db6068ca583078c66c9576029a28016fd4 --- M doc/manuals/osmogbproxy-usermanual.adoc 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/35/23735/1 diff --git a/doc/manuals/osmogbproxy-usermanual.adoc b/doc/manuals/osmogbproxy-usermanual.adoc index 06bc098..454cf69 100644 --- a/doc/manuals/osmogbproxy-usermanual.adoc +++ b/doc/manuals/osmogbproxy-usermanual.adoc @@ -23,7 +23,7 @@ include::{srcdir}/chapters/gbproxy-sgsnpool.adoc[] -include::./common/chapters/gb-variants.adoc[] +include::./common/chapters/gb-ns2.adoc[] include::./common/chapters/gb.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I17b182db6068ca583078c66c9576029a28016fd4 Gerrit-Change-Number: 23735 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 06:52:29 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 13 Apr 2021 06:52:29 +0000 Subject: Change in osmo-gbproxy[master]: gitignore: add gbproxy_vty_reference.xml References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23736 ) Change subject: gitignore: add gbproxy_vty_reference.xml ...................................................................... gitignore: add gbproxy_vty_reference.xml Change-Id: I33a0df37b4446b12b53c9e1eace8e5766278be1f --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/36/23736/1 diff --git a/.gitignore b/.gitignore index 64cebba..97c9372 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,7 @@ doc/manuals/osmomsc-usermanual.xml doc/manuals/common doc/manuals/build +doc/manuals/vty/gbproxy_vty_reference.xml contrib/osmo-gbproxy.spec -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I33a0df37b4446b12b53c9e1eace8e5766278be1f Gerrit-Change-Number: 23736 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 08:30:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 13 Apr 2021 08:30:10 +0000 Subject: Change in osmo-gbproxy[master]: doc: include gb-ns2.adoc, not gb-variants.adoc In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23735 ) Change subject: doc: include gb-ns2.adoc, not gb-variants.adoc ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I17b182db6068ca583078c66c9576029a28016fd4 Gerrit-Change-Number: 23735 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 13 Apr 2021 08:30:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 08:30:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 13 Apr 2021 08:30:24 +0000 Subject: Change in osmo-gbproxy[master]: gitignore: add gbproxy_vty_reference.xml In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23736 ) Change subject: gitignore: add gbproxy_vty_reference.xml ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I33a0df37b4446b12b53c9e1eace8e5766278be1f Gerrit-Change-Number: 23736 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 13 Apr 2021 08: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 Apr 13 08:48:07 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Tue, 13 Apr 2021 08:48:07 +0000 Subject: Change in pysim[master]: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23723 to look at the new patch set (#3). Change subject: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py ...................................................................... Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py Also serves as example for RFU (reserved for future use) fields which should not always be reset to zero in case they have been set on the uSIM for some reason. See pySim/ts_51_011.py, class EF_AD. * Add definitions for RFU {Flag, Bits, Byte, Bytes} * Use IntEnum for OP_MODE (convenient auto completion) * Remove obsolete definitions and imports * Update test results for all SIMs (opmode strings are shortened) Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 --- M pySim-prog.py M pySim-read.py M pySim-shell.py M pySim/cards.py M pySim/construct.py M pySim/ts_51_011.py M pysim-testdata/Fairwaves-SIM.ok M pysim-testdata/Wavemobile-SIM.ok M pysim-testdata/fakemagicsim.ok M pysim-testdata/sysmoISIM-SJA2.ok M pysim-testdata/sysmoUSIM-SJS1.ok M pysim-testdata/sysmosim-gr1.ok 12 files changed, 90 insertions(+), 58 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/23/23723/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 Gerrit-Change-Number: 23723 Gerrit-PatchSet: 3 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 09:02:37 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Tue, 13 Apr 2021 09:02:37 +0000 Subject: Change in pysim[master]: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py In-Reply-To: References: Message-ID: Falkenber9 has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23723 ) Change subject: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py ...................................................................... Patch Set 3: (3 comments) > Patch Set 2: > > > Patch Set 2: > > > > It seems that ``EF_AD`` has only 3 Bytes in ``sysmosim-gr1`` and ``fakemagicsim`` although it should be 4 Bytes? > > I see, only first three bytes are mandatory (M). Further bytes are optional (O) Updated the structure definition https://gerrit.osmocom.org/c/pysim/+/23723/2/pySim-read.py File pySim-read.py: https://gerrit.osmocom.org/c/pysim/+/23723/2/pySim-read.py at 233 PS2, Line 233: ad = EF_AD() > You can optionally simplify this to: [?] thanks https://gerrit.osmocom.org/c/pysim/+/23723/2/pySim/construct.py File pySim/construct.py: https://gerrit.osmocom.org/c/pysim/+/23723/2/pySim/construct.py at 56 PS2, Line 56: FlagRFU=Default(Flag,__RFU_VALUE) > cosmetic: inconsistent formatting Thanks https://gerrit.osmocom.org/c/pysim/+/23723/2/pysim-testdata/Fairwaves-SIM.ok File pysim-testdata/Fairwaves-SIM.ok: https://gerrit.osmocom.org/c/pysim/+/23723/2/pysim-testdata/Fairwaves-SIM.ok at a46 PS2, Line 46: operation > Unrelated change? This comes from removing redundant dictionary "EF_AD_mode_map" in pySim/ts_51_011.py by switching to enum "OP_MODE" with more compact naming of the members (without "operation") -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 Gerrit-Change-Number: 23723 Gerrit-PatchSet: 3 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 13 Apr 2021 09:02:37 +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 Tue Apr 13 09:59:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 13 Apr 2021 09:59:33 +0000 Subject: Change in osmo-sgsn[master]: gprs_gmm.c: State proper GMM prefix logging rx/tx of GMM messages References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23737 ) Change subject: gprs_gmm.c: State proper GMM prefix logging rx/tx of GMM messages ...................................................................... gprs_gmm.c: State proper GMM prefix logging rx/tx of GMM messages Change-Id: I58af41acdc4a04870b4cf2ea34a272d46d896254 --- M src/sgsn/gprs_gmm.c 1 file changed, 23 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/37/23737/1 diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c index 545c8e7..f05167f 100644 --- a/src/sgsn/gprs_gmm.c +++ b/src/sgsn/gprs_gmm.c @@ -215,7 +215,7 @@ /* MMCTX might be NULL! */ - DEBUGP(DMM, "<- GPRS MM STATUS (cause: %s)\n", + DEBUGP(DMM, "<- GMM STATUS (cause: %s)\n", get_value_string(gsm48_gmm_cause_names, cause)); gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); @@ -241,7 +241,7 @@ /* MMCTX might be NULL! */ - DEBUGP(DMM, "<- GPRS MM DETACH REQ (type: %s, cause: %s)\n", + DEBUGP(DMM, "<- GMM DETACH REQ (type: %s, cause: %s)\n", get_value_string(gprs_det_t_mt_strs, detach_type), get_value_string(gsm48_gmm_cause_names, cause)); @@ -290,7 +290,7 @@ uint8_t *ptsig; #endif - LOGMMCTXP(LOGL_INFO, mm, "<- GPRS ATTACH ACCEPT (new P-TMSI=0x%08x)\n", mm->p_tmsi); + LOGMMCTXP(LOGL_INFO, mm, "<- GMM ATTACH ACCEPT (new P-TMSI=0x%08x)\n", mm->p_tmsi); rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_ATTACH_ACKED]); mmctx2msgid(msg, mm); @@ -354,7 +354,7 @@ { struct gsm48_hdr *gh; - LOGMMCTXP(LOGL_NOTICE, mm, "<- GPRS ATTACH REJECT: %s\n", + LOGMMCTXP(LOGL_NOTICE, mm, "<- GMM ATTACH REJECT: %s\n", get_value_string(gsm48_gmm_cause_names, gmm_cause)); rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_ATTACH_REJECTED]); @@ -388,7 +388,7 @@ /* MMCTX might be NULL! */ - DEBUGP(DMM, "<- GPRS MM DETACH ACC (force-standby: %d)\n", force_stby); + DEBUGP(DMM, "<- GMM DETACH ACC (force-standby: %d)\n", force_stby); rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_DETACH_ACKED]); gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); @@ -421,7 +421,7 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 ID REQ"); struct gsm48_hdr *gh; - LOGMMCTXP(LOGL_DEBUG, mm, "<- GPRS IDENTITY REQUEST: mi_type=%s\n", + LOGMMCTXP(LOGL_DEBUG, mm, "<- GMM IDENTITY REQUEST: mi_type=%s\n", gsm48_mi_type_name(id_type)); mmctx2msgid(msg, mm); @@ -456,7 +456,7 @@ uint8_t *m_rand, *m_cksn, rbyte; int rc; - LOGMMCTXP(LOGL_INFO, mm, "<- GPRS AUTH AND CIPHERING REQ (rand = %s," + LOGMMCTXP(LOGL_INFO, mm, "<- GMM AUTH AND CIPHERING REQ (rand = %s," " mmctx_is_r99=%d, vec->auth_types=0x%x", osmo_hexdump(vec->rand, sizeof(vec->rand)), mmctx_is_r99(mm), vec->auth_types); @@ -519,7 +519,7 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 AUTH CIPH REJ"); struct gsm48_hdr *gh; - LOGMMCTXP(LOGL_NOTICE, mm, "<- GPRS AUTH AND CIPH REJECT\n"); + LOGMMCTXP(LOGL_NOTICE, mm, "<- GMM AUTH AND CIPH REJECT\n"); mmctx2msgid(msg, mm); @@ -599,7 +599,7 @@ uint8_t res_len; int rc; - LOGMMCTXP(LOGL_INFO, ctx, "-> GPRS AUTH AND CIPH RESPONSE\n"); + LOGMMCTXP(LOGL_INFO, ctx, "-> GMM AUTH AND CIPH RESPONSE\n"); if (ctx->auth_triplet.key_seq == GSM_KEY_SEQ_INVAL) { LOGMMCTXP(LOGL_NOTICE, ctx, @@ -650,7 +650,7 @@ ctx->sec_ctx = check_auth_resp(ctx, false, &at->vec, res, res_len); if (!sgsn_mm_ctx_is_authenticated(ctx)) { rc = gsm48_tx_gmm_auth_ciph_rej(ctx); - mm_ctx_cleanup_free(ctx, "GPRS AUTH AND CIPH REJECT"); + mm_ctx_cleanup_free(ctx, "GMM AUTH AND CIPH REJECT"); return rc; } @@ -673,7 +673,7 @@ const uint8_t *auts; int rc; - LOGMMCTXP(LOGL_INFO, ctx, "-> GPRS AUTH AND CIPH FAILURE (cause = %s)\n", + LOGMMCTXP(LOGL_INFO, ctx, "-> GMM AUTH AND CIPH FAILURE (cause = %s)\n", get_value_string(gsm48_gmm_cause_names, gmm_cause)); tlv_parse(&tp, &gsm48_gmm_att_tlvdef, gh->data+1, msg->len - 1, 0, 0); @@ -713,7 +713,7 @@ LOGMMCTXP(LOGL_NOTICE, ctx, "Authentication failed\n"); rc = gsm48_tx_gmm_auth_ciph_rej(ctx); - mm_ctx_cleanup_free(ctx, "GPRS AUTH FAILURE"); + mm_ctx_cleanup_free(ctx, "GMM AUTH FAILURE"); return rc; } @@ -792,7 +792,7 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 SERVICE ACK"); struct gsm48_hdr *gh; - LOGMMCTXP(LOGL_INFO, mm, "<- GPRS SERVICE ACCEPT (P-TMSI=0x%08x)\n", mm->p_tmsi); + LOGMMCTXP(LOGL_INFO, mm, "<- GMM SERVICE ACCEPT (P-TMSI=0x%08x)\n", mm->p_tmsi); mmctx2msgid(msg, mm); @@ -813,7 +813,7 @@ { struct gsm48_hdr *gh; - LOGMMCTXP(LOGL_NOTICE, mm, "<- GPRS SERVICE REJECT: %s\n", + LOGMMCTXP(LOGL_NOTICE, mm, "<- GMM SERVICE REJECT: %s\n", get_value_string(gsm48_gmm_cause_names, gmm_cause)); gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); @@ -1087,7 +1087,7 @@ "p_tmsi_old=0x%08x\n", ictx->p_tmsi); - mm_ctx_cleanup_free(ictx, "GPRS IMSI re-use"); + mm_ctx_cleanup_free(ictx, "GMM IMSI re-use"); } } OSMO_STRLCPY_ARRAY(ctx->imsi, mi.imsi); @@ -1330,7 +1330,7 @@ get_value_string(gsm48_gmm_cause_names, reject_cause), reject_cause); rc = gsm48_tx_gmm_att_rej_oldmsg(msg, reject_cause); if (ctx) - mm_ctx_cleanup_free(ctx, "GPRS ATTACH REJ"); + mm_ctx_cleanup_free(ctx, "GMM ATTACH REJ"); else if (llme) gprs_llgmm_unassign(llme); @@ -1343,7 +1343,7 @@ { struct sgsn_signal_data sig_data; /* only in case SGSN offered new P-TMSI */ - LOGMMCTXP(LOGL_INFO, mmctx, "-> ATTACH COMPLETE\n"); + LOGMMCTXP(LOGL_INFO, mmctx, "-> GMM ATTACH COMPLETE\n"); #ifdef BUILD_IU if (mmctx->iu.ue_ctx) { @@ -1430,7 +1430,7 @@ memset(&sig_data, 0, sizeof(sig_data)); sig_data.mm = ctx; osmo_signal_dispatch(SS_SGSN, S_SGSN_DETACH, &sig_data); - mm_ctx_cleanup_free(ctx, "GPRS DETACH REQUEST"); + mm_ctx_cleanup_free(ctx, "GMM DETACH REQUEST"); } return rc; @@ -1450,7 +1450,7 @@ #endif rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_ROUTING_AREA_ACKED]); - LOGMMCTXP(LOGL_INFO, mm, "<- ROUTING AREA UPDATE ACCEPT\n"); + LOGMMCTXP(LOGL_INFO, mm, "<- GMM ROUTING AREA UPDATE ACCEPT\n"); mmctx2msgid(msg, mm); @@ -1770,7 +1770,7 @@ get_value_string(gsm48_gmm_cause_names, reject_cause), reject_cause); rc = gsm48_tx_gmm_ra_upd_rej(msg, reject_cause); if (mmctx) - mm_ctx_cleanup_free(mmctx, "GPRS RA UPDATE REJ"); + mm_ctx_cleanup_free(mmctx, "GMM RA UPDATE REJ"); else if (llme) gprs_llgmm_unassign(llme); #ifdef BUILD_IU @@ -1952,7 +1952,7 @@ { struct gsm48_hdr *gh = msgb_l3(msg); - LOGMMCTXP(LOGL_INFO, mmctx, "-> GPRS MM STATUS (cause: %s)\n", + LOGMMCTXP(LOGL_INFO, mmctx, "-> GMM STATUS (cause: %s)\n", get_value_string(gsm48_gmm_cause_names, gh->data[0])); return 0; @@ -2071,7 +2071,7 @@ if (!mmctx) goto null_mmctx; LOGMMCTXP(LOGL_INFO, mmctx, "-> DETACH ACK\n"); - mm_ctx_cleanup_free(mmctx, "GPRS DETACH ACK"); + mm_ctx_cleanup_free(mmctx, "GMM DETACH ACK"); rc = 0; break; case GSM48_MT_GMM_ATTACH_COMPL: @@ -2180,7 +2180,7 @@ if (mm->num_T_exp >= 5) { LOGMMCTXP(LOGL_NOTICE, mm, "T3370 expired >= 5 times\n"); gsm48_tx_gmm_att_rej(mm, GMM_CAUSE_MS_ID_NOT_DERIVED); - mm_ctx_cleanup_free(mm, "GPRS ATTACH REJECT (T3370)"); + mm_ctx_cleanup_free(mm, "GMM ATTACH REJECT (T3370)"); break; } /* re-tranmit IDENTITY REQUEST and re-start timer */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I58af41acdc4a04870b4cf2ea34a272d46d896254 Gerrit-Change-Number: 23737 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 Apr 13 10:40:38 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 13 Apr 2021 10:40:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix nsvc block and unblock vty command References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23738 ) Change subject: gprs_ns2: fix nsvc block and unblock vty command ...................................................................... gprs_ns2: fix nsvc block and unblock vty command e7dfeac8dcb3 introduced a regression in the block/unblock check as it was using the priv->initiate_block instead of priv->om_blocked. The initiate_block tracks who is responsible to unblock the NSVC. Fixes: e7dfeac8dcb3 ("gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset)") Change-Id: I516faea223e30b120a297faed10636daa554be8a --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/38/23738/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 9a6bfc2..7ed8299 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -785,7 +785,7 @@ int ns2_vc_block(struct gprs_ns2_vc *nsvc) { struct gprs_ns2_vc_priv *priv = nsvc->fi->priv; - if (priv->initiate_block) + if (priv->om_blocked) return -EALREADY; return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_OM_BLOCK, NULL); @@ -797,7 +797,7 @@ int ns2_vc_unblock(struct gprs_ns2_vc *nsvc) { struct gprs_ns2_vc_priv *priv = nsvc->fi->priv; - if (!priv->initiate_block) + if (!priv->om_blocked) return -EALREADY; return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_OM_UNBLOCK, NULL); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I516faea223e30b120a297faed10636daa554be8a Gerrit-Change-Number: 23738 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 Apr 13 11:20:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 13 Apr 2021 11:20:57 +0000 Subject: Change in osmo-ci[master]: disable gbproxy-latest TTCN3 tests for the time being. References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23739 ) Change subject: disable gbproxy-latest TTCN3 tests for the time being. ...................................................................... disable gbproxy-latest TTCN3 tests for the time being. The latest tagged libosmocore misses several important features and it is currently not economic to maintain a test suite for the older NS dialect. Change-Id: I3c87ec54c86ecbfe0c358178b4d8dafd613db584 --- M jobs/ttcn3-testsuites.yml 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/39/23739/1 diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml index 4478dc8..4c5f86e 100644 --- a/jobs/ttcn3-testsuites.yml +++ b/jobs/ttcn3-testsuites.yml @@ -183,9 +183,10 @@ - ttcn3-smlc-test-latest: blocking: "^(ttcn3|TTCN3-.*)-smlc-test.*" timer: 10 10 * * * - - ttcn3-gbproxy-test-latest: - blocking: "^(ttcn3|TTCN3-.*)-gbproxy-test.*" - timer: 20 10 * * * + # disabled until we have a stable release that supports IP-SNS in SGSN role + #- ttcn3-gbproxy-test-latest: + #blocking: "^(ttcn3|TTCN3-.*)-gbproxy-test.*" + #timer: 20 10 * * * - ttcn3-cbc-test-latest: blocking: "^(ttcn3|TTCN3-.*)-cbc-test.*" timer: 40 10 * * * -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3c87ec54c86ecbfe0c358178b4d8dafd613db584 Gerrit-Change-Number: 23739 Gerrit-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 Apr 13 11:22:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 13 Apr 2021 11:22:06 +0000 Subject: Change in osmo-ci[master]: disable gbproxy-latest TTCN3 tests for the time being. In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-ci/+/23739 ) Change subject: disable gbproxy-latest TTCN3 tests for the time being. ...................................................................... disable gbproxy-latest TTCN3 tests for the time being. The latest tagged libosmocore misses several important features and it is currently not economic to maintain a test suite for the older NS dialect. Change-Id: I3c87ec54c86ecbfe0c358178b4d8dafd613db584 --- M jobs/ttcn3-testsuites.yml 1 file changed, 7 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/39/23739/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3c87ec54c86ecbfe0c358178b4d8dafd613db584 Gerrit-Change-Number: 23739 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 Tue Apr 13 11:22:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 13 Apr 2021 11:22:38 +0000 Subject: Change in osmo-ci[master]: disable gbproxy-latest TTCN3 tests for the time being. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23739 ) Change subject: disable gbproxy-latest TTCN3 tests for the time being. ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3c87ec54c86ecbfe0c358178b4d8dafd613db584 Gerrit-Change-Number: 23739 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 13 Apr 2021 11: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 Tue Apr 13 11:22:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 13 Apr 2021 11:22:40 +0000 Subject: Change in osmo-ci[master]: disable gbproxy-latest TTCN3 tests for the time being. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23739 ) Change subject: disable gbproxy-latest TTCN3 tests for the time being. ...................................................................... disable gbproxy-latest TTCN3 tests for the time being. The latest tagged libosmocore misses several important features and it is currently not economic to maintain a test suite for the older NS dialect. Change-Id: I3c87ec54c86ecbfe0c358178b4d8dafd613db584 --- M jobs/ttcn3-testsuites.yml 1 file changed, 7 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml index 4478dc8..deaceae 100644 --- a/jobs/ttcn3-testsuites.yml +++ b/jobs/ttcn3-testsuites.yml @@ -183,9 +183,10 @@ - ttcn3-smlc-test-latest: blocking: "^(ttcn3|TTCN3-.*)-smlc-test.*" timer: 10 10 * * * - - ttcn3-gbproxy-test-latest: - blocking: "^(ttcn3|TTCN3-.*)-gbproxy-test.*" - timer: 20 10 * * * + # disabled until we have a stable release that supports IP-SNS in SGSN role + #- ttcn3-gbproxy-test-latest: + #blocking: "^(ttcn3|TTCN3-.*)-gbproxy-test.*" + #timer: 20 10 * * * - ttcn3-cbc-test-latest: blocking: "^(ttcn3|TTCN3-.*)-cbc-test.*" timer: 40 10 * * * @@ -286,9 +287,9 @@ #- TTCN3-centos-sccp-test-latest: # blocking: "^(ttcn3|TTCN3-.*)-sccp-test.*" # timer: 00 10 * * * - - TTCN3-centos-gbproxy-test-latest: - blocking: "^(ttcn3|TTCN3-.*)-gbproxy-test.*" - timer: 20 10 * * * + #- TTCN3-centos-gbproxy-test-latest: + #blocking: "^(ttcn3|TTCN3-.*)-gbproxy-test.*" + #timer: 20 10 * * * - TTCN3-centos-cbc-test-latest: blocking: "^(ttcn3|TTCN3-.*)-cbc-test.*" timer: 40 10 * * * -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3c87ec54c86ecbfe0c358178b4d8dafd613db584 Gerrit-Change-Number: 23739 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 Apr 13 11:25:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 13 Apr 2021 11:25:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix nsvc block and unblock vty command In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23738 ) Change subject: gprs_ns2: fix nsvc block and unblock vty command ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I516faea223e30b120a297faed10636daa554be8a Gerrit-Change-Number: 23738 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 13 Apr 2021 11: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 Tue Apr 13 11:25:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 13 Apr 2021 11:25:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix nsvc block and unblock vty command In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23738 ) Change subject: gprs_ns2: fix nsvc block and unblock vty command ...................................................................... gprs_ns2: fix nsvc block and unblock vty command e7dfeac8dcb3 introduced a regression in the block/unblock check as it was using the priv->initiate_block instead of priv->om_blocked. The initiate_block tracks who is responsible to unblock the NSVC. Fixes: e7dfeac8dcb3 ("gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset)") Change-Id: I516faea223e30b120a297faed10636daa554be8a --- M src/gb/gprs_ns2_vc_fsm.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_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 9a6bfc2..7ed8299 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -785,7 +785,7 @@ int ns2_vc_block(struct gprs_ns2_vc *nsvc) { struct gprs_ns2_vc_priv *priv = nsvc->fi->priv; - if (priv->initiate_block) + if (priv->om_blocked) return -EALREADY; return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_OM_BLOCK, NULL); @@ -797,7 +797,7 @@ int ns2_vc_unblock(struct gprs_ns2_vc *nsvc) { struct gprs_ns2_vc_priv *priv = nsvc->fi->priv; - if (!priv->initiate_block) + if (!priv->om_blocked) return -EALREADY; return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_OM_UNBLOCK, NULL); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I516faea223e30b120a297faed10636daa554be8a Gerrit-Change-Number: 23738 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 11:26:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 13 Apr 2021 11:26:25 +0000 Subject: Change in osmo-sgsn[master]: gprs_gmm.c: State proper GMM prefix logging rx/tx of GMM messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23737 ) Change subject: gprs_gmm.c: State proper GMM prefix logging rx/tx of GMM messages ...................................................................... Patch Set 1: Code-Review+2 might also make sense to centralize all that logging in one function somewhere, using the value_string for the message type. but well.... -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I58af41acdc4a04870b4cf2ea34a272d46d896254 Gerrit-Change-Number: 23737 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 13 Apr 2021 11:26: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 Apr 13 11:26:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 13 Apr 2021 11:26:59 +0000 Subject: Change in pysim[master]: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23723 ) Change subject: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 Gerrit-Change-Number: 23723 Gerrit-PatchSet: 3 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 13 Apr 2021 11:26: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 Apr 13 11:27:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 13 Apr 2021 11:27:37 +0000 Subject: Change in pysim[master]: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23723 ) Change subject: Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py ...................................................................... Use construct for EF_AD in pySim-{shell, prog, read}.py, cards.py Also serves as example for RFU (reserved for future use) fields which should not always be reset to zero in case they have been set on the uSIM for some reason. See pySim/ts_51_011.py, class EF_AD. * Add definitions for RFU {Flag, Bits, Byte, Bytes} * Use IntEnum for OP_MODE (convenient auto completion) * Remove obsolete definitions and imports * Update test results for all SIMs (opmode strings are shortened) Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 --- M pySim-prog.py M pySim-read.py M pySim-shell.py M pySim/cards.py M pySim/construct.py M pySim/ts_51_011.py M pysim-testdata/Fairwaves-SIM.ok M pysim-testdata/Wavemobile-SIM.ok M pysim-testdata/fakemagicsim.ok M pysim-testdata/sysmoISIM-SJA2.ok M pysim-testdata/sysmoUSIM-SJS1.ok M pysim-testdata/sysmosim-gr1.ok 12 files changed, 90 insertions(+), 58 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim-prog.py b/pySim-prog.py index 0abd190..4c85be7 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -146,7 +146,7 @@ parser.add_option("--opmode", dest="opmode", type="choice", help="Set UE Operation Mode in EF.AD (Administrative Data)", default=None, - choices=['{:02X}'.format(m) for m in list(EF_AD.OP_MODE.keys())], + choices=['{:02X}'.format(int(m)) for m in EF_AD.OP_MODE], ) parser.add_option("--epdgid", dest="epdgid", help="Set Home Evolved Packet Data Gateway (ePDG) Identifier. (Only FQDN format supported)", diff --git a/pySim-read.py b/pySim-read.py index 59c5762..8e4a512 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -28,7 +28,7 @@ import random import re import sys -from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD_mode_map +from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD from pySim.ts_31_102 import EF_UST_map, EF_USIM_ADF_map from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map @@ -230,11 +230,10 @@ (res, sw) = card.read_binary('AD') if sw == '9000': print("Administrative data: %s" % (res,)) - if res[:2] in EF_AD_mode_map: - print("\tMS operation mode: %s" % (EF_AD_mode_map[res[:2]],)) - else: - print("\tMS operation mode: (unknown 0x%s)" % (res[:2],)) - if int(res[4:6], 16) & 0x01: + ad = EF_AD() + decoded_data = ad.decode_hex(res) + print("\tMS operation mode: %s" % decoded_data['ms_operation_mode']) + if decoded_data['ofm']: print("\tCiphering Indicator: enabled") else: print("\tCiphering Indicator: disabled") diff --git a/pySim-shell.py b/pySim-shell.py index 2a7c377..a8db263 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -30,7 +30,7 @@ import sys from pathlib import Path -from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD_mode_map +from pySim.ts_51_011 import EF, DF, EF_SST_map from pySim.ts_31_102 import EF_UST_map, EF_USIM_ADF_map from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map diff --git a/pySim/cards.py b/pySim/cards.py index 5a39bda..9a19eed 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -175,29 +175,27 @@ # read from card raw_hex_data, sw = self._scc.read_binary(EF['AD'], length=None, offset=0) - raw_bin_data = h2b(raw_hex_data) - abstract_data = ad.decode_bin(raw_bin_data) + abstract_data = ad.decode_hex(raw_hex_data) # perform updates - if mnc: + if mnc and abstract_data['extensions']: mnclen = len(str(mnc)) if mnclen == 1: mnclen = 2 if mnclen > 3: raise RuntimeError('invalid length of mnc "{}"'.format(mnc)) - abstract_data['len_of_mnc_in_imsi'] = mnclen + abstract_data['extensions']['mnc_len'] = mnclen if opmode: - opmode_symb = ad.OP_MODE.get(int(opmode, 16)) - if opmode_symb: - abstract_data['ms_operation_mode'] = opmode_symb + opmode_num = int(opmode, 16) + if opmode_num in [int(v) for v in EF_AD.OP_MODE]: + abstract_data['ms_operation_mode'] = opmode_num else: raise RuntimeError('invalid opmode "{}"'.format(opmode)) if ofm: - abstract_data['specific_facilities']['ofm'] = bool(int(ofm, 16)) + abstract_data['ofm'] = bool(int(ofm, 16)) # write to card - raw_bin_data = ad.encode_bin(abstract_data) - raw_hex_data = b2h(raw_bin_data) + raw_hex_data = ad.encode_hex(abstract_data) data, sw = self._scc.update_binary(EF['AD'], raw_hex_data) return sw diff --git a/pySim/construct.py b/pySim/construct.py index 839497c..b0f03b7 100644 --- a/pySim/construct.py +++ b/pySim/construct.py @@ -47,3 +47,44 @@ # here we collect some shared / common definitions of data types LV = Prefixed(Int8ub, HexAdapter(GreedyBytes)) + +# Default value for Reserved for Future Use (RFU) bits/bytes +# See TS 31.101 Sec. "3.4 Coding Conventions" +__RFU_VALUE = 0 + +# Field that packs Reserved for Future Use (RFU) bit +FlagRFU = Default(Flag, __RFU_VALUE) + +# Field that packs Reserved for Future Use (RFU) byte +ByteRFU = Default(Byte, __RFU_VALUE) + +# Field that packs all remaining Reserved for Future Use (RFU) bytes +GreedyBytesRFU = Default(GreedyBytes, b'') + +def BitsRFU(n=1): + ''' + Field that packs Reserved for Future Use (RFU) bit(s) + as defined in TS 31.101 Sec. "3.4 Coding Conventions" + + Use this for (currently) unused/reserved bits whose contents + should be initialized automatically but should not be cleared + in the future or when restoring read data (unlike padding). + + Parameters: + n (Integer): Number of bits (default: 1) + ''' + return Default(BitsInteger(n), __RFU_VALUE) + +def BytesRFU(n=1): + ''' + Field that packs Reserved for Future Use (RFU) byte(s) + as defined in TS 31.101 Sec. "3.4 Coding Conventions" + + Use this for (currently) unused/reserved bytes whose contents + should be initialized automatically but should not be cleared + in the future or when restoring read data (unlike padding). + + Parameters: + n (Integer): Number of bytes (default: 1) + ''' + return Default(Bytes(n), __RFU_VALUE) diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index c21e86c..48649cd 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -319,22 +319,12 @@ 59: 'MMS User Connectivity Parameters', } -# 10.3.18 "EF.AD (Administrative data) " -EF_AD_mode_map = { - '00' : 'normal operation', - '80' : 'type approval operations', - '01' : 'normal operation + specific facilities', - '81' : 'type approval operations + specific facilities', - '02' : 'maintenance (off line)', - '04' : 'cell test operation', -} - - from pySim.utils import * from struct import pack, unpack from construct import * from construct import Optional as COptional -from pySim.construct import HexAdapter, BcdAdapter +from pySim.construct import HexAdapter, BcdAdapter, FlagRFU, ByteRFU, GreedyBytesRFU, BitsRFU, BytesRFU +import enum from pySim.filesystem import * import pySim.ts_102_221 @@ -553,30 +543,34 @@ # TS 51.011 Section 10.3.18 class EF_AD(TransparentEF): - OP_MODE = { - 0x00: 'normal', - 0x80: 'type_approval', - 0x01: 'normal_and_specific_facilities', - 0x81: 'type_approval_and_specific_facilities', - 0x02: 'maintenance_off_line', - 0x04: 'cell_test', - } - OP_MODE_reverse = dict(map(reversed, OP_MODE.items())) + class OP_MODE(enum.IntEnum): + normal = 0x00 + type_approval = 0x80 + normal_and_specific_facilities = 0x01 + type_approval_and_specific_facilities = 0x81 + maintenance_off_line = 0x02 + cell_test = 0x04 + #OP_MODE_DICT = {int(v) : str(v) for v in EF_AD.OP_MODE} + #OP_MODE_DICT_REVERSED = {str(v) : int(v) for v in EF_AD.OP_MODE} + def __init__(self, fid='6fad', sfid=None, name='EF.AD', desc='Administrative Data', size={3,4}): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) - def _decode_bin(self, raw_bin): - u = unpack('!BH', raw_bin[:3]) - ofm = True if u[1] & 1 else False - res = {'ms_operation_mode': self.OP_MODE.get(u[0], u[0]), 'specific_facilities': { 'ofm': ofm } } - if len(raw_bin) > 3: - res['len_of_mnc_in_imsi'] = int(raw_bin[3]) & 0xf - return res - def _encode_bin(self, abstract): - op_mode = self.OP_MODE_reverse[abstract['ms_operation_mode']] - res = pack('!BH', op_mode, abstract['specific_facilities']['ofm']) - if 'len_of_mnc_in_imsi' in abstract: - res += pack('!B', abstract['len_of_mnc_in_imsi']) - return res + self._construct = BitStruct( + # Byte 1 + 'ms_operation_mode'/Bytewise(Enum(Byte, EF_AD.OP_MODE)), + # Byte 2 + 'rfu1'/Bytewise(ByteRFU), + # Byte 3 + 'rfu2'/BitsRFU(7), + 'ofm'/Flag, + # Byte 4 (optional), + 'extensions'/COptional(Struct( + 'rfu3'/BitsRFU(4), + 'mnc_len'/BitsInteger(4), + # Byte 5..N-4 (optional, RFU) + 'extensions'/Bytewise(GreedyBytesRFU) + )) + ) # TS 51.011 Section 10.3.20 / 10.3.22 class EF_VGCS(TransRecEF): diff --git a/pysim-testdata/Fairwaves-SIM.ok b/pysim-testdata/Fairwaves-SIM.ok index e6fcfe3..f83f415 100644 --- a/pysim-testdata/Fairwaves-SIM.ok +++ b/pysim-testdata/Fairwaves-SIM.ok @@ -43,7 +43,7 @@ ACC: 0008 MSISDN: Not available Administrative data: 00000002 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: disabled SIM Service Table: ff3cc3ff030fff0f000fff03f0c0 Service 1 - CHV1 disable function diff --git a/pysim-testdata/Wavemobile-SIM.ok b/pysim-testdata/Wavemobile-SIM.ok index 1c78cc9..0682a70 100644 --- a/pysim-testdata/Wavemobile-SIM.ok +++ b/pysim-testdata/Wavemobile-SIM.ok @@ -50,7 +50,7 @@ ACC: abce MSISDN: Not available Administrative data: 00000102 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: enabled SIM Service Table: ff33ff0f3c00ff0f000cf0c0f0030000 Service 1 - CHV1 disable function diff --git a/pysim-testdata/fakemagicsim.ok b/pysim-testdata/fakemagicsim.ok index 1d1714f..11296f5 100644 --- a/pysim-testdata/fakemagicsim.ok +++ b/pysim-testdata/fakemagicsim.ok @@ -17,7 +17,7 @@ ACC: ffff MSISDN: Not available Administrative data: 000000 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: disabled SIM Service Table: ff3fff0f0300f003000c Service 1 - CHV1 disable function diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index ae332a8..dc7b865 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -55,7 +55,7 @@ ACC: 0200 MSISDN (NPI=1 ToN=3): 6766266 Administrative data: 00000002 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: disabled SIM Service Table: ff33ffff3f003f0f300cf0c3f00000 Service 1 - CHV1 disable function diff --git a/pysim-testdata/sysmoUSIM-SJS1.ok b/pysim-testdata/sysmoUSIM-SJS1.ok index 95f6967..bce3c9d 100644 --- a/pysim-testdata/sysmoUSIM-SJS1.ok +++ b/pysim-testdata/sysmoUSIM-SJS1.ok @@ -55,7 +55,7 @@ ACC: 0008 MSISDN (NPI=1 ToN=1): +77776336143 Administrative data: 00000002 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: disabled SIM Service Table: ff3fffff3f003f1ff00c00c0f00000 Service 1 - CHV1 disable function diff --git a/pysim-testdata/sysmosim-gr1.ok b/pysim-testdata/sysmosim-gr1.ok index f4b09c8..3aff2a3 100644 --- a/pysim-testdata/sysmosim-gr1.ok +++ b/pysim-testdata/sysmosim-gr1.ok @@ -17,7 +17,7 @@ ACC: 0008 MSISDN: Not available Administrative data: 000000 - MS operation mode: normal operation + MS operation mode: normal Ciphering Indicator: disabled SIM Service Table: ff3fff0f0f0000030000 Service 1 - CHV1 disable function -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I65e0a426f80a619fec38856a30e590f0e726b554 Gerrit-Change-Number: 23723 Gerrit-PatchSet: 4 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 12:20:40 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 13 Apr 2021 12:20:40 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23740 ) Change subject: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect ...................................................................... ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect Otherwise it will try to connect to 127.0.0.1. Fixes jenkins ttcn3 test TC_sns_1c1u_unconfigured_nsvc. Change-Id: I4b375a60c4f948c282337ca30643d14407f8239e --- M ttcn3-pcu-test/sns/PCU_Tests.cfg 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/40/23740/1 diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index 3d9fdf6..dc85f99 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -5,6 +5,11 @@ [LOGGING] [TESTPORT_PARAMETERS] +*.PCUVTY.CTRL_HOSTNAME := "172.18.14.101" +*.PCUVTY.PROMPT1 := "OsmoPCU> " +*.STATSVTY.CTRL_HOSTNAME := "172.18.14.101" +*.STATSVTY.PROMPT1 := "OsmoPCU> " + [MODULE_PARAMETERS] PCU_Tests.mp_pcu_sock_path := "/data/unix/pcu_bts" -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b375a60c4f948c282337ca30643d14407f8239e Gerrit-Change-Number: 23740 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 Apr 13 12:22:54 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 13 Apr 2021 12:22:54 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/docker-playground/+/23740 ) Change subject: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect ...................................................................... ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect Otherwise it will try to connect to 127.0.0.1. Fixes jenkins ttcn3 test TC_sns_1c1u_unconfigured_nsvc. Change-Id: I4b375a60c4f948c282337ca30643d14407f8239e --- M ttcn3-pcu-test/sns/PCU_Tests.cfg 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/40/23740/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b375a60c4f948c282337ca30643d14407f8239e Gerrit-Change-Number: 23740 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 12:41:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 13 Apr 2021 12:41:25 +0000 Subject: Change in osmo-gbproxy[master]: doc: include gb-ns2.adoc, not gb-variants.adoc In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23735 ) Change subject: doc: include gb-ns2.adoc, not gb-variants.adoc ...................................................................... Patch Set 1: Code-Review+2 Merging now, to prevent more master-osmo-gbproxy failures. -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I17b182db6068ca583078c66c9576029a28016fd4 Gerrit-Change-Number: 23735 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 13 Apr 2021 12:41: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 Apr 13 12:41:29 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 13 Apr 2021 12:41:29 +0000 Subject: Change in osmo-gbproxy[master]: doc: include gb-ns2.adoc, not gb-variants.adoc In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23735 ) Change subject: doc: include gb-ns2.adoc, not gb-variants.adoc ...................................................................... doc: include gb-ns2.adoc, not gb-variants.adoc Adjust to merge of gb-variants.adoc into gb-ns2.adoc in osmo-gsm-manuals I902b850528cbc04bd469590babd84cccf64300e8. Change-Id: I17b182db6068ca583078c66c9576029a28016fd4 --- M doc/manuals/osmogbproxy-usermanual.adoc 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/doc/manuals/osmogbproxy-usermanual.adoc b/doc/manuals/osmogbproxy-usermanual.adoc index 06bc098..454cf69 100644 --- a/doc/manuals/osmogbproxy-usermanual.adoc +++ b/doc/manuals/osmogbproxy-usermanual.adoc @@ -23,7 +23,7 @@ include::{srcdir}/chapters/gbproxy-sgsnpool.adoc[] -include::./common/chapters/gb-variants.adoc[] +include::./common/chapters/gb-ns2.adoc[] include::./common/chapters/gb.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I17b182db6068ca583078c66c9576029a28016fd4 Gerrit-Change-Number: 23735 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 14:08:37 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 13 Apr 2021 14:08:37 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23740 ) Change subject: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b375a60c4f948c282337ca30643d14407f8239e Gerrit-Change-Number: 23740 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 13 Apr 2021 14:08: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 Apr 13 14:09:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 13 Apr 2021 14:09:02 +0000 Subject: Change in osmo-sgsn[master]: gprs_gmm.c: State proper GMM prefix logging rx/tx of GMM messages In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23737 ) Change subject: gprs_gmm.c: State proper GMM prefix logging rx/tx of GMM messages ...................................................................... gprs_gmm.c: State proper GMM prefix logging rx/tx of GMM messages Change-Id: I58af41acdc4a04870b4cf2ea34a272d46d896254 --- M src/sgsn/gprs_gmm.c 1 file changed, 23 insertions(+), 23 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c index 545c8e7..f05167f 100644 --- a/src/sgsn/gprs_gmm.c +++ b/src/sgsn/gprs_gmm.c @@ -215,7 +215,7 @@ /* MMCTX might be NULL! */ - DEBUGP(DMM, "<- GPRS MM STATUS (cause: %s)\n", + DEBUGP(DMM, "<- GMM STATUS (cause: %s)\n", get_value_string(gsm48_gmm_cause_names, cause)); gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); @@ -241,7 +241,7 @@ /* MMCTX might be NULL! */ - DEBUGP(DMM, "<- GPRS MM DETACH REQ (type: %s, cause: %s)\n", + DEBUGP(DMM, "<- GMM DETACH REQ (type: %s, cause: %s)\n", get_value_string(gprs_det_t_mt_strs, detach_type), get_value_string(gsm48_gmm_cause_names, cause)); @@ -290,7 +290,7 @@ uint8_t *ptsig; #endif - LOGMMCTXP(LOGL_INFO, mm, "<- GPRS ATTACH ACCEPT (new P-TMSI=0x%08x)\n", mm->p_tmsi); + LOGMMCTXP(LOGL_INFO, mm, "<- GMM ATTACH ACCEPT (new P-TMSI=0x%08x)\n", mm->p_tmsi); rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_ATTACH_ACKED]); mmctx2msgid(msg, mm); @@ -354,7 +354,7 @@ { struct gsm48_hdr *gh; - LOGMMCTXP(LOGL_NOTICE, mm, "<- GPRS ATTACH REJECT: %s\n", + LOGMMCTXP(LOGL_NOTICE, mm, "<- GMM ATTACH REJECT: %s\n", get_value_string(gsm48_gmm_cause_names, gmm_cause)); rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_ATTACH_REJECTED]); @@ -388,7 +388,7 @@ /* MMCTX might be NULL! */ - DEBUGP(DMM, "<- GPRS MM DETACH ACC (force-standby: %d)\n", force_stby); + DEBUGP(DMM, "<- GMM DETACH ACC (force-standby: %d)\n", force_stby); rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_DETACH_ACKED]); gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); @@ -421,7 +421,7 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 ID REQ"); struct gsm48_hdr *gh; - LOGMMCTXP(LOGL_DEBUG, mm, "<- GPRS IDENTITY REQUEST: mi_type=%s\n", + LOGMMCTXP(LOGL_DEBUG, mm, "<- GMM IDENTITY REQUEST: mi_type=%s\n", gsm48_mi_type_name(id_type)); mmctx2msgid(msg, mm); @@ -456,7 +456,7 @@ uint8_t *m_rand, *m_cksn, rbyte; int rc; - LOGMMCTXP(LOGL_INFO, mm, "<- GPRS AUTH AND CIPHERING REQ (rand = %s," + LOGMMCTXP(LOGL_INFO, mm, "<- GMM AUTH AND CIPHERING REQ (rand = %s," " mmctx_is_r99=%d, vec->auth_types=0x%x", osmo_hexdump(vec->rand, sizeof(vec->rand)), mmctx_is_r99(mm), vec->auth_types); @@ -519,7 +519,7 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 AUTH CIPH REJ"); struct gsm48_hdr *gh; - LOGMMCTXP(LOGL_NOTICE, mm, "<- GPRS AUTH AND CIPH REJECT\n"); + LOGMMCTXP(LOGL_NOTICE, mm, "<- GMM AUTH AND CIPH REJECT\n"); mmctx2msgid(msg, mm); @@ -599,7 +599,7 @@ uint8_t res_len; int rc; - LOGMMCTXP(LOGL_INFO, ctx, "-> GPRS AUTH AND CIPH RESPONSE\n"); + LOGMMCTXP(LOGL_INFO, ctx, "-> GMM AUTH AND CIPH RESPONSE\n"); if (ctx->auth_triplet.key_seq == GSM_KEY_SEQ_INVAL) { LOGMMCTXP(LOGL_NOTICE, ctx, @@ -650,7 +650,7 @@ ctx->sec_ctx = check_auth_resp(ctx, false, &at->vec, res, res_len); if (!sgsn_mm_ctx_is_authenticated(ctx)) { rc = gsm48_tx_gmm_auth_ciph_rej(ctx); - mm_ctx_cleanup_free(ctx, "GPRS AUTH AND CIPH REJECT"); + mm_ctx_cleanup_free(ctx, "GMM AUTH AND CIPH REJECT"); return rc; } @@ -673,7 +673,7 @@ const uint8_t *auts; int rc; - LOGMMCTXP(LOGL_INFO, ctx, "-> GPRS AUTH AND CIPH FAILURE (cause = %s)\n", + LOGMMCTXP(LOGL_INFO, ctx, "-> GMM AUTH AND CIPH FAILURE (cause = %s)\n", get_value_string(gsm48_gmm_cause_names, gmm_cause)); tlv_parse(&tp, &gsm48_gmm_att_tlvdef, gh->data+1, msg->len - 1, 0, 0); @@ -713,7 +713,7 @@ LOGMMCTXP(LOGL_NOTICE, ctx, "Authentication failed\n"); rc = gsm48_tx_gmm_auth_ciph_rej(ctx); - mm_ctx_cleanup_free(ctx, "GPRS AUTH FAILURE"); + mm_ctx_cleanup_free(ctx, "GMM AUTH FAILURE"); return rc; } @@ -792,7 +792,7 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 SERVICE ACK"); struct gsm48_hdr *gh; - LOGMMCTXP(LOGL_INFO, mm, "<- GPRS SERVICE ACCEPT (P-TMSI=0x%08x)\n", mm->p_tmsi); + LOGMMCTXP(LOGL_INFO, mm, "<- GMM SERVICE ACCEPT (P-TMSI=0x%08x)\n", mm->p_tmsi); mmctx2msgid(msg, mm); @@ -813,7 +813,7 @@ { struct gsm48_hdr *gh; - LOGMMCTXP(LOGL_NOTICE, mm, "<- GPRS SERVICE REJECT: %s\n", + LOGMMCTXP(LOGL_NOTICE, mm, "<- GMM SERVICE REJECT: %s\n", get_value_string(gsm48_gmm_cause_names, gmm_cause)); gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); @@ -1087,7 +1087,7 @@ "p_tmsi_old=0x%08x\n", ictx->p_tmsi); - mm_ctx_cleanup_free(ictx, "GPRS IMSI re-use"); + mm_ctx_cleanup_free(ictx, "GMM IMSI re-use"); } } OSMO_STRLCPY_ARRAY(ctx->imsi, mi.imsi); @@ -1330,7 +1330,7 @@ get_value_string(gsm48_gmm_cause_names, reject_cause), reject_cause); rc = gsm48_tx_gmm_att_rej_oldmsg(msg, reject_cause); if (ctx) - mm_ctx_cleanup_free(ctx, "GPRS ATTACH REJ"); + mm_ctx_cleanup_free(ctx, "GMM ATTACH REJ"); else if (llme) gprs_llgmm_unassign(llme); @@ -1343,7 +1343,7 @@ { struct sgsn_signal_data sig_data; /* only in case SGSN offered new P-TMSI */ - LOGMMCTXP(LOGL_INFO, mmctx, "-> ATTACH COMPLETE\n"); + LOGMMCTXP(LOGL_INFO, mmctx, "-> GMM ATTACH COMPLETE\n"); #ifdef BUILD_IU if (mmctx->iu.ue_ctx) { @@ -1430,7 +1430,7 @@ memset(&sig_data, 0, sizeof(sig_data)); sig_data.mm = ctx; osmo_signal_dispatch(SS_SGSN, S_SGSN_DETACH, &sig_data); - mm_ctx_cleanup_free(ctx, "GPRS DETACH REQUEST"); + mm_ctx_cleanup_free(ctx, "GMM DETACH REQUEST"); } return rc; @@ -1450,7 +1450,7 @@ #endif rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_ROUTING_AREA_ACKED]); - LOGMMCTXP(LOGL_INFO, mm, "<- ROUTING AREA UPDATE ACCEPT\n"); + LOGMMCTXP(LOGL_INFO, mm, "<- GMM ROUTING AREA UPDATE ACCEPT\n"); mmctx2msgid(msg, mm); @@ -1770,7 +1770,7 @@ get_value_string(gsm48_gmm_cause_names, reject_cause), reject_cause); rc = gsm48_tx_gmm_ra_upd_rej(msg, reject_cause); if (mmctx) - mm_ctx_cleanup_free(mmctx, "GPRS RA UPDATE REJ"); + mm_ctx_cleanup_free(mmctx, "GMM RA UPDATE REJ"); else if (llme) gprs_llgmm_unassign(llme); #ifdef BUILD_IU @@ -1952,7 +1952,7 @@ { struct gsm48_hdr *gh = msgb_l3(msg); - LOGMMCTXP(LOGL_INFO, mmctx, "-> GPRS MM STATUS (cause: %s)\n", + LOGMMCTXP(LOGL_INFO, mmctx, "-> GMM STATUS (cause: %s)\n", get_value_string(gsm48_gmm_cause_names, gh->data[0])); return 0; @@ -2071,7 +2071,7 @@ if (!mmctx) goto null_mmctx; LOGMMCTXP(LOGL_INFO, mmctx, "-> DETACH ACK\n"); - mm_ctx_cleanup_free(mmctx, "GPRS DETACH ACK"); + mm_ctx_cleanup_free(mmctx, "GMM DETACH ACK"); rc = 0; break; case GSM48_MT_GMM_ATTACH_COMPL: @@ -2180,7 +2180,7 @@ if (mm->num_T_exp >= 5) { LOGMMCTXP(LOGL_NOTICE, mm, "T3370 expired >= 5 times\n"); gsm48_tx_gmm_att_rej(mm, GMM_CAUSE_MS_ID_NOT_DERIVED); - mm_ctx_cleanup_free(mm, "GPRS ATTACH REJECT (T3370)"); + mm_ctx_cleanup_free(mm, "GMM ATTACH REJECT (T3370)"); break; } /* re-tranmit IDENTITY REQUEST and re-start timer */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I58af41acdc4a04870b4cf2ea34a272d46d896254 Gerrit-Change-Number: 23737 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 14:09:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 13 Apr 2021 14:09:33 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23740 ) Change subject: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b375a60c4f948c282337ca30643d14407f8239e Gerrit-Change-Number: 23740 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 13 Apr 2021 14: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 Tue Apr 13 15:36:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 13 Apr 2021 15:36:57 +0000 Subject: Change in osmo-iuh[master]: iu_client: Log event sent to upper layer callback References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/23741 ) Change subject: iu_client: Log event sent to upper layer callback ...................................................................... iu_client: Log event sent to upper layer callback Change-Id: I2233df2b09ae46f28dd99d7540d71fee8e47b6ff --- M src/iu_client.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/41/23741/1 diff --git a/src/iu_client.c b/src/iu_client.c index 4b0acb0..06285ec 100644 --- a/src/iu_client.c +++ b/src/iu_client.c @@ -119,6 +119,8 @@ if (!ue_ctx->notification) return 0; + LOGPIU(LOGL_DEBUG, "Submit Iu event to upper layer: %s\n", ranap_iu_event_type_str(type)); + return global_iu_event_cb(ue_ctx, type, data); } -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I2233df2b09ae46f28dd99d7540d71fee8e47b6ff Gerrit-Change-Number: 23741 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 Apr 13 17:57:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 13 Apr 2021 17:57:31 +0000 Subject: Change in osmo-iuh[master]: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE ... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/23742 ) Change subject: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result ...................................................................... ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result This allows the SGSN always having feedback on the resolution of the release, hence being able to stay in PMM CONNECTED state until the resolution is received, then moving to PMM IDLE. Related: SYS#5389 Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0 --- M include/osmocom/ranap/iu_client.h M src/iu_client.c 2 files changed, 13 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/42/23742/1 diff --git a/include/osmocom/ranap/iu_client.h b/include/osmocom/ranap/iu_client.h index 24a5af9..5e946dd 100644 --- a/include/osmocom/ranap/iu_client.h +++ b/include/osmocom/ranap/iu_client.h @@ -75,9 +75,9 @@ int ranap_iu_tx_common_id(struct ranap_ue_conn_ctx *ue_ctx, const char *imsi); int ranap_iu_tx_release(struct ranap_ue_conn_ctx *ctx, const struct RANAP_Cause *cause); -/* transmit a Iu Release Command and free the ctx afterwards. - * If a Release Complete is not received within timeout s, - * release the SCCP connection. */ +/* Transmit a Iu Release Command and submit event RANAP_IU_EVENT_IU_RELEASE upon + Release Complete or timeout. Caller is responsible to free the context and + closing the SCCP connection (ranap_iu_free_ue) upon recieval of the event. */ void ranap_iu_tx_release_free(struct ranap_ue_conn_ctx *ctx, const struct RANAP_Cause *cause, int timeout); diff --git a/src/iu_client.c b/src/iu_client.c index 06285ec..da433da 100644 --- a/src/iu_client.c +++ b/src/iu_client.c @@ -124,6 +124,12 @@ return global_iu_event_cb(ue_ctx, type, data); } +static void ue_conn_ctx_release_timeout_cb(void *ctx_) +{ + struct ranap_ue_conn_ctx *ctx = (struct ranap_ue_conn_ctx *)ctx_; + global_iu_event(ctx, RANAP_IU_EVENT_IU_RELEASE, NULL); +} + static struct ranap_ue_conn_ctx *ue_conn_ctx_alloc(struct ranap_iu_rnc *rnc, uint32_t conn_id) { struct ranap_ue_conn_ctx *ctx = talloc_zero(talloc_iu_ctx, struct ranap_ue_conn_ctx); @@ -133,7 +139,7 @@ ctx->notification = true; ctx->free_on_release = false; osmo_timer_setup(&ctx->release_timeout, - (void *)(void *) ranap_iu_free_ue, + ue_conn_ctx_release_timeout_cb, ctx); llist_add(&ctx->list, &ue_conn_ctx_list); @@ -501,10 +507,9 @@ ctx->notification = false; ctx->free_on_release = true; int ret = ranap_iu_tx_release(ctx, cause); - if (ret) { - ranap_iu_free_ue(ctx); - return; - } + /* On Tx failure, trigger timeout immediately, as the response will never arrive */ + if (ret) + timeout = 0; osmo_timer_schedule(&ctx->release_timeout, timeout, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0 Gerrit-Change-Number: 23742 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 Apr 13 18:06:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 13 Apr 2021 18:06:48 +0000 Subject: Change in osmo-sgsn[master]: mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23743 ) Change subject: mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED ...................................................................... mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED This Iu timer is Osmocom specific, but is made to resemble T3314 times from GERAN (also named READY timer). The READY timer mission is to make the MM state transition from READY to STANDBY, which in PMM (UTRAN) matches the transition from CONNECTED to IDLE. Instead, the patch introducing the timer was making it transition to DETACHED directly, but this was clearly not the intention: * Detaching a UE after 44 seconds (default value for T3314) is overkill. * The comment describing it says: "Iu User inactivity timer. On expiry release Iu connection". The release of Iu connection happens during the CONNECTED->IDLE transition (that's basically the difference between both states). The transition CONNECTED->IDLE is done by means of calling sgsn_ranap_iu_release_free(), which will eventually answer with a event RANAP_IU_EVENT_IU_RELEASE from lower layers when the Release Complete is received. At that point, osmo-sgsn code frees the connection and transitions to IDLE state. This way we maintain the state according to the connection existance. Related: SYS#5389 Fixes: 3bad31bcb42c3449e6847ea7495578817029a2e1 Change-Id: I7279102ad51b0c39eb6d04c129986984112d15cc --- M src/sgsn/gprs_mm_state_iu_fsm.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/43/23743/1 diff --git a/src/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c index 69b4ef0..7f2d3b4 100644 --- a/src/sgsn/gprs_mm_state_iu_fsm.c +++ b/src/sgsn/gprs_mm_state_iu_fsm.c @@ -64,7 +64,6 @@ break; case E_PMM_USER_INACTIVITY: sgsn_ranap_iu_release_free(ctx, &user_inactive_cause); - mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); break; case E_PMM_RA_UPDATE: break; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7279102ad51b0c39eb6d04c129986984112d15cc Gerrit-Change-Number: 23743 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 Apr 13 18:07:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 13 Apr 2021 18:07:42 +0000 Subject: Change in osmo-sgsn[master]: mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23743 ) Change subject: mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED ...................................................................... mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED This Iu timer is Osmocom specific, but is made to resemble T3314 times from GERAN (also named READY timer). The READY timer mission is to make the MM state transition from READY to STANDBY, which in PMM (UTRAN) matches the transition from CONNECTED to IDLE. Instead, the patch introducing the timer was making it transition to DETACHED directly, but this was clearly not the intention: * Detaching a UE after 44 seconds (default value for T3314) is overkill. * The comment describing it says: "Iu User inactivity timer. On expiry release Iu connection". The release of Iu connection happens during the CONNECTED->IDLE transition (that's basically the difference between both states). The transition CONNECTED->IDLE is done by means of calling sgsn_ranap_iu_release_free(), which will eventually answer with a event RANAP_IU_EVENT_IU_RELEASE from lower layers when the Release Complete is received. At that point, osmo-sgsn code frees the connection and transitions to IDLE state. This way we maintain the state according to the connection existance. Related: SYS#5389 Related: osmo-iuh.git Change-Id Iac822c74e56750dc40e94573eae0e20853ff68c0 Fixes: 3bad31bcb42c3449e6847ea7495578817029a2e1 Change-Id: I7279102ad51b0c39eb6d04c129986984112d15cc --- M src/sgsn/gprs_mm_state_iu_fsm.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/43/23743/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7279102ad51b0c39eb6d04c129986984112d15cc Gerrit-Change-Number: 23743 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 Tue Apr 13 18:36:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 13 Apr 2021 18:36:16 +0000 Subject: Change in osmo-sgsn[master]: mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23743 to look at the new patch set (#3). Change subject: mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED ...................................................................... mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED This Iu timer is Osmocom specific, but is made to resemble T3314 timer from GERAN (also named READY timer). The READY timer mission is to make the MM state transition from READY to STANDBY, which in PMM (UTRAN) matches the transition from CONNECTED to IDLE. Instead, the patch introducing the timer was making it transition to DETACHED directly, but this was clearly not the intention: * Detaching a UE after 44 seconds (default value for T3314) is overkill. * The comment describing it says: "Iu User inactivity timer. On expiry release Iu connection". The release of Iu connection happens during the CONNECTED->IDLE transition (that's basically the difference between both states). The transition CONNECTED->IDLE is done by means of calling sgsn_ranap_iu_release_free(), which will eventually answer with a event RANAP_IU_EVENT_IU_RELEASE from lower layers when the Release Complete is received. At that point, osmo-sgsn code frees the connection and transitions to IDLE state. This way we maintain the state according to the connection existance. Related: SYS#5389 Related: osmo-iuh.git Change-Id Iac822c74e56750dc40e94573eae0e20853ff68c0 Fixes: 3bad31bcb42c3449e6847ea7495578817029a2e1 Change-Id: I7279102ad51b0c39eb6d04c129986984112d15cc --- M src/sgsn/gprs_mm_state_iu_fsm.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/43/23743/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7279102ad51b0c39eb6d04c129986984112d15cc Gerrit-Change-Number: 23743 Gerrit-PatchSet: 3 Gerrit-Owner: pespin 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 Tue Apr 13 18:37:56 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 13 Apr 2021 18:37:56 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line 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/libosmo-abis/+/21118 to look at the new patch set (#7). Change subject: Configure E1 pcap file per line ...................................................................... Configure E1 pcap file per line In order to allow configuration of pcap files per e1_line the vty command is now (for example line 0): e1_line 0 pcap /tmp/e1cap.pcap in place of: pcap /tmp/e1cap.pcap Also ensures that a configured pcap appears in 'show running-config' and is written to the config file on issuing 'write' Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf --- M include/osmocom/abis/e1_input.h M src/e1_input.c M src/e1_input_vty.c 3 files changed, 108 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/18/21118/7 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 13 19:30:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 13 Apr 2021 19:30:04 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/21118 ) Change subject: Configure E1 pcap file per line ...................................................................... Patch Set 7: Code-Review-1 (5 comments) CR-1 due to fd leak. https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/include/osmocom/abis/e1_input.h File include/osmocom/abis/e1_input.h: https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/include/osmocom/abis/e1_input.h at 324 PS7, Line 324: e1_set_pcap_fd Should we deprecate the old symbol now? https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input.c File src/e1_input.c: https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input.c at 144 PS7, Line 144: pcap_hdr It can also be 'static' I think, so it will definitely end up in RODATA. https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input_vty.c File src/e1_input_vty.c: https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input_vty.c at 273 PS7, Line 273: return CMD_WARNING; I think you need to close(fd) before you return from here. https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input_vty.c at 275 PS7, Line 275: if (line->pcap_file) { osmo_talloc_replace_string() will free() it automatically, remove this block. https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input_vty.c at 295 PS7, Line 295: void This pointer cast is not needed because it's not 'const'. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 13 Apr 2021 19:30: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 Tue Apr 13 22:58:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 13 Apr 2021 22:58:07 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: clarify modulation specific length of Soft-/Hard-bits In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23688 ) Change subject: TRXD: clarify modulation specific length of Soft-/Hard-bits ...................................................................... TRXD: clarify modulation specific length of Soft-/Hard-bits Change-Id: Icd807810060372c8f27d81f8a825ea9a5f384c1c Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 19 insertions(+), 19 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc index d1aa566..a3a78ab 100644 --- a/common/chapters/trx_if.adoc +++ b/common/chapters/trx_if.adoc @@ -477,7 +477,7 @@ training sequence is compared to the actual training sequence and the result expressed in centiBels. -Soft-bits: 148 bytes for GSM, 444 bytes for EDGE:: +Soft-bits: 148 x N bytes (variable length, N defined by modulation type):: Contains the uplink burst. Unlike the downlink bursts, the uplink bursts are designated using the soft-bits notation, so the receiver can indicate its assurance from 0 to -127 that a given bit is 1, and from 0 to +127 that a given @@ -525,23 +525,23 @@ .Modulation and TS set number ---- -+-----------------+---------------------------------------+ -| 7 6 5 4 3 2 1 0 | bit numbers (value range) | -+-----------------+---------------------------------------+ -| . 0 0 X X . . . | GMSK, 4 TS sets (0..3) | -+-----------------+---------------------------------------+ -| . 0 1 0 X . . . | 8-PSK, 2 TS sets (0..1) | -+-----------------+---------------------------------------+ -| . 0 1 1 0 . . . | GMSK, Access Burst (see note) | -+-----------------+---------------------------------------+ -| . 0 1 1 1 . . . | RFU (Reserved for Future Use) | -+-----------------+---------------------------------------+ -| . 1 0 0 X . . . | 16QAM, 2 TS sets (0..1) | -+-----------------+---------------------------------------+ -| . 1 0 1 X . . . | 32QAM, 2 TS sets (0..1) | -+-----------------+---------------------------------------+ -| . 1 1 X X . . . | AQPSK (Downlink), 4 TS sets (0..3) | -+-----------------+---------------------------------------+ ++-----------------+---------------------------------------+--------------+ +| 7 6 5 4 3 2 1 0 | Description | Burst length | ++-----------------+---------------------------------------+--------------+ +| . 0 0 X X . . . | GMSK, 4 TS sets (0..3) | 148 x 1 | ++-----------------+---------------------------------------+--------------+ +| . 0 1 0 X . . . | 8-PSK, 2 TS sets (0..1) | 148 x 3 | ++-----------------+---------------------------------------+--------------+ +| . 0 1 1 0 . . . | GMSK, Access Burst (see note) | 148 x 1 | ++-----------------+---------------------------------------+--------------+ +| . 0 1 1 1 . . . | RFU (Reserved for Future Use) | ------- | ++-----------------+---------------------------------------+--------------+ +| . 1 0 0 X . . . | 16QAM, 2 TS sets (0..1) | 148 x 4 | ++-----------------+---------------------------------------+--------------+ +| . 1 0 1 X . . . | 32QAM, 2 TS sets (0..1) | 148 x 5 | ++-----------------+---------------------------------------+--------------+ +| . 1 1 X X . . . | AQPSK (Downlink), 4 TS sets (0..3) | 148 x 2 | ++-----------------+---------------------------------------+--------------+ ---- NOTE: A radio block on PDCH is carried by the sequence of four Normal Bursts. @@ -591,6 +591,6 @@ in dB. The absolute value is set on the control interface, so the resulting power is calculated as follows: `full_scale - (absolute_red + relative_red)`. -Hard-bits: 148 bytes for GSM, 444 bytes for EDGE:: +Hard-bits: 148 x N bytes (variable length, N defined by modulation type):: Contains the downlink burst. Each hard-bit (1 or 0) of the burst is represented using one byte (0x01 or 0x00 respectively). -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23688 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: Icd807810060372c8f27d81f8a825ea9a5f384c1c Gerrit-Change-Number: 23688 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 02:08:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 02:08:34 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: generalze description of the 'RFU' ('PAD') field In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 to look at the new patch set (#3). Change subject: TRXD: generalze description of the 'RFU' ('PAD') field ...................................................................... TRXD: generalze description of the 'RFU' ('PAD') field This field will also appear in TRXDv2 packet diagrams, in several places. Let's rename it to 'RFU', because it's actually something that may want to use in the future, rather than just padding. Change-Id: I9ac9d387325627d18811fae1d0d7930b69f08129 Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 9 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/87/23687/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 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: I9ac9d387325627d18811fae1d0d7930b69f08129 Gerrit-Change-Number: 23687 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 02:08:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 02:08:34 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: rework description of the NOPE / IDLE frame indication References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23744 ) Change subject: TRXD: rework description of the NOPE / IDLE frame indication ...................................................................... TRXD: rework description of the NOPE / IDLE frame indication * Add 'referred to as NOPE.ind', this is how we usueally call it; * Change 'IDLE / NOPE' to 'NOPE / IDLE', because: ** there can be 'IDLE TDMA frame', but not 'NOPE frame'; * Avoid using 'high' and 'low' terms for bit values. * Introduce and use macros for '0'B and '1'B. Change-Id: I72e0c785efb8a89b664486740ef312e77b81c01a Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 11 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/44/23744/1 diff --git a/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc index a3a78ab..04da347 100644 --- a/common/chapters/trx_if.adoc +++ b/common/chapters/trx_if.adoc @@ -1,3 +1,7 @@ +// Common attributes (macros) used in this document +:bit-zero: '0\'B +:bit-one: '1\'B + [[trx_if]] == TRX Manager UDP socket interface @@ -504,7 +508,7 @@ +-----------------+---------------------------------------+ | 7 6 5 4 3 2 1 0 | bit numbers (value range) | +-----------------+---------------------------------------+ -| X . . . . . . . | IDLE / nope frame indication (0 or 1) | +| X . . . . . . . | NOPE / IDLE frame indication (0 or 1) | +-----------------+---------------------------------------+ | . X X X X . . . | Modulation, TS set number (see below) | +-----------------+---------------------------------------+ @@ -512,11 +516,12 @@ +-----------------+---------------------------------------+ ---- -IDLE / nope frame indication:: -The bit number 7 (MSB) is set to high when either nothing has been detected, so -the BTS scheduler keeps processing bursts without gaps, or during IDLE frames, -so the current noise levels can be delivered. Other bits are ignored, and should -be set to low (`0`) in this case. The field "Soft-bits" is omited. +NOPE / IDLE frame indication (referred to as NOPE.ind):: +The bit number 7 (MSB) shall be set to {bit-one} by the transceiver when either +nothing has been detected, so the BTS scheduler keeps processing bursts without +gaps, or during IDLE frames, so the current noise levels can be delivered. In +this case the remaining bits become meaningless and shall be set to {bit-zero}. +The payload (`Soft-bits` or `Hard-bits`) is omited. Modulation and TS set number:: GMSK has 4 sets of training sequences (see tables 5.2.3a-d), while 8-PSK (see -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23744 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: I72e0c785efb8a89b664486740ef312e77b81c01a Gerrit-Change-Number: 23744 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 Apr 14 02:30:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 02:30:38 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: fix encoding of TRXDv2 specific Power field References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23745 ) Change subject: trx_toolkit: fix encoding of TRXDv2 specific Power field ...................................................................... trx_toolkit: fix encoding of TRXDv2 specific Power field Change-Id: I482f72fd9305c51f43a0339d03904fb693d90ac9 Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/trxd_proto.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/45/23745/1 diff --git a/src/target/trx_toolkit/trxd_proto.py b/src/target/trx_toolkit/trxd_proto.py index 80d8de8..545906f 100644 --- a/src/target/trx_toolkit/trxd_proto.py +++ b/src/target/trx_toolkit/trxd_proto.py @@ -99,8 +99,8 @@ return 1 def to_bytes(self, vals: dict) -> bytes: - blob = (vals['red'] & 0b1111) \ - | (abs(vals['scpir']) << 4) // 2 \ + blob = ((vals['red'] // 2) & 0b1111) \ + | (((abs(vals['scpir']) // 2) & 0b111) << 4) \ | (0x80 if (vals['scpir'] < 0) else 0x00) return bytes((blob,)) -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I482f72fd9305c51f43a0339d03904fb693d90ac9 Gerrit-Change-Number: 23745 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 Apr 14 02:32:03 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 02:32:03 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 to look at the new patch set (#5). Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... TRXD: add documentation for TRXDv2 protocol Change-Id: I03b2beeb535848b31fd629ba3cd330b43072c08b Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 277 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/67/22867/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 07:20:03 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 14 Apr 2021 07:20:03 +0000 Subject: Change in docker-playground[master]: osmo-gsm-tester: install mongo-db only for x86_64 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23746 ) Change subject: osmo-gsm-tester: install mongo-db only for x86_64 ...................................................................... osmo-gsm-tester: install mongo-db only for x86_64 mongo-db is only available for x86_64 from their third party repository. Don't attempt to install it for another architecture. This should fix the currently failing "update-osmo-ci-on-slaves" jenkins job. I've considered disabling the build of the osmo-gsm-tester container for ARM altogether, but the osmo-gsm-tester manual explicitly mentions ARM trails. Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 --- M osmo-gsm-tester/Dockerfile 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/46/23746/1 diff --git a/osmo-gsm-tester/Dockerfile b/osmo-gsm-tester/Dockerfile index dc8ba1b..7f614dc 100644 --- a/osmo-gsm-tester/Dockerfile +++ b/osmo-gsm-tester/Dockerfile @@ -114,9 +114,11 @@ # install open5gs dependencies: (mongodb not available in Debian) # systemctl stuff: workaround for https://jira.mongodb.org/browse/SERVER-54386 ADD https://www.mongodb.org/static/pgp/server-4.4.asc /tmp/mongodb-server-4.4.asc -RUN apt-key add /tmp/mongodb-server-4.4.asc && \ +RUN [ "$(arch)" = "x86_64" ] && \ + apt-key add /tmp/mongodb-server-4.4.asc && \ echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" > /etc/apt/sources.list.d/mongodb-org-4.4.list -RUN apt-get update && \ +RUN [ "$(arch)" = "x86_64" ] && \ + apt-get update && \ systemctl_path=$(which systemctl) && \ mv $systemctl_path /tmp/systemctl && \ apt-get install -y --no-install-recommends mongodb-org && \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 Gerrit-Change-Number: 23746 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 07:33:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 14 Apr 2021 07:33:53 +0000 Subject: Change in docker-playground[master]: osmo-gsm-tester: open5gs deps only for x86_64 In-Reply-To: References: Message-ID: Hello pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/23746 to look at the new patch set (#2). Change subject: osmo-gsm-tester: open5gs deps only for x86_64 ...................................................................... osmo-gsm-tester: open5gs deps only for x86_64 mongo-db is only available for x86_64 from their third party repository. Don't attempt to install it for another architecture. As this is part of the open5gs dependencies, don't install any of them either. This should fix the currently failing "update-osmo-ci-on-slaves" jenkins job. I've considered disabling the build of the osmo-gsm-tester container for ARM altogether, but the osmo-gsm-tester manual explicitly mentions ARM trails. Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 --- M osmo-gsm-tester/Dockerfile 1 file changed, 6 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/46/23746/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 Gerrit-Change-Number: 23746 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 07:40:48 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 14 Apr 2021 07:40:48 +0000 Subject: Change in docker-playground[master]: osmo-gsm-tester: open5gs deps only for x86_64 In-Reply-To: References: Message-ID: Hello pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/23746 to look at the new patch set (#3). Change subject: osmo-gsm-tester: open5gs deps only for x86_64 ...................................................................... osmo-gsm-tester: open5gs deps only for x86_64 mongo-db is only available for x86_64 from their third party repository. Don't attempt to install it for another architecture. As this is part of the open5gs dependencies, don't install any of them either. This should fix the currently failing "update-osmo-ci-on-slaves" jenkins job. I've considered disabling the build of the osmo-gsm-tester container for ARM altogether, but the osmo-gsm-tester manual explicitly mentions ARM trails. Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 --- M osmo-gsm-tester/Dockerfile 1 file changed, 40 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/46/23746/3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 Gerrit-Change-Number: 23746 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 07:41:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 14 Apr 2021 07:41:39 +0000 Subject: Change in docker-playground[master]: osmo-gsm-tester: open5gs deps only for x86_64 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23746 ) Change subject: osmo-gsm-tester: open5gs deps only for x86_64 ...................................................................... Patch Set 3: Verified+1 tested both code paths -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 Gerrit-Change-Number: 23746 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 07:41: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 Apr 14 07:50:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 14 Apr 2021 07:50:09 +0000 Subject: Change in docker-playground[master]: osmo-gsm-tester: open5gs deps only for x86_64 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23746 ) Change subject: osmo-gsm-tester: open5gs deps only for x86_64 ...................................................................... Patch Set 3: Interesting, we also have a i386 jenkins node, where the job failed: https://jenkins.osmocom.org/jenkins/job/update-osmo-ci-on-slaves/label=gtp0-deb10build32/828/console -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 Gerrit-Change-Number: 23746 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 07:50: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 Apr 14 09:35:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 09:35:10 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: generalze description of the 'RFU' ('PAD') field In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 ) Change subject: TRXD: generalze description of the 'RFU' ('PAD') field ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687/3//COMMIT_MSG at 7 PS3, Line 7: TRXD: generalze description of the 'RFU' ('PAD') field generalize -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 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: I9ac9d387325627d18811fae1d0d7930b69f08129 Gerrit-Change-Number: 23687 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 09:35: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 Wed Apr 14 09:36:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 09:36:09 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: fix encoding of TRXDv2 specific Power field In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23745 ) Change subject: trx_toolkit: fix encoding of TRXDv2 specific Power field ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I482f72fd9305c51f43a0339d03904fb693d90ac9 Gerrit-Change-Number: 23745 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 09:36: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 Apr 14 09:36:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 09:36:56 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: rework description of the NOPE / IDLE frame indication In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23744 ) Change subject: TRXD: rework description of the NOPE / IDLE frame indication ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23744 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: I72e0c785efb8a89b664486740ef312e77b81c01a Gerrit-Change-Number: 23744 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 09:36: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 Apr 14 09:48:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 09:48:46 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc File common/chapters/trx_if.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc at 365 PS5, Line 365: Messages on the data interface carry one or optionally multiple radio bursts per Not yet clarified here: Are several bursts from same channel? or from different channels? So, in other words: are we batching several TS for one FN in a udp packet, or are we batching several FN of one (or several) TS in a udp packet? answer: write a reference to <> https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc at 516 PS5, Line 516: RFU: variable bit-length:: is this variable bit length? isn't it a byte? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 09:48: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 Wed Apr 14 09:49:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 09:49:34 +0000 Subject: Change in docker-playground[master]: osmo-gsm-tester: open5gs deps only for x86_64 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23746 ) Change subject: osmo-gsm-tester: open5gs deps only for x86_64 ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 Gerrit-Change-Number: 23746 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 09:49: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 Apr 14 10:15:33 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 14 Apr 2021 10:15:33 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23740 ) Change subject: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b375a60c4f948c282337ca30643d14407f8239e Gerrit-Change-Number: 23740 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 10:15: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 Apr 14 10:19:30 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 10:19:30 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 10: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 Wed Apr 14 10:22:14 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 10:22:14 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: fix encoding of TRXDv2 specific Power field In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23745 ) Change subject: trx_toolkit: fix encoding of TRXDv2 specific Power field ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmocom-bb/+/23745/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmocom-bb/+/23745/1//COMMIT_MSG at 8 PS1, Line 8: Maybe a hint of what exactly is wrong with the old encoding would be helpful. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I482f72fd9305c51f43a0339d03904fb693d90ac9 Gerrit-Change-Number: 23745 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 10:22: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 Wed Apr 14 10:27:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 10:27:09 +0000 Subject: Change in osmo-gbproxy[master]: gitignore: add gbproxy_vty_reference.xml In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23736 ) Change subject: gitignore: add gbproxy_vty_reference.xml ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I33a0df37b4446b12b53c9e1eace8e5766278be1f Gerrit-Change-Number: 23736 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 10: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 Wed Apr 14 10:45:24 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 10:45:24 +0000 Subject: Change in pysim[master]: init_reader: Print device name/number of chosen reader In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23720 ) Change subject: init_reader: Print device name/number of chosen reader ...................................................................... Patch Set 1: Code-Review-1 (1 comment) See comment, unfortunately this interferes with the tests. https://gerrit.osmocom.org/c/pysim/+/23720/1/pySim/transport/__init__.py File pySim/transport/__init__.py: https://gerrit.osmocom.org/c/pysim/+/23720/1/pySim/transport/__init__.py at 185 PS1, Line 185: print("Using PC/SC reader interface (dev_number=%u)" % opts.pcsc_dev) Since this line also ends up in the results we use to compare when we are running the tests this is is a problem. We had this line before, but we decided to remove it. (We could also keep it but then we need to regenerate the .ok files and take care that the reader enumeration keeps always the same. Also we must not swap cards then.) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I87fd934243bc3556fd6db0ce6d219c22a60c2db4 Gerrit-Change-Number: 23720 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 14 Apr 2021 10:45:24 +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 Apr 14 10:46:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 10:46:09 +0000 Subject: Change in pysim[master]: Move reader related argument parser to transport module In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23721 ) Change subject: Move reader related argument parser to transport module ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If77f53850e1ca65f42cf1dca3e0f460dac1b0d1a Gerrit-Change-Number: 23721 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 14 Apr 2021 10:46: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 Apr 14 10:46:33 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 10:46:33 +0000 Subject: Change in pysim[master]: pySim-read: Migrate over to use shared argparse from transport In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23722 ) Change subject: pySim-read: Migrate over to use shared argparse from transport ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I12ca1a484a5d6e84820d9761c9701f8a94381f66 Gerrit-Change-Number: 23722 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 14 Apr 2021 10:46: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 Apr 14 10:48:12 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 10:48:12 +0000 Subject: Change in pysim[master]: cards.py: unify card programming In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/15501 ) Change subject: cards.py: unify card programming ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/pysim/+/15501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib757b1433c075c635fe43542103acae2167a1a15 Gerrit-Change-Number: 15501 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 10:48:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 10:48:18 +0000 Subject: Change in osmo-sgsn[master]: Iu: Drop timer X3314 References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23747 ) Change subject: Iu: Drop timer X3314 ...................................................................... Iu: Drop timer X3314 This Iu timer is Osmocom specific, but is made to resemble T3314 timer from GERAN (also named READY timer). The idea of this activity timer was to arm it whenever PMM state transitions to CONNECTED, and then rearm it every time there's some sort of activity, until there's none for some time, then we send a Release Command to close the conn with the HNGBW/RNC. That's the same principle as per spec-defined READY timer T3314. However, there's still a fundamental problem with it: GTP-U in GERAN passes through the SGSN, but in UTRAN, the GTP-U stream goes directly from the HnodeB to the GGSN. Hence, there's no proper way to re-arm this timer upon activity in UTRAN, basically because the SGSN will never see (userplane data) activity. That explains why the E_MM_PDU_RECEPTION event exists for mm_state_gb_fsm, but doesn't exist for mm_state_iu_fsm. As a result, the timer is currently never rearmed, which means it will transition to IDLE always after 44 seconds (default value) once it went into CONNECTED state. In UTRAN, there is a SCCP connection for each subscriber between RNC/hNB and SGSN. If the subscriber is no longer in the respective state, the RNC/hNB should release that IuPS SCCP connection, whcih in turn means the SGSN cleans up its state. Furthermore, SCCP has a built-in IT (inactivity timer). So should the RNC/hNB die, that timer would time out, and the SGSN-side local SCCP stack (provider) wold send a RELEASE.ind for that connection to the user (SGSN). TLDR; this timer is not really needed and cannot be implemented properly in UTRAN, so let's remove it. Related: OS#5116 Change-Id: Ibc71829e417bf2dd0c27deb842369dd4f17010d6 --- M include/osmocom/sgsn/gprs_mm_state_iu_fsm.h M src/sgsn/gprs_mm_state_iu_fsm.c M src/sgsn/sgsn_vty.c M tests/osmo-sgsn_test-nodes.vty 4 files changed, 5 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/47/23747/1 diff --git a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h index 05342f9..7f02bcc 100644 --- a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h @@ -19,7 +19,6 @@ E_PMM_PS_CONN_ESTABLISH, E_PMM_IMPLICIT_DETACH, /* = E_PS_ATTACH_REJECT, E_RAU_REJECT */ E_PMM_RA_UPDATE, /* = Serving RNC relocation */ - E_PMM_USER_INACTIVITY, /* when the inactivity timer runs out */ }; extern struct osmo_fsm mm_state_iu_fsm; diff --git a/src/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c index 7f2d3b4..91c9790 100644 --- a/src/sgsn/gprs_mm_state_iu_fsm.c +++ b/src/sgsn/gprs_mm_state_iu_fsm.c @@ -12,8 +12,7 @@ static const struct osmo_tdef_state_timeout mm_state_iu_fsm_timeouts[32] = { [ST_PMM_DETACHED] = { }, - /* non-spec -T3314 (User inactivity timer) */ - [ST_PMM_CONNECTED] = { .T=-3314 }, + [ST_PMM_CONNECTED] = { }, [ST_PMM_IDLE] = { }, }; @@ -48,10 +47,6 @@ static void st_pmm_connected(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct sgsn_mm_ctx *ctx = fi->priv; - const struct RANAP_Cause user_inactive_cause = { - .present = RANAP_Cause_PR_radioNetwork, - .choice.radioNetwork = RANAP_CauseRadioNetwork_user_inactivity, - }; switch(event) { case E_PMM_PS_CONN_RELEASE: @@ -62,9 +57,6 @@ sgsn_ranap_iu_release_free(ctx, NULL); mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); break; - case E_PMM_USER_INACTIVITY: - sgsn_ranap_iu_release_free(ctx, &user_inactive_cause); - break; case E_PMM_RA_UPDATE: break; } @@ -90,18 +82,6 @@ } } -static int pmm_state_fsm_timer_cb(struct osmo_fsm_inst *fi) -{ - switch(fi->state) { - case ST_PMM_CONNECTED: - /* timer for pmm state. state=CONNECTED: -T3314 (User inactivity timer) */ - osmo_fsm_inst_dispatch(fi, E_PMM_USER_INACTIVITY, NULL); - break; - } - - return 0; -} - static struct osmo_fsm_state mm_state_iu_fsm_states[] = { [ST_PMM_DETACHED] = { .in_event_mask = X(E_PMM_PS_ATTACH) | X(E_PMM_IMPLICIT_DETACH), @@ -110,8 +90,10 @@ .action = st_pmm_detached, }, [ST_PMM_CONNECTED] = { - .in_event_mask = X(E_PMM_PS_CONN_RELEASE) | X(E_PMM_RA_UPDATE) - | X(E_PMM_IMPLICIT_DETACH) | X(E_PMM_USER_INACTIVITY), + .in_event_mask = + X(E_PMM_PS_CONN_RELEASE) | + X(E_PMM_RA_UPDATE) | + X(E_PMM_IMPLICIT_DETACH), .out_state_mask = X(ST_PMM_DETACHED) | X(ST_PMM_IDLE), .name = "Connected", .action = st_pmm_connected, @@ -134,7 +116,6 @@ OSMO_VALUE_STRING(E_PMM_PS_CONN_ESTABLISH), OSMO_VALUE_STRING(E_PMM_IMPLICIT_DETACH), OSMO_VALUE_STRING(E_PMM_RA_UPDATE), - OSMO_VALUE_STRING(E_PMM_USER_INACTIVITY), { 0, NULL } }; @@ -143,7 +124,6 @@ .states = mm_state_iu_fsm_states, .num_states = ARRAY_SIZE(mm_state_iu_fsm_states), .event_names = mm_state_iu_fsm_event_names, - .timer_cb = pmm_state_fsm_timer_cb, .log_subsys = DMM, }; diff --git a/src/sgsn/sgsn_vty.c b/src/sgsn/sgsn_vty.c index d7584bc..042bad5 100644 --- a/src/sgsn/sgsn_vty.c +++ b/src/sgsn/sgsn_vty.c @@ -110,7 +110,6 @@ /* non spec timers */ { .T=-1001, .default_val=NONSPEC_X1001_SECS, .desc="RANAP Release timeout. Wait for RANAP Release Complete." "On expiry release Iu connection (s)" }, - { .T=-3314, .default_val=GSM0408_T3314_SECS, .desc="Iu User inactivity timer. On expiry release Iu connection (s)" }, {} }; diff --git a/tests/osmo-sgsn_test-nodes.vty b/tests/osmo-sgsn_test-nodes.vty index 109e2ec..953a30e 100644 --- a/tests/osmo-sgsn_test-nodes.vty +++ b/tests/osmo-sgsn_test-nodes.vty @@ -13,7 +13,6 @@ T3395 = 8 s Wait for DEACT PDP CTX ACK timer (s) (default: 8 s) T3397 = 8 s Wait for DEACT AA PDP CTX ACK timer (s) (default: 8 s) X1001 = 5 s RANAP Release timeout. Wait for RANAP Release Complete.On expiry release Iu connection (s) (default: 5 s) -X3314 = 44 s Iu User inactivity timer. On expiry release Iu connection (s) (default: 44 s) OsmoSGSN# configure terminal OsmoSGSN(config)# list ... -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibc71829e417bf2dd0c27deb842369dd4f17010d6 Gerrit-Change-Number: 23747 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 Apr 14 10:48:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 10:48:19 +0000 Subject: Change in osmo-sgsn[master]: gprs_ranap.c: Clean up code path releasing IU conn References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23748 ) Change subject: gprs_ranap.c: Clean up code path releasing IU conn ...................................................................... gprs_ranap.c: Clean up code path releasing IU conn Let's always send the event to the FSM and keep logic of whether it's a good event to sent or not inside the FSM, not in the caller. The logic is kept the same: if the event is not expected (not handled), keep forcing free of the IU connection. In theory this should never happen since only a PMM in Connected state should have a established connection (hence only a PMM in Connected state can have it released). In any case let's keep the safety check, but let the FSM receive the event and log an error about unexpected event, which is more interesting from debug point of view. While at it, clean up the related logging line: There's no need to print the imsi explicitly, since LOGMMCTXP already does it. Furthermore, print the exact low level event which triggered the code path. Related: SYS#5389 Change-Id: I45017562ea7f27c2248b7de56f99ce7ca88e89b2 --- M src/sgsn/gprs_ranap.c 1 file changed, 3 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/48/23748/1 diff --git a/src/sgsn/gprs_ranap.c b/src/sgsn/gprs_ranap.c index 2d2d3aa..e8addd7 100644 --- a/src/sgsn/gprs_ranap.c +++ b/src/sgsn/gprs_ranap.c @@ -134,10 +134,9 @@ /* fall thru */ case RANAP_IU_EVENT_LINK_INVALIDATED: /* Clean up ranap_ue_conn_ctx here */ - LOGMMCTXP(LOGL_INFO, mm, "IU release for imsi %s\n", mm->imsi); - if (mm->iu.mm_state_fsm->state == ST_PMM_CONNECTED) - osmo_fsm_inst_dispatch(mm->iu.mm_state_fsm, E_PMM_PS_CONN_RELEASE, NULL); - else + LOGMMCTXP(LOGL_INFO, mm, "IU release (cause=%s)\n", ranap_iu_event_type_str(type)); + rc = osmo_fsm_inst_dispatch(mm->iu.mm_state_fsm, E_PMM_PS_CONN_RELEASE, NULL); + if (rc < 0) sgsn_ranap_iu_free(mm); /* TODO: move this into FSM */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I45017562ea7f27c2248b7de56f99ce7ca88e89b2 Gerrit-Change-Number: 23748 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 Apr 14 10:59:53 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 10:59:53 +0000 Subject: Change in simtrace2[master]: cardem: ensure VCC_PHONE is floating In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23621 ) Change subject: cardem: ensure VCC_PHONE is floating ...................................................................... Patch Set 2: Code-Review+1 (1 comment) I do not have a good overview in the simtrace project at the moment, however what you describe in the commit message makes (electrically) sense to me. https://gerrit.osmocom.org/c/simtrace2/+/23621/2/firmware/libcommon/source/mode_cardemu.c File firmware/libcommon/source/mode_cardemu.c: https://gerrit.osmocom.org/c/simtrace2/+/23621/2/firmware/libcommon/source/mode_cardemu.c at 546 PS2, Line 546: #ifdef PINS_PWR_CARDEMU c++ comment style in a c-file? -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ib261073e3779ae7d98de18ce78b34ff37eafeaa2 Gerrit-Change-Number: 23621 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: tsaitgaist Gerrit-Comment-Date: Wed, 14 Apr 2021 10:59: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 Wed Apr 14 11:18:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 11:18:42 +0000 Subject: Change in osmo-sgsn[master]: mm_state_{gb, iu}_fsm: Add missing license block, improve spec references References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23749 ) Change subject: mm_state_{gb,iu}_fsm: Add missing license block, improve spec references ...................................................................... mm_state_{gb,iu}_fsm: Add missing license block, improve spec references Change-Id: Ifcfd9c11005a388220c599e7b2f6901175141f1c --- M include/osmocom/sgsn/gprs_mm_state_gb_fsm.h M include/osmocom/sgsn/gprs_mm_state_iu_fsm.h M src/sgsn/gprs_mm_state_gb_fsm.c M src/sgsn/gprs_mm_state_iu_fsm.c 4 files changed, 46 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/49/23749/1 diff --git a/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h b/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h index e69e1e1..02dcac7 100644 --- a/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h @@ -5,7 +5,7 @@ struct sgsn_mm_ctx; -/* TS 23.060 6.1.1 Mobility Management States (A/Gb mode) */ +/* TS 23.060 ? 6.1.1 Mobility Management States (A/Gb mode) */ enum mm_state_gb_fsm_states { ST_MM_IDLE, ST_MM_READY, diff --git a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h index 7f02bcc..7e11ac9 100644 --- a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h @@ -4,8 +4,7 @@ struct sgsn_mm_ctx; - -/* TS 23.060 6.1.1 Mobility Management States (A/Gb mode) */ +/* TS 23.060 ? 6.1.2 Mobility Management States (Iu mode) */ enum mm_state_iu_fsm_states { ST_PMM_DETACHED, ST_PMM_CONNECTED, diff --git a/src/sgsn/gprs_mm_state_gb_fsm.c b/src/sgsn/gprs_mm_state_gb_fsm.c index d3f2ea3..f8653f6 100644 --- a/src/sgsn/gprs_mm_state_gb_fsm.c +++ b/src/sgsn/gprs_mm_state_gb_fsm.c @@ -1,3 +1,25 @@ +/* TS 23.060 ? 6.1.1 Mobility Management States (A/Gb mode) */ +/* + * (C) 2019 by sysmocom - s.m.f.c. GmbH + * All Rights Reserved + * + * SPDX-License-Identifier: AGPL-3.0+ + * + * Author: Pau Espin Pedrol + * + * 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/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c index 91c9790..3f1336b 100644 --- a/src/sgsn/gprs_mm_state_iu_fsm.c +++ b/src/sgsn/gprs_mm_state_iu_fsm.c @@ -1,3 +1,25 @@ +/* TS 23.060 ? 6.1.2 Mobility Management States (Iu mode) */ +/* + * (C) 2019 by sysmocom - s.m.f.c. GmbH + * All Rights Reserved + * + * SPDX-License-Identifier: AGPL-3.0+ + * + * Author: Pau Espin Pedrol + * + * 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-sgsn/+/23749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ifcfd9c11005a388220c599e7b2f6901175141f1c Gerrit-Change-Number: 23749 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 Apr 14 11:30:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 11:30:21 +0000 Subject: Change in osmo-sgsn[master]: mm_state_{gb, iu}_fsm: Improve naming for detach event References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23750 ) Change subject: mm_state_{gb,iu}_fsm: Improve naming for detach event ...................................................................... mm_state_{gb,iu}_fsm: Improve naming for detach event The E_(P)MM_IMPLICIT_DETACH event was actually sent and handled when the UE was considered to be detached, no matter the reason, be it due to implicit detach, or Detach Request received, etc. So, let's properly name the event to avoid confusions in the code. Related: SYS#5389 Change-Id: I224ea9db80b4d96696934cea06349dab036f919b --- M include/osmocom/sgsn/gprs_mm_state_gb_fsm.h M include/osmocom/sgsn/gprs_mm_state_iu_fsm.h M src/sgsn/gprs_gmm.c M src/sgsn/gprs_gmm_fsm.c M src/sgsn/gprs_mm_state_gb_fsm.c M src/sgsn/gprs_mm_state_iu_fsm.c 6 files changed, 18 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/50/23750/1 diff --git a/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h b/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h index 02dcac7..4237c2f 100644 --- a/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h @@ -14,9 +14,8 @@ enum mm_state_gb_fsm_events { E_MM_GPRS_ATTACH, - /* E_GPRS_DETACH, TODO: not used */ + E_MM_GPRS_DETACH, /* MS becomes detached: due to Detach Req, RAU reject, implicit detach, etc. */ E_MM_PDU_RECEPTION, - E_MM_IMPLICIT_DETACH, /* = E_MM_CANCEL_LOCATION */ E_MM_READY_TIMER_EXPIRY, /* E_FORCE_TO_STANDBY, TODO: not used */ /* E_ABNSORMAL_RLC_CONDITION, TODO: not used */ diff --git a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h index 7e11ac9..6dae759 100644 --- a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h @@ -13,10 +13,9 @@ enum mm_state_iu_fsm_events { E_PMM_PS_ATTACH, - /* E_PS_DETACH, TODO: not used */ + E_PMM_PS_DETACH, /* UE becomes detached: due to Detach Req, RAU reject, implicit detach, etc. */ E_PMM_PS_CONN_RELEASE, E_PMM_PS_CONN_ESTABLISH, - E_PMM_IMPLICIT_DETACH, /* = E_PS_ATTACH_REJECT, E_RAU_REJECT */ E_PMM_RA_UPDATE, /* = Serving RNC relocation */ }; diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c index f05167f..edddd2d 100644 --- a/src/sgsn/gprs_gmm.c +++ b/src/sgsn/gprs_gmm.c @@ -197,10 +197,10 @@ switch(ctx->ran_type) { case MM_CTX_T_UTRAN_Iu: - osmo_fsm_inst_dispatch(ctx->iu.mm_state_fsm, E_PMM_IMPLICIT_DETACH, NULL); + osmo_fsm_inst_dispatch(ctx->iu.mm_state_fsm, E_PMM_PS_DETACH, NULL); break; case MM_CTX_T_GERAN_Gb: - osmo_fsm_inst_dispatch(ctx->gb.mm_state_fsm, E_MM_IMPLICIT_DETACH, NULL); + osmo_fsm_inst_dispatch(ctx->gb.mm_state_fsm, E_MM_GPRS_DETACH, NULL); break; } diff --git a/src/sgsn/gprs_gmm_fsm.c b/src/sgsn/gprs_gmm_fsm.c index caec586..78946b5 100644 --- a/src/sgsn/gprs_gmm_fsm.c +++ b/src/sgsn/gprs_gmm_fsm.c @@ -199,9 +199,9 @@ gmm_fsm_state_chg(fi, ST_GMM_DEREGISTERED); default: if (mmctx->ran_type == MM_CTX_T_GERAN_Gb) - osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, E_MM_IMPLICIT_DETACH, NULL); + osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, E_MM_GPRS_DETACH, NULL); else if (mmctx->ran_type == MM_CTX_T_UTRAN_Iu) { - osmo_fsm_inst_dispatch(mmctx->iu.mm_state_fsm, E_PMM_IMPLICIT_DETACH, NULL); + osmo_fsm_inst_dispatch(mmctx->iu.mm_state_fsm, E_PMM_PS_DETACH, NULL); mmctx->gb.llme = rat_chg->llme; } diff --git a/src/sgsn/gprs_mm_state_gb_fsm.c b/src/sgsn/gprs_mm_state_gb_fsm.c index f8653f6..6e812d3 100644 --- a/src/sgsn/gprs_mm_state_gb_fsm.c +++ b/src/sgsn/gprs_mm_state_gb_fsm.c @@ -71,7 +71,7 @@ case E_MM_READY_TIMER_EXPIRY: mm_state_gb_fsm_state_chg(fi, ST_MM_STANDBY); break; - case E_MM_IMPLICIT_DETACH: + case E_MM_GPRS_DETACH: mm_state_gb_fsm_state_chg(fi, ST_MM_IDLE); break; case E_MM_PDU_RECEPTION: @@ -90,7 +90,7 @@ case E_MM_PDU_RECEPTION: mm_state_gb_fsm_state_chg(fi, ST_MM_READY); break; - case E_MM_IMPLICIT_DETACH: + case E_MM_GPRS_DETACH: mm_state_gb_fsm_state_chg(fi, ST_MM_IDLE); break; } @@ -105,13 +105,13 @@ .action = st_mm_idle, }, [ST_MM_READY] = { - .in_event_mask = X(E_MM_READY_TIMER_EXPIRY) | X(E_MM_RA_UPDATE) | X(E_MM_IMPLICIT_DETACH) | X(E_MM_PDU_RECEPTION), + .in_event_mask = X(E_MM_READY_TIMER_EXPIRY) | X(E_MM_RA_UPDATE) | X(E_MM_GPRS_DETACH) | X(E_MM_PDU_RECEPTION), .out_state_mask = X(ST_MM_IDLE) | X(ST_MM_STANDBY), .name = "Ready", .action = st_mm_ready, }, [ST_MM_STANDBY] = { - .in_event_mask = X(E_MM_PDU_RECEPTION) | X(E_MM_IMPLICIT_DETACH), + .in_event_mask = X(E_MM_PDU_RECEPTION) | X(E_MM_GPRS_DETACH), .out_state_mask = X(ST_MM_IDLE) | X(ST_MM_READY), .name = "Standby", .action = st_mm_standby, @@ -121,7 +121,7 @@ const struct value_string mm_state_gb_fsm_event_names[] = { OSMO_VALUE_STRING(E_MM_GPRS_ATTACH), OSMO_VALUE_STRING(E_MM_PDU_RECEPTION), - OSMO_VALUE_STRING(E_MM_IMPLICIT_DETACH), + OSMO_VALUE_STRING(E_MM_GPRS_DETACH), OSMO_VALUE_STRING(E_MM_READY_TIMER_EXPIRY), OSMO_VALUE_STRING(E_MM_RA_UPDATE), { 0, NULL } diff --git a/src/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c index 3f1336b..b1604f8 100644 --- a/src/sgsn/gprs_mm_state_iu_fsm.c +++ b/src/sgsn/gprs_mm_state_iu_fsm.c @@ -61,7 +61,7 @@ case E_PMM_PS_ATTACH: mm_state_iu_fsm_state_chg(fi, ST_PMM_CONNECTED); break; - case E_PMM_IMPLICIT_DETACH: + case E_PMM_PS_DETACH: break; } } @@ -75,7 +75,7 @@ sgsn_ranap_iu_free(ctx); mm_state_iu_fsm_state_chg(fi, ST_PMM_IDLE); break; - case E_PMM_IMPLICIT_DETACH: + case E_PMM_PS_DETACH: sgsn_ranap_iu_release_free(ctx, NULL); mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); break; @@ -98,7 +98,7 @@ case E_PMM_PS_CONN_ESTABLISH: mm_state_iu_fsm_state_chg(fi, ST_PMM_CONNECTED); break; - case E_PMM_IMPLICIT_DETACH: + case E_PMM_PS_DETACH: mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); break; } @@ -106,7 +106,7 @@ static struct osmo_fsm_state mm_state_iu_fsm_states[] = { [ST_PMM_DETACHED] = { - .in_event_mask = X(E_PMM_PS_ATTACH) | X(E_PMM_IMPLICIT_DETACH), + .in_event_mask = X(E_PMM_PS_ATTACH) | X(E_PMM_PS_DETACH), .out_state_mask = X(ST_PMM_CONNECTED), .name = "Detached", .action = st_pmm_detached, @@ -115,14 +115,14 @@ .in_event_mask = X(E_PMM_PS_CONN_RELEASE) | X(E_PMM_RA_UPDATE) | - X(E_PMM_IMPLICIT_DETACH), + X(E_PMM_PS_DETACH), .out_state_mask = X(ST_PMM_DETACHED) | X(ST_PMM_IDLE), .name = "Connected", .action = st_pmm_connected, }, [ST_PMM_IDLE] = { .in_event_mask = - X(E_PMM_IMPLICIT_DETACH) | + X(E_PMM_PS_DETACH) | X(E_PMM_PS_CONN_ESTABLISH) | X(E_PMM_PS_ATTACH), .out_state_mask = X(ST_PMM_DETACHED) | X(ST_PMM_CONNECTED), @@ -136,7 +136,7 @@ OSMO_VALUE_STRING(E_PMM_PS_ATTACH), OSMO_VALUE_STRING(E_PMM_PS_CONN_RELEASE), OSMO_VALUE_STRING(E_PMM_PS_CONN_ESTABLISH), - OSMO_VALUE_STRING(E_PMM_IMPLICIT_DETACH), + OSMO_VALUE_STRING(E_PMM_PS_DETACH), OSMO_VALUE_STRING(E_PMM_RA_UPDATE), { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I224ea9db80b4d96696934cea06349dab036f919b Gerrit-Change-Number: 23750 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 Apr 14 11:42:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 14 Apr 2021 11:42:07 +0000 Subject: Change in docker-playground[master]: osmo-gsm-tester: open5gs deps only for x86_64 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23746 ) Change subject: osmo-gsm-tester: open5gs deps only for x86_64 ...................................................................... osmo-gsm-tester: open5gs deps only for x86_64 mongo-db is only available for x86_64 from their third party repository. Don't attempt to install it for another architecture. As this is part of the open5gs dependencies, don't install any of them either. This should fix the currently failing "update-osmo-ci-on-slaves" jenkins job. I've considered disabling the build of the osmo-gsm-tester container for ARM altogether, but the osmo-gsm-tester manual explicitly mentions ARM trails. Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 --- M osmo-gsm-tester/Dockerfile 1 file changed, 40 insertions(+), 33 deletions(-) Approvals: osmith: Verified pespin: Looks good to me, approved diff --git a/osmo-gsm-tester/Dockerfile b/osmo-gsm-tester/Dockerfile index dc8ba1b..a69b5b2 100644 --- a/osmo-gsm-tester/Dockerfile +++ b/osmo-gsm-tester/Dockerfile @@ -114,41 +114,48 @@ # install open5gs dependencies: (mongodb not available in Debian) # systemctl stuff: workaround for https://jira.mongodb.org/browse/SERVER-54386 ADD https://www.mongodb.org/static/pgp/server-4.4.asc /tmp/mongodb-server-4.4.asc -RUN apt-key add /tmp/mongodb-server-4.4.asc && \ - echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" > /etc/apt/sources.list.d/mongodb-org-4.4.list -RUN apt-get update && \ - systemctl_path=$(which systemctl) && \ - mv $systemctl_path /tmp/systemctl && \ - apt-get install -y --no-install-recommends mongodb-org && \ - apt-get clean && \ - mv /tmp/systemctl $systemctl_path && \ - sed -i "s/127.0.0.1/$OGT_MASTER_ADDR/g" /etc/mongod.conf +RUN if [ "$(arch)" = "x86_64" ]; then \ + apt-key add /tmp/mongodb-server-4.4.asc && \ + echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" \ + > /etc/apt/sources.list.d/mongodb-org-4.4.list; \ + fi +RUN if [ "$(arch)" = "x86_64" ]; then \ + apt-get update && \ + systemctl_path=$(which systemctl) && \ + mv $systemctl_path /tmp/systemctl && \ + apt-get install -y --no-install-recommends mongodb-org && \ + apt-get clean && \ + mv /tmp/systemctl $systemctl_path && \ + sed -i "s/127.0.0.1/$OGT_MASTER_ADDR/g" /etc/mongod.conf; \ + fi # install open5gs dependencies: -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - python3-pip \ - python3-setuptools \ - python3-wheel \ - ninja-build \ - build-essential \ - flex \ - bison \ - git \ - libsctp-dev \ - libgnutls28-dev \ - libgcrypt-dev \ - libssl-dev \ - libidn11-dev \ - libmongoc-dev \ - libbson-dev \ - libyaml-dev \ - libnghttp2-dev \ - libmicrohttpd-dev \ - libcurl4-gnutls-dev \ - libnghttp2-dev \ - meson && \ - apt-get clean +RUN if [ "$(arch)" = "x86_64" ]; then \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + ninja-build \ + build-essential \ + flex \ + bison \ + git \ + libsctp-dev \ + libgnutls28-dev \ + libgcrypt-dev \ + libssl-dev \ + libidn11-dev \ + libmongoc-dev \ + libbson-dev \ + libyaml-dev \ + libnghttp2-dev \ + libmicrohttpd-dev \ + libcurl4-gnutls-dev \ + libnghttp2-dev \ + meson && \ + apt-get clean; \ + fi WORKDIR /tmp -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ieed36b1adf4b9ae147c7ee7ade22d4855c3dbac8 Gerrit-Change-Number: 23746 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 11:42:29 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 14 Apr 2021 11:42:29 +0000 Subject: Change in osmo-gbproxy[master]: gitignore: add gbproxy_vty_reference.xml In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23736 ) Change subject: gitignore: add gbproxy_vty_reference.xml ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I33a0df37b4446b12b53c9e1eace8e5766278be1f Gerrit-Change-Number: 23736 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 11:42: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 Apr 14 11:42:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 14 Apr 2021 11:42:31 +0000 Subject: Change in osmo-gbproxy[master]: gitignore: add gbproxy_vty_reference.xml In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23736 ) Change subject: gitignore: add gbproxy_vty_reference.xml ...................................................................... gitignore: add gbproxy_vty_reference.xml Change-Id: I33a0df37b4446b12b53c9e1eace8e5766278be1f --- M .gitignore 1 file changed, 1 insertion(+), 0 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 osmith: Looks good to me, approved diff --git a/.gitignore b/.gitignore index 64cebba..97c9372 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,7 @@ doc/manuals/osmomsc-usermanual.xml doc/manuals/common doc/manuals/build +doc/manuals/vty/gbproxy_vty_reference.xml contrib/osmo-gbproxy.spec -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I33a0df37b4446b12b53c9e1eace8e5766278be1f Gerrit-Change-Number: 23736 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 12:42:10 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 14 Apr 2021 12:42:10 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23740 ) Change subject: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect ...................................................................... Patch Set 2: Verified+1 ====== PCU_Tests_SNS.TC_sns_1c1u_unconfigured_nsvc pass ====== -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b375a60c4f948c282337ca30643d14407f8239e Gerrit-Change-Number: 23740 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 12:42: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 Apr 14 12:42:18 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 14 Apr 2021 12:42:18 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23740 ) Change subject: ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect ...................................................................... ttcn3-pcu-sns: add vty parameter to allow ttcn3 to connect Otherwise it will try to connect to 127.0.0.1. Fixes jenkins ttcn3 test TC_sns_1c1u_unconfigured_nsvc. Change-Id: I4b375a60c4f948c282337ca30643d14407f8239e --- M ttcn3-pcu-test/sns/PCU_Tests.cfg 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index 3d9fdf6..1036f5a 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -5,6 +5,10 @@ [LOGGING] [TESTPORT_PARAMETERS] +*.PCUVTY.CTRL_HOSTNAME := "172.18.14.101" +*.PCUVTY.PROMPT1 := "OsmoPCU> " +*.STATSVTY.CTRL_HOSTNAME := "172.18.14.101" +*.STATSVTY.PROMPT1 := "OsmoPCU> " [MODULE_PARAMETERS] PCU_Tests.mp_pcu_sock_path := "/data/unix/pcu_bts" -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b375a60c4f948c282337ca30643d14407f8239e Gerrit-Change-Number: 23740 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 12:59:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 12:59:07 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc File common/chapters/trx_if.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc at 365 PS5, Line 365: Messages on the data interface carry one or optionally multiple radio bursts per > Not yet clarified here: Are several bursts from same channel? or from different channels? [?] Batching several FNs makes no sense to me. Will add a reference. https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc at 516 PS5, Line 516: RFU: variable bit-length:: > is this variable bit length? isn't it a byte? Not anymore, see commit message I9ac9d387325627d18811fae1d0d7930b69f08129. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 12:59: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 Wed Apr 14 13:01:44 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 13:01:44 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: generalize description of the 'RFU' ('PAD') field In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 to look at the new patch set (#4). Change subject: TRXD: generalize description of the 'RFU' ('PAD') field ...................................................................... TRXD: generalize description of the 'RFU' ('PAD') field This field will also appear in TRXDv2 packet diagrams, in several places. Let's rename it to 'RFU', because it's actually something that may want to use in the future, rather than just padding. Change-Id: I9ac9d387325627d18811fae1d0d7930b69f08129 Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 9 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/87/23687/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 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: I9ac9d387325627d18811fae1d0d7930b69f08129 Gerrit-Change-Number: 23687 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 13:01:44 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 13:01:44 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 to look at the new patch set (#6). Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... TRXD: add documentation for TRXDv2 protocol Change-Id: I03b2beeb535848b31fd629ba3cd330b43072c08b Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 277 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/67/22867/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith 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 Apr 14 14:14:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 14:14:06 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc File common/chapters/trx_if.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc at 516 PS5, Line 516: RFU: variable bit-length:: > Not anymore, see commit message I9ac9d387325627d18811fae1d0d7930b69f08129. I'm not following you here. How is it supposed to inform about variable bit length? I see no bit length expressed anywhere, and according to packetdiab above it's one byte. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 14:14:06 +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 Wed Apr 14 14:14:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 14:14:25 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: generalize description of the 'RFU' ('PAD') field In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 ) Change subject: TRXD: generalize description of the 'RFU' ('PAD') field ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 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: I9ac9d387325627d18811fae1d0d7930b69f08129 Gerrit-Change-Number: 23687 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 14:14:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 14:33:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 14:33:23 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add extra field elements defined in other sections References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23751 ) Change subject: gsm_08_08.h: Add extra field elements defined in other sections ...................................................................... gsm_08_08.h: Add extra field elements defined in other sections The Signalling Field Element Coding list defined in 3.2.3 is used in "Old BSS to New BSS Information" and "New BSS to old BSS Information" IEs. However, the former IE (Old->New Info) defines 2 extra Field Elements in 3.2.2.58 (3GPP TS 48.008 version 16.0.0 Release 16) not present in 3.2.3. Related: SYS#5337 Change-Id: I4db3f7974887e4c798a30c5b51a19472ceeee27d --- M include/osmocom/gsm/protocol/gsm_08_08.h 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/51/23751/1 diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h index 7ef7a29..983783e 100644 --- a/include/osmocom/gsm/protocol/gsm_08_08.h +++ b/include/osmocom/gsm/protocol/gsm_08_08.h @@ -333,7 +333,8 @@ GSM0808_IE_OSMO_OSMUX_CID = 0xf1, }; -/* 3GPP TS 48.008 3.2.3 Signalling Field Element Coding */ +/* 3GPP TS 48.008 3.2.3 Signalling Field Element Coding. + See also extra fields in 3.2.2.58 and 3.2.2.80 */ enum GSM0808_SIGNALLING_FIELD_ELEMENT_CODING { GSM0808_FE_IE_EXTRA_INFORMATION = 0x01, /*< 3.2.3.1 */ GSM0808_FE_IE_CURRENT_CHANNEL_TYPE_2 = 0x02, /*< 3.2.3.2 */ @@ -353,6 +354,8 @@ GSM0808_FE_IE_IRAT_MEASUREMENT_CONFIGURATION = 0x0f, /*< 3.2.3.16 */ GSM0808_FE_IE_SOURCE_CELL_ID = 0x10, /*< 3.2.3.17 */ GSM0808_FE_IE_IRAT_MEASUREMENT_CONFIGURATION_EXTENDED_E_ARFCNS = 0x11, /*< 3.2.3.18 */ + GSM0808_FE_IE_VGCS_TALKER_MODE = 0x6f, /*< 3.2.2.93 */ + GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID = 0x95, /*< 3.2.2.127 */ }; /* 3GPP TS 48.008 3.2.2.5 Cause */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4db3f7974887e4c798a30c5b51a19472ceeee27d Gerrit-Change-Number: 23751 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 Apr 14 14:39:08 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 14:39:08 +0000 Subject: Change in osmo-sgsn[master]: mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23743 ) Change subject: mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7279102ad51b0c39eb6d04c129986984112d15cc Gerrit-Change-Number: 23743 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 14 Apr 2021 14:39: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 Apr 14 14:40:03 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 14:40:03 +0000 Subject: Change in osmo-sgsn[master]: Iu: Drop timer X3314 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23747 ) Change subject: Iu: Drop timer X3314 ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/23747/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-sgsn/+/23747/1//COMMIT_MSG at 35 PS1, Line 35: wold se typo -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibc71829e417bf2dd0c27deb842369dd4f17010d6 Gerrit-Change-Number: 23747 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 14 Apr 2021 14:40:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 14:42:07 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 14:42:07 +0000 Subject: Change in osmo-sgsn[master]: Iu: Drop timer X3314 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23747 ) Change subject: Iu: Drop timer X3314 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibc71829e417bf2dd0c27deb842369dd4f17010d6 Gerrit-Change-Number: 23747 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 14 Apr 2021 14:42: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 Apr 14 14:43:50 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 14:43:50 +0000 Subject: Change in osmo-sgsn[master]: mm_state_{gb, iu}_fsm: Add missing license block, improve spec references In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23749 ) Change subject: mm_state_{gb,iu}_fsm: Add missing license block, improve spec references ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ifcfd9c11005a388220c599e7b2f6901175141f1c Gerrit-Change-Number: 23749 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 14 Apr 2021 14:43: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 Apr 14 14:51:03 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 14:51:03 +0000 Subject: Change in osmo-sgsn[master]: mm_state_{gb, iu}_fsm: Improve naming for detach event In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23750 ) Change subject: mm_state_{gb,iu}_fsm: Improve naming for detach event ...................................................................... Patch Set 1: Code-Review+1 Not 100% sure about this. (+1, but fine with merging). We can rename it. The original idea was to have an IMPLICIT DETACH as well a GPRS_DETACH which is the common case, when requested, while implicit detach is used when not explicit requested. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I224ea9db80b4d96696934cea06349dab036f919b Gerrit-Change-Number: 23750 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 14 Apr 2021 14:51:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 15:06:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:06:54 +0000 Subject: Change in osmo-sgsn[master]: mm_state_{gb, iu}_fsm: Improve naming for detach event In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23750 ) Change subject: mm_state_{gb,iu}_fsm: Improve naming for detach event ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+1 > > Not 100% sure about this. (+1, but fine with merging). > We can rename it. The original idea was to have an IMPLICIT DETACH > as well a GPRS_DETACH which is the common case, when requested, while implicit detach is used when not explicit requested. I agree that was the intial idea, but the implemented code always goes through the same code path, so there's no really a distinction, and hence it makes sense to make the naming generic, since anyway they are handled the same way by the FSM. It would make sense having different events if they were sent from different code paths and/or they were handled differently, which is not the case. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I224ea9db80b4d96696934cea06349dab036f919b Gerrit-Change-Number: 23750 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 14 Apr 2021 15:06: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 Wed Apr 14 15:20:43 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 15:20:43 +0000 Subject: Change in osmo-sgsn[master]: gprs_ranap.c: Clean up code path releasing IU conn In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23748 ) Change subject: gprs_ranap.c: Clean up code path releasing IU conn ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I45017562ea7f27c2248b7de56f99ce7ca88e89b2 Gerrit-Change-Number: 23748 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 14 Apr 2021 15:20: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 Apr 14 15:21:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:21:17 +0000 Subject: Change in libosmocore[master]: cosmetic: tlv_parser: fix typo in func description References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23752 ) Change subject: cosmetic: tlv_parser: fix typo in func description ...................................................................... cosmetic: tlv_parser: fix typo in func description Change-Id: I27f28376a88f00d86a0f65595f61f6026f7e0fd4 --- M src/gsm/tlv_parser.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/52/23752/1 diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index 967539e..c5aac97 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -433,7 +433,7 @@ return num_parsed; } -/*! take a master (src) tlvdev and fill up all empty slots in 'dst' +/*! take a master (src) tlv_definition and fill up all empty slots in 'dst' * \param dst TLV parser definition that is to be patched * \param[in] src TLV parser definition whose content is patched into \a dst */ void tlv_def_patch(struct tlv_definition *dst, const struct tlv_definition *src) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I27f28376a88f00d86a0f65595f61f6026f7e0fd4 Gerrit-Change-Number: 23752 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 Apr 14 15:24:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:24:07 +0000 Subject: Change in osmo-sgsn[master]: mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23743 ) Change subject: mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED ...................................................................... mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED This Iu timer is Osmocom specific, but is made to resemble T3314 timer from GERAN (also named READY timer). The READY timer mission is to make the MM state transition from READY to STANDBY, which in PMM (UTRAN) matches the transition from CONNECTED to IDLE. Instead, the patch introducing the timer was making it transition to DETACHED directly, but this was clearly not the intention: * Detaching a UE after 44 seconds (default value for T3314) is overkill. * The comment describing it says: "Iu User inactivity timer. On expiry release Iu connection". The release of Iu connection happens during the CONNECTED->IDLE transition (that's basically the difference between both states). The transition CONNECTED->IDLE is done by means of calling sgsn_ranap_iu_release_free(), which will eventually answer with a event RANAP_IU_EVENT_IU_RELEASE from lower layers when the Release Complete is received. At that point, osmo-sgsn code frees the connection and transitions to IDLE state. This way we maintain the state according to the connection existance. Related: SYS#5389 Related: osmo-iuh.git Change-Id Iac822c74e56750dc40e94573eae0e20853ff68c0 Fixes: 3bad31bcb42c3449e6847ea7495578817029a2e1 Change-Id: I7279102ad51b0c39eb6d04c129986984112d15cc --- M src/sgsn/gprs_mm_state_iu_fsm.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c index 69b4ef0..7f2d3b4 100644 --- a/src/sgsn/gprs_mm_state_iu_fsm.c +++ b/src/sgsn/gprs_mm_state_iu_fsm.c @@ -64,7 +64,6 @@ break; case E_PMM_USER_INACTIVITY: sgsn_ranap_iu_release_free(ctx, &user_inactive_cause); - mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); break; case E_PMM_RA_UPDATE: break; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7279102ad51b0c39eb6d04c129986984112d15cc Gerrit-Change-Number: 23743 Gerrit-PatchSet: 3 Gerrit-Owner: pespin 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 Apr 14 15:24:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:24:08 +0000 Subject: Change in osmo-sgsn[master]: Iu: Drop timer X3314 In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23747 ) Change subject: Iu: Drop timer X3314 ...................................................................... Iu: Drop timer X3314 This Iu timer is Osmocom specific, but is made to resemble T3314 timer from GERAN (also named READY timer). The idea of this activity timer was to arm it whenever PMM state transitions to CONNECTED, and then rearm it every time there's some sort of activity, until there's none for some time, then we send a Release Command to close the conn with the HNGBW/RNC. That's the same principle as per spec-defined READY timer T3314. However, there's still a fundamental problem with it: GTP-U in GERAN passes through the SGSN, but in UTRAN, the GTP-U stream goes directly from the HnodeB to the GGSN. Hence, there's no proper way to re-arm this timer upon activity in UTRAN, basically because the SGSN will never see (userplane data) activity. That explains why the E_MM_PDU_RECEPTION event exists for mm_state_gb_fsm, but doesn't exist for mm_state_iu_fsm. As a result, the timer is currently never rearmed, which means it will transition to IDLE always after 44 seconds (default value) once it went into CONNECTED state. In UTRAN, there is a SCCP connection for each subscriber between RNC/hNB and SGSN. If the subscriber is no longer in the respective state, the RNC/hNB should release that IuPS SCCP connection, whcih in turn means the SGSN cleans up its state. Furthermore, SCCP has a built-in IT (inactivity timer). So should the RNC/hNB die, that timer would time out, and the SGSN-side local SCCP stack (provider) wold send a RELEASE.ind for that connection to the user (SGSN). TLDR; this timer is not really needed and cannot be implemented properly in UTRAN, so let's remove it. Related: OS#5116 Change-Id: Ibc71829e417bf2dd0c27deb842369dd4f17010d6 --- M include/osmocom/sgsn/gprs_mm_state_iu_fsm.h M src/sgsn/gprs_mm_state_iu_fsm.c M src/sgsn/sgsn_vty.c M tests/osmo-sgsn_test-nodes.vty 4 files changed, 5 insertions(+), 28 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h index 05342f9..7f02bcc 100644 --- a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h @@ -19,7 +19,6 @@ E_PMM_PS_CONN_ESTABLISH, E_PMM_IMPLICIT_DETACH, /* = E_PS_ATTACH_REJECT, E_RAU_REJECT */ E_PMM_RA_UPDATE, /* = Serving RNC relocation */ - E_PMM_USER_INACTIVITY, /* when the inactivity timer runs out */ }; extern struct osmo_fsm mm_state_iu_fsm; diff --git a/src/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c index 7f2d3b4..91c9790 100644 --- a/src/sgsn/gprs_mm_state_iu_fsm.c +++ b/src/sgsn/gprs_mm_state_iu_fsm.c @@ -12,8 +12,7 @@ static const struct osmo_tdef_state_timeout mm_state_iu_fsm_timeouts[32] = { [ST_PMM_DETACHED] = { }, - /* non-spec -T3314 (User inactivity timer) */ - [ST_PMM_CONNECTED] = { .T=-3314 }, + [ST_PMM_CONNECTED] = { }, [ST_PMM_IDLE] = { }, }; @@ -48,10 +47,6 @@ static void st_pmm_connected(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct sgsn_mm_ctx *ctx = fi->priv; - const struct RANAP_Cause user_inactive_cause = { - .present = RANAP_Cause_PR_radioNetwork, - .choice.radioNetwork = RANAP_CauseRadioNetwork_user_inactivity, - }; switch(event) { case E_PMM_PS_CONN_RELEASE: @@ -62,9 +57,6 @@ sgsn_ranap_iu_release_free(ctx, NULL); mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); break; - case E_PMM_USER_INACTIVITY: - sgsn_ranap_iu_release_free(ctx, &user_inactive_cause); - break; case E_PMM_RA_UPDATE: break; } @@ -90,18 +82,6 @@ } } -static int pmm_state_fsm_timer_cb(struct osmo_fsm_inst *fi) -{ - switch(fi->state) { - case ST_PMM_CONNECTED: - /* timer for pmm state. state=CONNECTED: -T3314 (User inactivity timer) */ - osmo_fsm_inst_dispatch(fi, E_PMM_USER_INACTIVITY, NULL); - break; - } - - return 0; -} - static struct osmo_fsm_state mm_state_iu_fsm_states[] = { [ST_PMM_DETACHED] = { .in_event_mask = X(E_PMM_PS_ATTACH) | X(E_PMM_IMPLICIT_DETACH), @@ -110,8 +90,10 @@ .action = st_pmm_detached, }, [ST_PMM_CONNECTED] = { - .in_event_mask = X(E_PMM_PS_CONN_RELEASE) | X(E_PMM_RA_UPDATE) - | X(E_PMM_IMPLICIT_DETACH) | X(E_PMM_USER_INACTIVITY), + .in_event_mask = + X(E_PMM_PS_CONN_RELEASE) | + X(E_PMM_RA_UPDATE) | + X(E_PMM_IMPLICIT_DETACH), .out_state_mask = X(ST_PMM_DETACHED) | X(ST_PMM_IDLE), .name = "Connected", .action = st_pmm_connected, @@ -134,7 +116,6 @@ OSMO_VALUE_STRING(E_PMM_PS_CONN_ESTABLISH), OSMO_VALUE_STRING(E_PMM_IMPLICIT_DETACH), OSMO_VALUE_STRING(E_PMM_RA_UPDATE), - OSMO_VALUE_STRING(E_PMM_USER_INACTIVITY), { 0, NULL } }; @@ -143,7 +124,6 @@ .states = mm_state_iu_fsm_states, .num_states = ARRAY_SIZE(mm_state_iu_fsm_states), .event_names = mm_state_iu_fsm_event_names, - .timer_cb = pmm_state_fsm_timer_cb, .log_subsys = DMM, }; diff --git a/src/sgsn/sgsn_vty.c b/src/sgsn/sgsn_vty.c index d7584bc..042bad5 100644 --- a/src/sgsn/sgsn_vty.c +++ b/src/sgsn/sgsn_vty.c @@ -110,7 +110,6 @@ /* non spec timers */ { .T=-1001, .default_val=NONSPEC_X1001_SECS, .desc="RANAP Release timeout. Wait for RANAP Release Complete." "On expiry release Iu connection (s)" }, - { .T=-3314, .default_val=GSM0408_T3314_SECS, .desc="Iu User inactivity timer. On expiry release Iu connection (s)" }, {} }; diff --git a/tests/osmo-sgsn_test-nodes.vty b/tests/osmo-sgsn_test-nodes.vty index 109e2ec..953a30e 100644 --- a/tests/osmo-sgsn_test-nodes.vty +++ b/tests/osmo-sgsn_test-nodes.vty @@ -13,7 +13,6 @@ T3395 = 8 s Wait for DEACT PDP CTX ACK timer (s) (default: 8 s) T3397 = 8 s Wait for DEACT AA PDP CTX ACK timer (s) (default: 8 s) X1001 = 5 s RANAP Release timeout. Wait for RANAP Release Complete.On expiry release Iu connection (s) (default: 5 s) -X3314 = 44 s Iu User inactivity timer. On expiry release Iu connection (s) (default: 44 s) OsmoSGSN# configure terminal OsmoSGSN(config)# list ... -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibc71829e417bf2dd0c27deb842369dd4f17010d6 Gerrit-Change-Number: 23747 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Wed Apr 14 15:24:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:24:08 +0000 Subject: Change in osmo-sgsn[master]: gprs_ranap.c: Clean up code path releasing IU conn In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23748 ) Change subject: gprs_ranap.c: Clean up code path releasing IU conn ...................................................................... gprs_ranap.c: Clean up code path releasing IU conn Let's always send the event to the FSM and keep logic of whether it's a good event to sent or not inside the FSM, not in the caller. The logic is kept the same: if the event is not expected (not handled), keep forcing free of the IU connection. In theory this should never happen since only a PMM in Connected state should have a established connection (hence only a PMM in Connected state can have it released). In any case let's keep the safety check, but let the FSM receive the event and log an error about unexpected event, which is more interesting from debug point of view. While at it, clean up the related logging line: There's no need to print the imsi explicitly, since LOGMMCTXP already does it. Furthermore, print the exact low level event which triggered the code path. Related: SYS#5389 Change-Id: I45017562ea7f27c2248b7de56f99ce7ca88e89b2 --- M src/sgsn/gprs_ranap.c 1 file changed, 3 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/src/sgsn/gprs_ranap.c b/src/sgsn/gprs_ranap.c index 2d2d3aa..e8addd7 100644 --- a/src/sgsn/gprs_ranap.c +++ b/src/sgsn/gprs_ranap.c @@ -134,10 +134,9 @@ /* fall thru */ case RANAP_IU_EVENT_LINK_INVALIDATED: /* Clean up ranap_ue_conn_ctx here */ - LOGMMCTXP(LOGL_INFO, mm, "IU release for imsi %s\n", mm->imsi); - if (mm->iu.mm_state_fsm->state == ST_PMM_CONNECTED) - osmo_fsm_inst_dispatch(mm->iu.mm_state_fsm, E_PMM_PS_CONN_RELEASE, NULL); - else + LOGMMCTXP(LOGL_INFO, mm, "IU release (cause=%s)\n", ranap_iu_event_type_str(type)); + rc = osmo_fsm_inst_dispatch(mm->iu.mm_state_fsm, E_PMM_PS_CONN_RELEASE, NULL); + if (rc < 0) sgsn_ranap_iu_free(mm); /* TODO: move this into FSM */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I45017562ea7f27c2248b7de56f99ce7ca88e89b2 Gerrit-Change-Number: 23748 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Apr 14 15:24:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:24:09 +0000 Subject: Change in osmo-sgsn[master]: mm_state_{gb, iu}_fsm: Add missing license block, improve spec references In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23749 ) Change subject: mm_state_{gb,iu}_fsm: Add missing license block, improve spec references ...................................................................... mm_state_{gb,iu}_fsm: Add missing license block, improve spec references Change-Id: Ifcfd9c11005a388220c599e7b2f6901175141f1c --- M include/osmocom/sgsn/gprs_mm_state_gb_fsm.h M include/osmocom/sgsn/gprs_mm_state_iu_fsm.h M src/sgsn/gprs_mm_state_gb_fsm.c M src/sgsn/gprs_mm_state_iu_fsm.c 4 files changed, 46 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h b/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h index e69e1e1..02dcac7 100644 --- a/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h @@ -5,7 +5,7 @@ struct sgsn_mm_ctx; -/* TS 23.060 6.1.1 Mobility Management States (A/Gb mode) */ +/* TS 23.060 ? 6.1.1 Mobility Management States (A/Gb mode) */ enum mm_state_gb_fsm_states { ST_MM_IDLE, ST_MM_READY, diff --git a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h index 7f02bcc..7e11ac9 100644 --- a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h @@ -4,8 +4,7 @@ struct sgsn_mm_ctx; - -/* TS 23.060 6.1.1 Mobility Management States (A/Gb mode) */ +/* TS 23.060 ? 6.1.2 Mobility Management States (Iu mode) */ enum mm_state_iu_fsm_states { ST_PMM_DETACHED, ST_PMM_CONNECTED, diff --git a/src/sgsn/gprs_mm_state_gb_fsm.c b/src/sgsn/gprs_mm_state_gb_fsm.c index d3f2ea3..f8653f6 100644 --- a/src/sgsn/gprs_mm_state_gb_fsm.c +++ b/src/sgsn/gprs_mm_state_gb_fsm.c @@ -1,3 +1,25 @@ +/* TS 23.060 ? 6.1.1 Mobility Management States (A/Gb mode) */ +/* + * (C) 2019 by sysmocom - s.m.f.c. GmbH + * All Rights Reserved + * + * SPDX-License-Identifier: AGPL-3.0+ + * + * Author: Pau Espin Pedrol + * + * 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/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c index 91c9790..3f1336b 100644 --- a/src/sgsn/gprs_mm_state_iu_fsm.c +++ b/src/sgsn/gprs_mm_state_iu_fsm.c @@ -1,3 +1,25 @@ +/* TS 23.060 ? 6.1.2 Mobility Management States (Iu mode) */ +/* + * (C) 2019 by sysmocom - s.m.f.c. GmbH + * All Rights Reserved + * + * SPDX-License-Identifier: AGPL-3.0+ + * + * Author: Pau Espin Pedrol + * + * 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-sgsn/+/23749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ifcfd9c11005a388220c599e7b2f6901175141f1c Gerrit-Change-Number: 23749 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Wed Apr 14 15:32:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 15:32:41 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc File common/chapters/trx_if.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc at 516 PS5, Line 516: RFU: variable bit-length:: Ok, the commit message I referred to does not explain why it becomes variable length, sorry. But it mentions that RFU will appear in several places: in diagram 'Uplink message structure (batched part)' above RFU takes 4 bits. But in 'Downlink PDU structure (batched part)' I forgot to replace VER with RFU - will correct soon. > according to packetdiab above it's one byte Are you sure you are not referring to an earlier version of this patch? In the latest version it's either 1 bit (between VER and TN) or 5 bit (replacing VER in the batched part). -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 15:32:41 +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 Wed Apr 14 15:34:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 15:34:11 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc File common/chapters/trx_if.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/5/common/chapters/trx_if.adoc at 516 PS5, Line 516: RFU: variable bit-length:: > in diagram 'Uplink message structure (batched part)' above RFU takes 4 bits correction: 5 bits of course. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 15:34:11 +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 Wed Apr 14 15:35:03 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 15:35:03 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 to look at the new patch set (#7). Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... TRXD: add documentation for TRXDv2 protocol Change-Id: I03b2beeb535848b31fd629ba3cd330b43072c08b Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 276 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/67/22867/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith 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 Apr 14 15:37:47 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 15:37:47 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add extra field elements defined in other sections In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23751 ) Change subject: gsm_08_08.h: Add extra field elements defined in other sections ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4db3f7974887e4c798a30c5b51a19472ceeee27d Gerrit-Change-Number: 23751 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 14 Apr 2021 15:37: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 Apr 14 15:38:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 15:38:50 +0000 Subject: Change in libosmocore[master]: cosmetic: tlv_parser: fix typo in func description In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23752 ) Change subject: cosmetic: tlv_parser: fix typo in func description ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I27f28376a88f00d86a0f65595f61f6026f7e0fd4 Gerrit-Change-Number: 23752 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 14 Apr 2021 15:38: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 Apr 14 15:42:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:42:15 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 14 Apr 2021 15:42:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 15:42:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 15:42:20 +0000 Subject: Change in osmo-iuh[master]: iu_client: Log event sent to upper layer callback In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/23741 ) Change subject: iu_client: Log event sent to upper layer callback ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I2233df2b09ae46f28dd99d7540d71fee8e47b6ff Gerrit-Change-Number: 23741 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: Wed, 14 Apr 2021 15:42: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 Apr 14 15:42:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:42:37 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add extra field elements defined in other sections In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23751 ) Change subject: gsm_08_08.h: Add extra field elements defined in other sections ...................................................................... gsm_08_08.h: Add extra field elements defined in other sections The Signalling Field Element Coding list defined in 3.2.3 is used in "Old BSS to New BSS Information" and "New BSS to old BSS Information" IEs. However, the former IE (Old->New Info) defines 2 extra Field Elements in 3.2.2.58 (3GPP TS 48.008 version 16.0.0 Release 16) not present in 3.2.3. Related: SYS#5337 Change-Id: I4db3f7974887e4c798a30c5b51a19472ceeee27d --- M include/osmocom/gsm/protocol/gsm_08_08.h 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h index 7ef7a29..983783e 100644 --- a/include/osmocom/gsm/protocol/gsm_08_08.h +++ b/include/osmocom/gsm/protocol/gsm_08_08.h @@ -333,7 +333,8 @@ GSM0808_IE_OSMO_OSMUX_CID = 0xf1, }; -/* 3GPP TS 48.008 3.2.3 Signalling Field Element Coding */ +/* 3GPP TS 48.008 3.2.3 Signalling Field Element Coding. + See also extra fields in 3.2.2.58 and 3.2.2.80 */ enum GSM0808_SIGNALLING_FIELD_ELEMENT_CODING { GSM0808_FE_IE_EXTRA_INFORMATION = 0x01, /*< 3.2.3.1 */ GSM0808_FE_IE_CURRENT_CHANNEL_TYPE_2 = 0x02, /*< 3.2.3.2 */ @@ -353,6 +354,8 @@ GSM0808_FE_IE_IRAT_MEASUREMENT_CONFIGURATION = 0x0f, /*< 3.2.3.16 */ GSM0808_FE_IE_SOURCE_CELL_ID = 0x10, /*< 3.2.3.17 */ GSM0808_FE_IE_IRAT_MEASUREMENT_CONFIGURATION_EXTENDED_E_ARFCNS = 0x11, /*< 3.2.3.18 */ + GSM0808_FE_IE_VGCS_TALKER_MODE = 0x6f, /*< 3.2.2.93 */ + GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID = 0x95, /*< 3.2.2.127 */ }; /* 3GPP TS 48.008 3.2.2.5 Cause */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4db3f7974887e4c798a30c5b51a19472ceeee27d Gerrit-Change-Number: 23751 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 15:42:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:42:38 +0000 Subject: Change in libosmocore[master]: cosmetic: tlv_parser: fix typo in func description In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23752 ) Change subject: cosmetic: tlv_parser: fix typo in func description ...................................................................... cosmetic: tlv_parser: fix typo in func description Change-Id: I27f28376a88f00d86a0f65595f61f6026f7e0fd4 --- M src/gsm/tlv_parser.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index 967539e..c5aac97 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -433,7 +433,7 @@ return num_parsed; } -/*! take a master (src) tlvdev and fill up all empty slots in 'dst' +/*! take a master (src) tlv_definition and fill up all empty slots in 'dst' * \param dst TLV parser definition that is to be patched * \param[in] src TLV parser definition whose content is patched into \a dst */ void tlv_def_patch(struct tlv_definition *dst, const struct tlv_definition *src) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I27f28376a88f00d86a0f65595f61f6026f7e0fd4 Gerrit-Change-Number: 23752 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 15:43:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:43:30 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 14 Apr 2021 15:43: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 Wed Apr 14 15:43:46 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 15:43:46 +0000 Subject: Change in osmo-iuh[master]: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE ... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/23742 ) Change subject: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-iuh/+/23742/1/include/osmocom/ranap/iu_client.h File include/osmocom/ranap/iu_client.h: https://gerrit.osmocom.org/c/osmo-iuh/+/23742/1/include/osmocom/ranap/iu_client.h at a79 PS1, Line 79: * Why are you removing the stars? :D Let's just keep the current formatting. -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0 Gerrit-Change-Number: 23742 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 14 Apr 2021 15:43: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 Wed Apr 14 15:45:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:45:15 +0000 Subject: Change in osmo-iuh[master]: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE ... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-iuh/+/23742 to look at the new patch set (#2). Change subject: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result ...................................................................... ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result This allows the SGSN always having feedback on the resolution of the release, hence being able to stay in PMM CONNECTED state until the resolution is received, then moving to PMM IDLE. Related: SYS#5389 Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0 --- M include/osmocom/ranap/iu_client.h M src/iu_client.c 2 files changed, 13 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/42/23742/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0 Gerrit-Change-Number: 23742 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 15:46:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 15:46:11 +0000 Subject: Change in osmo-iuh[master]: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE ... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/23742 ) Change subject: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0 Gerrit-Change-Number: 23742 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: Wed, 14 Apr 2021 15: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 Wed Apr 14 15:48:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 15:48:22 +0000 Subject: Change in osmo-bsc[master]: cosmetic: Fix typo in func description References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23754 ) Change subject: cosmetic: Fix typo in func description ...................................................................... cosmetic: Fix typo in func description Change-Id: I26cd31bc3e127cba17be508d10a5fd3cf6498901 --- M src/osmo-bsc/gsm_04_08_rr.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/54/23754/1 diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 8a0ccb6..707127a 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -244,7 +244,7 @@ #define CELL_SEL_IND_AFTER_REL_MAX_BYTES OSMO_BYTES_FOR_BITS(CELL_SEL_IND_AFTER_REL_MAX_BITS) /* Generate a CSN.1 encoded "Cell Selection Indicator after release of all TCH and SDCCH" - * as per TF 44.018 version 15.3.0 Table 10.5.2.1e.1. This only generates the "value" + * as per TS 44.018 version 15.3.0 Table 10.5.2.1e.1. This only generates the "value" * part of the IE, not the tag+length wrapper */ static int generate_cell_sel_ind_after_rel(uint8_t *out, unsigned int out_len, const struct gsm_bts *bts) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I26cd31bc3e127cba17be508d10a5fd3cf6498901 Gerrit-Change-Number: 23754 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 Apr 14 16:32:35 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 16:32:35 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 14 Apr 2021 16:32:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 16:33:04 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 14 Apr 2021 16:33:04 +0000 Subject: Change in osmo-sgsn[master]: mm_state_{gb, iu}_fsm: Improve naming for detach event In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23750 ) Change subject: mm_state_{gb,iu}_fsm: Improve naming for detach event ...................................................................... Patch Set 1: Code-Review+2 Fine with this, the implicit detach is transmitted in the cause anyway, the message type is always detach request. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I224ea9db80b4d96696934cea06349dab036f919b Gerrit-Change-Number: 23750 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 14 Apr 2021 16:33: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 Apr 14 16:44:20 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 16:44:20 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23734/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/23734/2//COMMIT_MSG at 7 PS2, Line 7: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID "neighs" should be "neighbours" i think...? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 14 Apr 2021 16:44: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 Wed Apr 14 16:49:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 16:49:45 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23734/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/23734/2//COMMIT_MSG at 7 PS2, Line 7: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID > "neighs" should be "neighbours" i think... [?] sure, it's just an abreviation to avoid filling more of the first line ;) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 14 Apr 2021 16:49:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 16:49:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 16:49:50 +0000 Subject: Change in osmo-sgsn[master]: mm_state_{gb, iu}_fsm: Improve naming for detach event In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23750 ) Change subject: mm_state_{gb,iu}_fsm: Improve naming for detach event ...................................................................... mm_state_{gb,iu}_fsm: Improve naming for detach event The E_(P)MM_IMPLICIT_DETACH event was actually sent and handled when the UE was considered to be detached, no matter the reason, be it due to implicit detach, or Detach Request received, etc. So, let's properly name the event to avoid confusions in the code. Related: SYS#5389 Change-Id: I224ea9db80b4d96696934cea06349dab036f919b --- M include/osmocom/sgsn/gprs_mm_state_gb_fsm.h M include/osmocom/sgsn/gprs_mm_state_iu_fsm.h M src/sgsn/gprs_gmm.c M src/sgsn/gprs_gmm_fsm.c M src/sgsn/gprs_mm_state_gb_fsm.c M src/sgsn/gprs_mm_state_iu_fsm.c 6 files changed, 18 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h b/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h index 02dcac7..4237c2f 100644 --- a/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h @@ -14,9 +14,8 @@ enum mm_state_gb_fsm_events { E_MM_GPRS_ATTACH, - /* E_GPRS_DETACH, TODO: not used */ + E_MM_GPRS_DETACH, /* MS becomes detached: due to Detach Req, RAU reject, implicit detach, etc. */ E_MM_PDU_RECEPTION, - E_MM_IMPLICIT_DETACH, /* = E_MM_CANCEL_LOCATION */ E_MM_READY_TIMER_EXPIRY, /* E_FORCE_TO_STANDBY, TODO: not used */ /* E_ABNSORMAL_RLC_CONDITION, TODO: not used */ diff --git a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h index 7e11ac9..6dae759 100644 --- a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h +++ b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h @@ -13,10 +13,9 @@ enum mm_state_iu_fsm_events { E_PMM_PS_ATTACH, - /* E_PS_DETACH, TODO: not used */ + E_PMM_PS_DETACH, /* UE becomes detached: due to Detach Req, RAU reject, implicit detach, etc. */ E_PMM_PS_CONN_RELEASE, E_PMM_PS_CONN_ESTABLISH, - E_PMM_IMPLICIT_DETACH, /* = E_PS_ATTACH_REJECT, E_RAU_REJECT */ E_PMM_RA_UPDATE, /* = Serving RNC relocation */ }; diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c index f05167f..edddd2d 100644 --- a/src/sgsn/gprs_gmm.c +++ b/src/sgsn/gprs_gmm.c @@ -197,10 +197,10 @@ switch(ctx->ran_type) { case MM_CTX_T_UTRAN_Iu: - osmo_fsm_inst_dispatch(ctx->iu.mm_state_fsm, E_PMM_IMPLICIT_DETACH, NULL); + osmo_fsm_inst_dispatch(ctx->iu.mm_state_fsm, E_PMM_PS_DETACH, NULL); break; case MM_CTX_T_GERAN_Gb: - osmo_fsm_inst_dispatch(ctx->gb.mm_state_fsm, E_MM_IMPLICIT_DETACH, NULL); + osmo_fsm_inst_dispatch(ctx->gb.mm_state_fsm, E_MM_GPRS_DETACH, NULL); break; } diff --git a/src/sgsn/gprs_gmm_fsm.c b/src/sgsn/gprs_gmm_fsm.c index caec586..78946b5 100644 --- a/src/sgsn/gprs_gmm_fsm.c +++ b/src/sgsn/gprs_gmm_fsm.c @@ -199,9 +199,9 @@ gmm_fsm_state_chg(fi, ST_GMM_DEREGISTERED); default: if (mmctx->ran_type == MM_CTX_T_GERAN_Gb) - osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, E_MM_IMPLICIT_DETACH, NULL); + osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, E_MM_GPRS_DETACH, NULL); else if (mmctx->ran_type == MM_CTX_T_UTRAN_Iu) { - osmo_fsm_inst_dispatch(mmctx->iu.mm_state_fsm, E_PMM_IMPLICIT_DETACH, NULL); + osmo_fsm_inst_dispatch(mmctx->iu.mm_state_fsm, E_PMM_PS_DETACH, NULL); mmctx->gb.llme = rat_chg->llme; } diff --git a/src/sgsn/gprs_mm_state_gb_fsm.c b/src/sgsn/gprs_mm_state_gb_fsm.c index f8653f6..6e812d3 100644 --- a/src/sgsn/gprs_mm_state_gb_fsm.c +++ b/src/sgsn/gprs_mm_state_gb_fsm.c @@ -71,7 +71,7 @@ case E_MM_READY_TIMER_EXPIRY: mm_state_gb_fsm_state_chg(fi, ST_MM_STANDBY); break; - case E_MM_IMPLICIT_DETACH: + case E_MM_GPRS_DETACH: mm_state_gb_fsm_state_chg(fi, ST_MM_IDLE); break; case E_MM_PDU_RECEPTION: @@ -90,7 +90,7 @@ case E_MM_PDU_RECEPTION: mm_state_gb_fsm_state_chg(fi, ST_MM_READY); break; - case E_MM_IMPLICIT_DETACH: + case E_MM_GPRS_DETACH: mm_state_gb_fsm_state_chg(fi, ST_MM_IDLE); break; } @@ -105,13 +105,13 @@ .action = st_mm_idle, }, [ST_MM_READY] = { - .in_event_mask = X(E_MM_READY_TIMER_EXPIRY) | X(E_MM_RA_UPDATE) | X(E_MM_IMPLICIT_DETACH) | X(E_MM_PDU_RECEPTION), + .in_event_mask = X(E_MM_READY_TIMER_EXPIRY) | X(E_MM_RA_UPDATE) | X(E_MM_GPRS_DETACH) | X(E_MM_PDU_RECEPTION), .out_state_mask = X(ST_MM_IDLE) | X(ST_MM_STANDBY), .name = "Ready", .action = st_mm_ready, }, [ST_MM_STANDBY] = { - .in_event_mask = X(E_MM_PDU_RECEPTION) | X(E_MM_IMPLICIT_DETACH), + .in_event_mask = X(E_MM_PDU_RECEPTION) | X(E_MM_GPRS_DETACH), .out_state_mask = X(ST_MM_IDLE) | X(ST_MM_READY), .name = "Standby", .action = st_mm_standby, @@ -121,7 +121,7 @@ const struct value_string mm_state_gb_fsm_event_names[] = { OSMO_VALUE_STRING(E_MM_GPRS_ATTACH), OSMO_VALUE_STRING(E_MM_PDU_RECEPTION), - OSMO_VALUE_STRING(E_MM_IMPLICIT_DETACH), + OSMO_VALUE_STRING(E_MM_GPRS_DETACH), OSMO_VALUE_STRING(E_MM_READY_TIMER_EXPIRY), OSMO_VALUE_STRING(E_MM_RA_UPDATE), { 0, NULL } diff --git a/src/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c index 3f1336b..b1604f8 100644 --- a/src/sgsn/gprs_mm_state_iu_fsm.c +++ b/src/sgsn/gprs_mm_state_iu_fsm.c @@ -61,7 +61,7 @@ case E_PMM_PS_ATTACH: mm_state_iu_fsm_state_chg(fi, ST_PMM_CONNECTED); break; - case E_PMM_IMPLICIT_DETACH: + case E_PMM_PS_DETACH: break; } } @@ -75,7 +75,7 @@ sgsn_ranap_iu_free(ctx); mm_state_iu_fsm_state_chg(fi, ST_PMM_IDLE); break; - case E_PMM_IMPLICIT_DETACH: + case E_PMM_PS_DETACH: sgsn_ranap_iu_release_free(ctx, NULL); mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); break; @@ -98,7 +98,7 @@ case E_PMM_PS_CONN_ESTABLISH: mm_state_iu_fsm_state_chg(fi, ST_PMM_CONNECTED); break; - case E_PMM_IMPLICIT_DETACH: + case E_PMM_PS_DETACH: mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); break; } @@ -106,7 +106,7 @@ static struct osmo_fsm_state mm_state_iu_fsm_states[] = { [ST_PMM_DETACHED] = { - .in_event_mask = X(E_PMM_PS_ATTACH) | X(E_PMM_IMPLICIT_DETACH), + .in_event_mask = X(E_PMM_PS_ATTACH) | X(E_PMM_PS_DETACH), .out_state_mask = X(ST_PMM_CONNECTED), .name = "Detached", .action = st_pmm_detached, @@ -115,14 +115,14 @@ .in_event_mask = X(E_PMM_PS_CONN_RELEASE) | X(E_PMM_RA_UPDATE) | - X(E_PMM_IMPLICIT_DETACH), + X(E_PMM_PS_DETACH), .out_state_mask = X(ST_PMM_DETACHED) | X(ST_PMM_IDLE), .name = "Connected", .action = st_pmm_connected, }, [ST_PMM_IDLE] = { .in_event_mask = - X(E_PMM_IMPLICIT_DETACH) | + X(E_PMM_PS_DETACH) | X(E_PMM_PS_CONN_ESTABLISH) | X(E_PMM_PS_ATTACH), .out_state_mask = X(ST_PMM_DETACHED) | X(ST_PMM_CONNECTED), @@ -136,7 +136,7 @@ OSMO_VALUE_STRING(E_PMM_PS_ATTACH), OSMO_VALUE_STRING(E_PMM_PS_CONN_RELEASE), OSMO_VALUE_STRING(E_PMM_PS_CONN_ESTABLISH), - OSMO_VALUE_STRING(E_PMM_IMPLICIT_DETACH), + OSMO_VALUE_STRING(E_PMM_PS_DETACH), OSMO_VALUE_STRING(E_PMM_RA_UPDATE), { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I224ea9db80b4d96696934cea06349dab036f919b Gerrit-Change-Number: 23750 Gerrit-PatchSet: 1 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 Wed Apr 14 17:25:26 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 14 Apr 2021 17:25:26 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23734/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/23734/2//COMMIT_MSG at 7 PS2, Line 7: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID > sure, it's just an abreviation to avoid filling more of the first line ;) You know that neighing is the sound that horses occasionally do? ;-) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 14 Apr 2021 17:25:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 17:40:45 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 14 Apr 2021 17:40:45 +0000 Subject: Change in osmo-bsc[master]: drop unused func decl rsl_lchan_mark_broken() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23726 ) Change subject: drop unused func decl rsl_lchan_mark_broken() ...................................................................... drop unused func decl rsl_lchan_mark_broken() Change-Id: Ib08e69720e2b9a6ea5f5b5d13baa9920c415f078 --- M include/osmocom/bsc/abis_rsl.h 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: fixeria: Looks good to me, approved pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h index 58eca29..158f7fb 100644 --- a/include/osmocom/bsc/abis_rsl.h +++ b/include/osmocom/bsc/abis_rsl.h @@ -80,8 +80,6 @@ int rsl_release_request(struct gsm_lchan *lchan, uint8_t link_id, enum rsl_rel_mode release_mode); -int rsl_lchan_mark_broken(struct gsm_lchan *lchan, const char *broken); - /* to be provided by external code */ int rsl_deact_sacch(struct gsm_lchan *lchan); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib08e69720e2b9a6ea5f5b5d13baa9920c415f078 Gerrit-Change-Number: 23726 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Apr 14 17:40:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 14 Apr 2021 17:40:46 +0000 Subject: Change in osmo-bsc[master]: drop unused gsm_bts_trx->description In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23727 ) Change subject: drop unused gsm_bts_trx->description ...................................................................... drop unused gsm_bts_trx->description Change-Id: I3c0778322b8c630b0eb9d9cd3ac3cc71386c9c12 --- M include/osmocom/bsc/bts_trx.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/osmo_bsc_main.c 3 files changed, 0 insertions(+), 11 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/osmocom/bsc/bts_trx.h b/include/osmocom/bsc/bts_trx.h index 7c8ef52..e42e1e4 100644 --- a/include/osmocom/bsc/bts_trx.h +++ b/include/osmocom/bsc/bts_trx.h @@ -31,8 +31,6 @@ struct gsm_bts *bts; /* number of this TRX in the BTS */ uint8_t nr; - /* human readable name / description */ - char *description; /* how do we talk RSL with this TRX? */ struct gsm_e1_subslot rsl_e1_link; uint8_t rsl_tei; diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 0955ffe..57c1f0a 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -726,9 +726,6 @@ int i; vty_out(vty, " trx %u%s", trx->nr, VTY_NEWLINE); - if (trx->description) - vty_out(vty, " description %s%s", trx->description, - VTY_NEWLINE); vty_out(vty, " rf_locked %u%s", trx->mo.force_rf_lock ? 1 : 0, VTY_NEWLINE); @@ -983,8 +980,6 @@ vty_out(vty, " bts %u%s", bts->nr, VTY_NEWLINE); vty_out(vty, " type %s%s", btstype2str(bts->type), VTY_NEWLINE); - if (bts->description) - vty_out(vty, " description %s%s", bts->description, VTY_NEWLINE); vty_out(vty, " band %s%s", gsm_band_name(bts->band), VTY_NEWLINE); vty_out(vty, " cell_identity %u%s", bts->cell_identity, VTY_NEWLINE); vty_out(vty, " location_area_code %u%s", bts->location_area_code, @@ -1335,8 +1330,6 @@ vty_out(vty, "TRX %u of BTS %u is on ARFCN %u%s", trx->nr, trx->bts->nr, trx->arfcn, VTY_NEWLINE); - vty_out(vty, "Description: %s%s", - trx->description ? trx->description : "(null)", VTY_NEWLINE); vty_out(vty, " RF Nominal Power: %d dBm, reduced by %u dB, " "resulting BS power: %d dBm%s", trx->nominal_power, trx->max_power_red, @@ -5322,7 +5315,6 @@ return CMD_WARNING; vty->index = trx; - vty->index_sub = &trx->description; vty->node = TRX_NODE; return CMD_SUCCESS; diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 5426b1e..3069cc0 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -607,7 +607,6 @@ /* set vty->index correctly ! */ struct gsm_bts_trx_ts *ts = vty->index; vty->index = ts->trx; - vty->index_sub = &ts->trx->description; } break; case OML_NODE: -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3c0778322b8c630b0eb9d9cd3ac3cc71386c9c12 Gerrit-Change-Number: 23727 Gerrit-PatchSet: 3 Gerrit-Owner: neels 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 Wed Apr 14 17:40:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 14 Apr 2021 17:40:46 +0000 Subject: Change in osmo-bsc[master]: deprecation: use osmo_bts_features_*() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23728 ) Change subject: deprecation: use osmo_bts_features_*() ...................................................................... deprecation: use osmo_bts_features_*() For "reported feature '%s'...", use the short feature name, which better matches the message. Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d --- M TODO-RELEASE M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bsc_vty.c 3 files changed, 3 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index d0852fc..1a72401 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,3 +7,4 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line +libosmocore >1.5.1 needs osmo_bts_features_name(), osmo_bts_features_desc() diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 3eab14e..ba1075a 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -607,7 +607,7 @@ if (!Frep && Fexp) { LOGPMO(&bts->mo, DNM, LOGL_NOTICE, "Get Attributes Response: " "reported feature '%s' is not supported, while we thought it is.\n", - osmo_bts_feature_name(i)); + osmo_bts_features_name(i)); } } } diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 57c1f0a..1d29f1b 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -349,7 +349,7 @@ for (i = 0; i < _NUM_BTS_FEAT; i++) { if (osmo_bts_has_feature(&bts->features, i)) { vty_out(vty, " %03u ", i); - vty_out(vty, "%-40s%s", osmo_bts_feature_name(i), VTY_NEWLINE); + vty_out(vty, "%-40s%s", osmo_bts_features_desc(i), VTY_NEWLINE); no_features = false; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie09506fbf3a1f0e899f9f4c8070e3139fd1d5e9d Gerrit-Change-Number: 23728 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Wed Apr 14 17:43:39 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 17:43:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23755 ) Change subject: ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU ...................................................................... ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU Allow to work with IPv4 and IPv6 endpoints and only expected known required fields (e.g. NSEI and rst_flag). Related: OS#5036 Change-Id: I60f669d7c8838d460a14c6604c4375a8d47f5149 --- M ns/NS_Tests.ttcn 1 file changed, 9 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/55/23755/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 1715b2e..eaf3c60 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -517,8 +517,15 @@ [] as_rx_alive_tx_ack(); } - f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 8, - num_v4 := 4, num_v6 := omit), 0); + if (nsvc_cfg.provider.ip.address_family == AF_INET) { + /* expect one single SNS-SIZE with RESET flag; 4x v4 EP; no v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, + num_v4 := ?, num_v6 := omit), 0); + } else { + /* expect one single SNS-SIZE with RESET flag; no v4 EP; 4x v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, + num_v4 := omit, num_v6 := ?), 0); + setverdict(pass); f_clean_ns_codec(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I60f669d7c8838d460a14c6604c4375a8d47f5149 Gerrit-Change-Number: 23755 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 Apr 14 17:43:39 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 17:43:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: TC_sns_bss_change_weight_timeout rework TC to use g_handle_rx_alive References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23756 ) Change subject: ns: TC_sns_bss_change_weight_timeout rework TC to use g_handle_rx_alive ...................................................................... ns: TC_sns_bss_change_weight_timeout rework TC to use g_handle_rx_alive With g_handle_rx_alive the test case doesn't need to use alt{} as f_ns_exp takes care of the NS_ALIVE. Related: OS#5036 Change-Id: I45f4392b556912bf60859f354a5687a44e6beeb1 --- M ns/NS_Tests.ttcn 1 file changed, 5 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/23756/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index eaf3c60..f69bbe0 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -469,6 +469,7 @@ } testcase TC_sns_bss_change_weight() runs on RAW_Test_CT { + g_handle_rx_alive := true; f_init_vty(); f_init_ns_codec(mp_nsconfig); f_incoming_sns_size(); @@ -487,6 +488,7 @@ var template PDU_NS rx; var NSVCConfiguration nsvc_cfg; + g_handle_rx_alive := true; f_init_vty(); f_init_ns_codec(mp_nsconfig); f_incoming_sns_size(); @@ -507,14 +509,8 @@ rx := tr_SNS_CHG_WEIGHT(g_nsconfig.nsei, ?, v4 := omit, v6 := v6_elem); } - alt { - [] NSCP[0].receive(rx) { - i := i + 1; - if (i < 3) { - repeat; - } - } - [] as_rx_alive_tx_ack(); + for (i := 0; i < 3; i := i + 1) { + f_ns_exp(rx); } if (nsvc_cfg.provider.ip.address_family == AF_INET) { @@ -525,6 +521,7 @@ /* expect one single SNS-SIZE with RESET flag; no v4 EP; 4x v6 EP */ rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, num_v4 := omit, num_v6 := ?), 0); + } setverdict(pass); f_clean_ns_codec(); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23756 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I45f4392b556912bf60859f354a5687a44e6beeb1 Gerrit-Change-Number: 23756 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 Apr 14 18:17:43 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 18:17:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONF... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23757 ) Change subject: gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONFIGURED ...................................................................... gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONFIGURED A transistion from GPRS_SNS_ST_UNCONFIGURED -> GPRS_SNS_ST_UNCONFIGURED. Related: OS#5036 Change-Id: I125e7e5a08ea6aff6e0308a18b5c0a6d0392ad32 --- M src/gb/gprs_ns2_sns.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/23757/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 18f388d..c6e80af 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1378,7 +1378,8 @@ static const struct osmo_fsm_state ns2_sns_bss_states[] = { [GPRS_SNS_ST_UNCONFIGURED] = { .in_event_mask = 0, /* handled by all_state_action */ - .out_state_mask = S(GPRS_SNS_ST_BSS_SIZE), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_BSS_SIZE), .name = "UNCONFIGURED", .action = ns2_sns_st_bss_unconfigured, }, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23757 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I125e7e5a08ea6aff6e0308a18b5c0a6d0392ad32 Gerrit-Change-Number: 23757 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 Apr 14 18:17:44 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 18:17:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement local update weight procedure References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23758 ) Change subject: gprs_ns2: implement local update weight procedure ...................................................................... gprs_ns2: implement local update weight procedure When changing the bind ip-sns weight, initiate a SNS UPDATE WEIGHT procedure to inform the other side. Related: OS#5036 Change-Id: If034ac371a604bab5e58beadb784382c8b97cca3 --- 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_vty.c M tests/gb/gprs_ns2_vty.vty 5 files changed, 298 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/23758/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 1148d6f..2f8396e 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1400,6 +1400,7 @@ 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; + nsi->timeout[NS_TOUT_TSNS_PROCEDURES_RETRIES] = 3; return nsi; } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 70e212a..8b02a88 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -46,8 +46,8 @@ struct gprs_ns2_vc_driver; 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-size-retries|tsns-config-retries)" +#define NS_TIMERS_COUNT 11 +#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|tsns-procedures-retries)" #define NS_TIMERS_HELP \ "(un)blocking Timer (Tns-block) timeout\n" \ "(un)blocking Timer (Tns-block) number of retries\n" \ @@ -59,6 +59,7 @@ "SNS Provision Timer (Tsns-prov) timeout\n" \ "SNS Size number of retries\n" \ "SNS Config number of retries\n" \ + "SNS Procedures number of retries\n" \ /* Educated guess - LLC user payload is 1500 bytes plus possible headers */ #define NS_ALLOC_SIZE 3072 @@ -75,6 +76,7 @@ NS_TOUT_TSNS_PROV, NS_TOUT_TSNS_SIZE_RETRIES, NS_TOUT_TSNS_CONFIG_RETRIES, + NS_TOUT_TSNS_PROCEDURES_RETRIES, }; enum nsvc_timer_mode { diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index c6e80af..a19171f 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -75,6 +75,7 @@ GPRS_SNS_ST_CONFIGURED, GPRS_SNS_ST_SGSN_WAIT_CONFIG, /* !< SGSN role: Wait for CONFIG from BSS */ GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK, /* !< SGSN role: Wait for CONFIG-ACK from BSS */ + GPRS_SNS_ST_LOCAL_PROCEDURE, /*!< in process of a ADD/DEL/UPDATE procedure towards SGSN (BSS->SGSN) */ }; enum gprs_sns_event { @@ -92,6 +93,7 @@ GPRS_SNS_EV_REQ_NSVC_ALIVE, /*!< a NS-VC became alive */ GPRS_SNS_EV_REQ_ADD_BIND, /*!< add a new local bind to this NSE */ GPRS_SNS_EV_REQ_DELETE_BIND, /*!< remove a local bind from this NSE */ + GPRS_SNS_EV_REQ_CHANGE_WEIGHT, /*!< a bind changed its weight */ }; static const struct value_string gprs_sns_event_names[] = { @@ -109,17 +111,40 @@ { GPRS_SNS_EV_REQ_NSVC_ALIVE, "REQ_NSVC_ALIVE"}, { GPRS_SNS_EV_REQ_ADD_BIND, "REQ_ADD_BIND"}, { GPRS_SNS_EV_REQ_DELETE_BIND, "REQ_DELETE_BIND"}, + { GPRS_SNS_EV_REQ_CHANGE_WEIGHT, "REQ_UPDATE_WEIGHT"}, { 0, NULL } }; +enum sns_procedure { + SNS_NONE, /*!< used as invalid/idle value */ + SNS_ADD, + SNS_DEL, + SNS_CHANGE_WEIGHT, +}; + +enum sns_bind_flag { + SNS_BIND_CHANGE_REQ, /*!< need to change */ + SNS_BIND_CHANGE_IN_PROGRESS, /*!< change is going on */ +}; + struct sns_endpoint { struct llist_head list; struct osmo_sockaddr saddr; }; +struct ns2_sns_procedure { + struct llist_head list; + struct ns2_sns_bind *bind; + struct gprs_ns_ie_ip4_elem *ip4; + struct gprs_ns_ie_ip6_elem *ip6; + enum sns_procedure procedure; + uint8_t trans_id; +}; + struct ns2_sns_bind { struct llist_head list; struct gprs_ns2_vc_bind *bind; + uint8_t change_weight_state; }; struct ns2_sns_state { @@ -170,14 +195,46 @@ /* remote configuration as received */ struct gprs_ns_ie_ip6_elem *ip6_remote; unsigned int num_ip6_remote; + + struct ns2_sns_procedure current_procedure; }; +static void ns2_procedure_set_endpoint(struct ns2_sns_state *gss); + static inline struct gprs_ns2_nse *nse_inst_from_fi(struct osmo_fsm_inst *fi) { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; return gss->nse; } +static struct gprs_ns_ie_ip4_elem *ip4_elem_by_saddr(struct gprs_ns_ie_ip4_elem *ip4, size_t num, const struct osmo_sockaddr *saddr) +{ + if (saddr->u.sa.sa_family != AF_INET) + return NULL; + + for (size_t i = 0; i < num; i++) { + if (ip4[i].ip_addr == saddr->u.sin.sin_addr.s_addr && + ip4->udp_port == saddr->u.sin.sin_port) + return &ip4[i]; + } + + return NULL; +} + +static struct gprs_ns_ie_ip6_elem *ip6_elem_by_saddr(struct gprs_ns_ie_ip6_elem *ip6, size_t num, const struct osmo_sockaddr *saddr) +{ + if (saddr->u.sa.sa_family != AF_INET6) + return NULL; + + for (size_t i = 0; i < num; i++) { + if (memcmp(&ip6[i].ip_addr, &saddr->u.sin6.sin6_addr, sizeof(struct in6_addr)) == 0 && + ip6->udp_port == saddr->u.sin6.sin6_port) + return &ip6[i]; + } + + return NULL; +} + /* helper function to compute the sum of all (data or signaling) weights */ static int ip4_weight_sum(const struct gprs_ns_ie_ip4_elem *ip4, unsigned int num, bool data_weight) @@ -298,6 +355,11 @@ osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_REQ_NO_NSVC, NULL); } +static void ns2_clear_procedures(struct ns2_sns_state *gss) +{ + memset(&gss->current_procedure, 0, sizeof(struct ns2_sns_state)); +} + static void ns2_clear_ipv46_entries_local(struct ns2_sns_state *gss) { TALLOC_FREE(gss->ip4_local); @@ -896,6 +958,7 @@ if (old_state != GPRS_SNS_ST_BSS_SIZE) gss->N = 0; + ns2_clear_procedures(gss); gss->alive = false; ns2_sns_compute_local_ep_from_binds(fi); @@ -1372,7 +1435,102 @@ if (gss->sns_nsvc->sns_only) gprs_ns2_free_nsvc(gss->sns_nsvc); - ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED); + if (old_state != GPRS_SNS_ST_LOCAL_PROCEDURE) + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED); +} + +static void ns2_sns_st_local_procedure_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +{ + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; + struct ns2_sns_bind *sns_bind; + + if (gss->current_procedure.procedure == SNS_NONE) { + gss->N = 0; + /* select the next procedure */ + llist_for_each_entry(sns_bind, &gss->binds, list) { + if (sns_bind->change_weight_state & S(SNS_BIND_CHANGE_REQ)) { + sns_bind->change_weight_state = 0; + gss->current_procedure.bind = sns_bind; + gss->current_procedure.procedure = SNS_CHANGE_WEIGHT; + ns2_procedure_set_endpoint(gss); + break; + } + } + + if (gss->current_procedure.procedure == SNS_NONE) { + /* nothing to do */ + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIGURED, 0, 0); + return; + } + gss->current_procedure.trans_id++; + if (gss->current_procedure.trans_id == 0) + gss->current_procedure.trans_id = 1; + } + + /* also takes care of retransmitting */ + switch (gss->current_procedure.procedure) { + case SNS_ADD: + if (gss->ip == IPv4) + ns2_tx_sns_add(gss->sns_nsvc, gss->current_procedure.trans_id, gss->current_procedure.ip4, 1, NULL, 0); + else + ns2_tx_sns_add(gss->sns_nsvc, gss->current_procedure.trans_id, NULL, 0, gss->current_procedure.ip6, 1); + break; + case SNS_CHANGE_WEIGHT: + if (gss->ip == IPv4) + ns2_tx_sns_change_weight(gss->sns_nsvc, gss->current_procedure.trans_id, gss->current_procedure.ip4, 1, NULL, 0); + else + ns2_tx_sns_change_weight(gss->sns_nsvc, gss->current_procedure.trans_id, NULL, 0, gss->current_procedure.ip6, 1); + break; + case SNS_DEL: + if (gss->ip == IPv4) + ns2_tx_sns_del(gss->sns_nsvc, gss->current_procedure.trans_id, gss->current_procedure.ip4, 1, NULL, 0); + else + ns2_tx_sns_del(gss->sns_nsvc, gss->current_procedure.trans_id, NULL, 0, gss->current_procedure.ip6, 1); + break; + default: + break; + } +} + +static void ns2_sns_st_local_procedure(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); + struct gprs_ns2_inst *nsi = nse->nsi; + struct tlv_parsed *tp = data; + uint8_t trans_id; + + switch (event) { + case GPRS_SNS_EV_RX_ADD: + ns2_sns_st_configured_add(fi, gss, tp); + break; + case GPRS_SNS_EV_RX_DELETE: + ns2_sns_st_configured_delete(fi, gss, tp); + break; + case GPRS_SNS_EV_RX_CHANGE_WEIGHT: + ns2_sns_st_configured_change(fi, gss, tp); + break; + case GPRS_SNS_EV_RX_ACK: + /* presence of trans_id is already checked here */ + trans_id = tlvp_val8(tp, NS_IE_TRANS_ID, 0); + if (trans_id != gss->current_procedure.trans_id) { + LOGPFSML(fi, LOGL_DEBUG, "NSEI=%u Rx SNS ACK with invalid transaction id %d. Valid %d\n", + nse->nsei, trans_id, gss->current_procedure.trans_id); + break; + } + + if (!TLVP_PRESENT(tp, NS_IE_CAUSE)) { + gss->current_procedure.procedure = SNS_NONE; + /* everything ok, local_procedure_onenter() will check if there are more procedures required */ + + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_LOCAL_PROCEDURE, + nsi->timeout[NS_TOUT_TSNS_PROV], GPRS_SNS_ST_LOCAL_PROCEDURE); + return; + } else { + /* what happend on error cause? return to size? */ + } + break; + } } static const struct osmo_fsm_state ns2_sns_bss_states[] = { @@ -1419,11 +1577,27 @@ S(GPRS_SNS_EV_RX_CHANGE_WEIGHT) | S(GPRS_SNS_EV_REQ_NSVC_ALIVE), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | - S(GPRS_SNS_ST_BSS_SIZE), + S(GPRS_SNS_ST_BSS_SIZE) | + S(GPRS_SNS_ST_LOCAL_PROCEDURE), .name = "CONFIGURED", .action = ns2_sns_st_configured, .onenter = ns2_sns_st_configured_onenter, }, + [GPRS_SNS_ST_LOCAL_PROCEDURE] = { + .in_event_mask = S(GPRS_SNS_EV_RX_ADD) | + S(GPRS_SNS_EV_RX_DELETE) | + S(GPRS_SNS_EV_RX_CHANGE_WEIGHT) | + S(GPRS_SNS_EV_RX_ACK) | + S(GPRS_SNS_EV_REQ_NSVC_ALIVE), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_BSS_SIZE) | + S(GPRS_SNS_ST_CONFIGURED) | + S(GPRS_SNS_ST_LOCAL_PROCEDURE), + .name = "LOCAL_PROCEDURE", + .action = ns2_sns_st_local_procedure, + .onenter = ns2_sns_st_local_procedure_onenter, + }, + }; static int ns2_sns_fsm_bss_timer_cb(struct osmo_fsm_inst *fi) @@ -1462,6 +1636,14 @@ LOGPFSML(fi, LOGL_ERROR, "NSE %d: Config succeeded but no NS-VC came online. Selecting next IP-SNS endpoint.\n", nse->nsei); osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_REQ_SELECT_ENDPOINT, NULL); break; + case GPRS_SNS_ST_LOCAL_PROCEDURE: + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES]) { + LOGPFSML(fi, LOGL_ERROR, "NSE %d: Procedure retries failed. Restarting NSE.\n", nse->nsei); + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_REQ_SELECT_ENDPOINT, NULL); + } else { + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_LOCAL_PROCEDURE, nsi->timeout[NS_TOUT_TSNS_PROV], GPRS_SNS_ST_LOCAL_PROCEDURE); + } + break; } return 0; } @@ -1518,6 +1700,21 @@ /* if this is the last bind, the free_nsvc() will trigger a reselection */ talloc_free(sbind); break; + case GPRS_SNS_EV_REQ_CHANGE_WEIGHT: + sbind = data; + switch (fi->state) { + case GPRS_SNS_ST_UNCONFIGURED: + case GPRS_SNS_ST_BSS_SIZE: + /* unconfigured or size don't need a procedure */ + break; + /* all other states */ + default: + /* change the flag */ + sbind->change_weight_state |= S(SNS_BIND_CHANGE_REQ); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_LOCAL_PROCEDURE, nse->nsi->timeout[NS_TOUT_TSNS_PROV], GPRS_SNS_ST_LOCAL_PROCEDURE); + break; + } + break; } } @@ -1577,6 +1774,7 @@ .allstate_event_mask = S(GPRS_SNS_EV_REQ_NO_NSVC) | S(GPRS_SNS_EV_REQ_SELECT_ENDPOINT) | S(GPRS_SNS_EV_REQ_ADD_BIND) | + S(GPRS_SNS_EV_REQ_CHANGE_WEIGHT) | S(GPRS_SNS_EV_REQ_DELETE_BIND), .allstate_action = ns2_sns_st_all_action_bss, .cleanup = NULL, @@ -1911,7 +2109,7 @@ return; gss = nse->bss_sns_fi->priv; - if(nse->bss_sns_fi->state != GPRS_SNS_ST_CONFIGURED) + if(nse->bss_sns_fi->state != GPRS_SNS_ST_CONFIGURED && nse->bss_sns_fi->state != GPRS_SNS_ST_LOCAL_PROCEDURE) return; if (alive == gss->alive) @@ -2005,12 +2203,71 @@ return 0; } -/* Update SNS weights - * \param[in] nsvc the NSVC which should be updated +/* Update SNS weights for a bind (local endpoint). */ +static void ns2_procedure_set_endpoint(struct ns2_sns_state *gss) { + struct osmo_sockaddr *local = NULL, *remote = NULL; + const struct osmo_sockaddr *sa; + struct gprs_ns_ie_ip4_elem *ip4; + struct gprs_ns_ie_ip6_elem *ip6; + + /* TODO: ensure this bind is already added! */ + OSMO_ASSERT(gss->current_procedure.procedure != SNS_NONE); + sa = gprs_ns2_ip_bind_sockaddr(gss->current_procedure.bind->bind); + if (!sa) + return; + + switch (sa->u.sa.sa_family) { + case AF_INET: + if (sa->u.sin.sin_addr.s_addr == 0) { + if (osmo_sockaddr_local_ip(local, &gss->initial->saddr)) + return; + ip4 = ip4_elem_by_saddr(gss->ip4_local, gss->num_ip4_local, local); + } else { + ip4 = ip4_elem_by_saddr(gss->ip4_local, gss->num_ip4_local, sa); + } + + /* TODO: check if this bind is about to be added */ + OSMO_ASSERT(ip4); + gss->current_procedure.ip4 = ip4; + break; + case AF_INET6: + // in6addr_any + if (memcmp(&sa->u.sin6.sin6_addr, &in6addr_any, sizeof(struct in6_addr))) { + if (osmo_sockaddr_local_ip(local, remote)) + return; + ip6 = ip6_elem_by_saddr(gss->ip6_local, gss->num_ip6_local, local); + } else { + ip6 = ip6_elem_by_saddr(gss->ip6_local, gss->num_ip6_local, sa); + } + OSMO_ASSERT(ip6); + gss->current_procedure.ip6 = ip6; + break; + default: + OSMO_ASSERT(false); + break; + } +} + +/* Update SNS weights for a bind (local endpoint). + * \param[in] bind the bind which has been updated */ void ns2_sns_update_weights(struct gprs_ns2_vc_bind *bind) { - /* TODO: implement weights after binds per sns implemented */ + struct ns2_sns_bind *sns_bind; + struct gprs_ns2_nse *nse; + struct ns2_sns_state *gss; + llist_for_each_entry(nse, &bind->nsi->nse, list) { + if (!nse->bss_sns_fi) + continue; + + gss = nse->bss_sns_fi->priv; + llist_for_each_entry(sns_bind, &gss->binds, list) { + if (sns_bind->bind == bind) { + osmo_fsm_inst_dispatch(gss->nse->bss_sns_fi, GPRS_SNS_EV_REQ_CHANGE_WEIGHT, sns_bind); + break; + } + } + } } @@ -2145,6 +2402,22 @@ .action = ns2_sns_st_configured, .onenter = ns2_sns_st_configured_onenter, }, + [GPRS_SNS_ST_LOCAL_PROCEDURE] = { + .in_event_mask = S(GPRS_SNS_EV_RX_ADD) | + S(GPRS_SNS_EV_RX_DELETE) | + S(GPRS_SNS_EV_RX_CHANGE_WEIGHT) | + S(GPRS_SNS_EV_RX_ACK) | + S(GPRS_SNS_EV_REQ_CHANGE_WEIGHT) | + S(GPRS_SNS_EV_REQ_NSVC_ALIVE), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_BSS_SIZE) | + S(GPRS_SNS_ST_CONFIGURED) | + S(GPRS_SNS_ST_LOCAL_PROCEDURE), + .name = "LOCAL_PROCEDURE", + /* shared with BSS side; once configured there's no difference */ + .action = ns2_sns_st_local_procedure, + .onenter = ns2_sns_st_local_procedure_onenter, + }, }; static int ns2_sns_fsm_sgsn_timer_cb(struct osmo_fsm_inst *fi) @@ -2166,11 +2439,20 @@ case 4: LOGPFSML(fi, LOGL_ERROR, "NSE %d: Config succeeded but no NS-VC came online.\n", nse->nsei); break; + case GPRS_SNS_ST_LOCAL_PROCEDURE: + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_PROCEDURES_RETRIES]) { + LOGPFSML(fi, LOGL_ERROR, "NSE %d: SNS Procedure retries failed. Selecting next IP-SNS endpoint.\n", nse->nsei); + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_REQ_SELECT_ENDPOINT, NULL); + } else { + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_LOCAL_PROCEDURE, nsi->timeout[NS_TOUT_TSNS_PROV], + fi->T); + } + break; } + return 0; } - /* allstate-action for SGSN role */ static void ns2_sns_st_all_action_sgsn(struct osmo_fsm_inst *fi, uint32_t event, void *data) { @@ -2238,6 +2520,7 @@ /* clear all state */ osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 0); gss->N = 0; + ns2_clear_procedures(gss); ns2_clear_ipv46_entries_local(gss); ns2_clear_ipv46_entries_remote(gss); llist_for_each_entry_safe(nsvc, nsvc2, &gss->nse->nsvc, list) { @@ -2272,6 +2555,7 @@ .allstate_event_mask = S(GPRS_SNS_EV_RX_SIZE) | S(GPRS_SNS_EV_REQ_NO_NSVC) | S(GPRS_SNS_EV_REQ_ADD_BIND) | + S(GPRS_SNS_EV_REQ_CHANGE_WEIGHT) | S(GPRS_SNS_EV_REQ_DELETE_BIND), .allstate_action = ns2_sns_st_all_action_sgsn, .cleanup = NULL, diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index b678db4..169b891 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -100,6 +100,7 @@ { 7, "tsns-prov" }, { 8, "tsns-size-retries" }, { 9, "tsns-config-retries" }, + {10, "tsns-procedures-retries" }, { 0, NULL } }; diff --git a/tests/gb/gprs_ns2_vty.vty b/tests/gb/gprs_ns2_vty.vty index 78c7e78..1c78069 100644 --- a/tests/gb/gprs_ns2_vty.vty +++ b/tests/gb/gprs_ns2_vty.vty @@ -17,7 +17,7 @@ OsmoNSdummy(config)# ns OsmoNSdummy(config-ns)# list ... - timer (tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-size-retries|tsns-config-retries) <0-65535> + timer (tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-size-retries|tsns-config-retries|tsns-procedures-retries) <0-65535> nse <0-65535> [ip-sns-role-sgsn] no nse <0-65535> bind (fr|udp) ID -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If034ac371a604bab5e58beadb784382c8b97cca3 Gerrit-Change-Number: 23758 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 Apr 14 18:39:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 18:39:31 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add functions for SNS add/del/change-weight messages In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23186 ) Change subject: gprs_ns2: add functions for SNS add/del/change-weight messages ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23186 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib9492e213e82c18c7dcce6ba7d64e897b4c74796 Gerrit-Change-Number: 23186 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 14 Apr 2021 18:39:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 18:41:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 14 Apr 2021 18:41:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement local update weight procedure In-Reply-To: References: Message-ID: lynxis lazus has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23758 ) Change subject: gprs_ns2: implement local update weight procedure ...................................................................... Abandoned dup of 23187 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If034ac371a604bab5e58beadb784382c8b97cca3 Gerrit-Change-Number: 23758 Gerrit-PatchSet: 1 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 Wed Apr 14 19:28:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 19:28:47 +0000 Subject: Change in libosmocore[master]: cosmetic: Fix trailing whitespace References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23759 ) Change subject: cosmetic: Fix trailing whitespace ...................................................................... cosmetic: Fix trailing whitespace Change-Id: Ib79b0e0c728a7f4de0b3884785c73ab2d0d44f4e --- M include/osmocom/gsm/gsm0808.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/59/23759/1 diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 20137da..b921eda 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -255,7 +255,7 @@ bool chosen_encr_alg_present; uint8_t chosen_encr_alg; - + bool chosen_channel_present; uint8_t chosen_channel; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib79b0e0c728a7f4de0b3884785c73ab2d0d44f4e Gerrit-Change-Number: 23759 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 Apr 14 19:28:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 19:28:48 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Las EUTRAN PLMN Id in Handover Required References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23760 ) Change subject: gsm: Support Sending Las EUTRAN PLMN Id in Handover Required ...................................................................... gsm: Support Sending Las EUTRAN PLMN Id in Handover Required Related: SYS#5337 Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b --- M TODO-RELEASE M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c 3 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/60/23760/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index bc157bd..53401ec 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,3 +8,4 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line libosmovty _LAST_OSMOVTY_NODE Raise _LAST_OSMOVTY_NODE by introducing some RESERVED*_NODE +libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size) diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index b921eda..5b7a89c 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -127,6 +127,9 @@ } current_channel_type_2; /* more items are defined in the spec and may be added later */ + bool last_eutran_plmn_id_present; + struct osmo_plmn_id last_eutran_plmn_id; + bool more_items; /*< always set this to false */ }; diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 6070ef3..01c3cee 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -833,6 +833,11 @@ msgb_tlv_put(msg, GSM0808_FE_IE_CURRENT_CHANNEL_TYPE_2, 2, val); } + if (i->last_eutran_plmn_id_present) { + msgb_put_u8(msg, GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID); + osmo_plmn_to_bcd(msgb_put(msg, 3), &i->last_eutran_plmn_id); + } + *tlv_len = (uint8_t) (msg->tail - old_tail); return *tlv_len + 2; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 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 Apr 14 19:29:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 19:29:06 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/23760 ) Change subject: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required ...................................................................... gsm: Support Sending Last EUTRAN PLMN Id in Handover Required Related: SYS#5337 Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b --- M TODO-RELEASE M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c 3 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/60/23760/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 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 Apr 14 19:38:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 14 Apr 2021 19:38:01 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23734/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/23734/2//COMMIT_MSG at 7 PS2, Line 7: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID > You know that neighing is the sound that horses occasionally do? ;-) LOL I didn't! -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 14 Apr 2021 19:38:01 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 14 19:41:36 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 14 Apr 2021 19:41:36 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line 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/libosmo-abis/+/21118 to look at the new patch set (#8). Change subject: Configure E1 pcap file per line ...................................................................... Configure E1 pcap file per line In order to allow configuration of pcap files per e1_line the vty command is now (for example line 0): e1_line 0 pcap /tmp/e1cap.pcap in place of: pcap /tmp/e1cap.pcap Also ensures that a configured pcap appears in 'show running-config' and is written to the config file on issuing 'write' Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf --- M include/osmocom/abis/e1_input.h M src/e1_input.c M src/e1_input_vty.c 3 files changed, 105 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/18/21118/8 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 8 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith 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 Apr 14 19:41:47 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 14 Apr 2021 19:41:47 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/21118 ) Change subject: Configure E1 pcap file per line ...................................................................... Patch Set 8: (7 comments) Thanks. https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/include/osmocom/abis/e1_input.h File include/osmocom/abis/e1_input.h: https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/include/osmocom/abis/e1_input.h at 324 PS7, Line 324: e1_set_pcap_fd > Should we deprecate the old symbol now? What does it imply to deprecate the old symbol here? To add a deprecated compliler warning? BTW, AFAIK, the only place this is called is in openbsc - osmo-nitb/bsc_hack.c https://gerrit.osmocom.org/c/libosmo-abis/+/21118/3/include/osmocom/abis/e1_input.h File include/osmocom/abis/e1_input.h: https://gerrit.osmocom.org/c/libosmo-abis/+/21118/3/include/osmocom/abis/e1_input.h at 319 PS3, Line 319: int e1_set_pcap_fd(int fd, int e1_nr); > Yes a new function would be great to avoid breaking build in osmo-nitb. [?] Done https://gerrit.osmocom.org/c/libosmo-abis/+/21118/3/src/e1_input.c File src/e1_input.c: https://gerrit.osmocom.org/c/libosmo-abis/+/21118/3/src/e1_input.c at 186 PS3, Line 186: struct msgb *msg, int pcap_fd) { > Ah sorry I thought it's not because I didn't see any line added with it. Ack https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input.c File src/e1_input.c: https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input.c at 144 PS7, Line 144: pcap_hdr > It can also be 'static' I think, so it will definitely end up in RODATA. Done https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input_vty.c File src/e1_input_vty.c: https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input_vty.c at 273 PS7, Line 273: return CMD_WARNING; > I think you need to close(fd) before you return from here. Done https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input_vty.c at 275 PS7, Line 275: if (line->pcap_file) { > osmo_talloc_replace_string() will free() it automatically, remove this block. Done https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/src/e1_input_vty.c at 295 PS7, Line 295: void > This pointer cast is not needed because it's not 'const'. Done -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 8 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 14 Apr 2021 19:41:47 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: fixeria 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 Apr 14 19:46:00 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 14 Apr 2021 19:46:00 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/21118 ) Change subject: Configure E1 pcap file per line ...................................................................... Patch Set 8: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/include/osmocom/abis/e1_input.h File include/osmocom/abis/e1_input.h: https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/include/osmocom/abis/e1_input.h at 324 PS7, Line 324: e1_set_pcap_fd > What does it imply to deprecate the old symbol here? To add a deprecated compliler warning? [?] Indeed, I would add OSMO_DEPRECATED(...) like we usually do. Regardless where it's already used, it's still a good idea to do so. Imagine somebody would want to use this function in some other project some day. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 8 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 14 Apr 2021 19:46:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: fixeria 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 Apr 14 21:22:27 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 14 Apr 2021 21:22:27 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line 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/libosmo-abis/+/21118 to look at the new patch set (#9). Change subject: Configure E1 pcap file per line ...................................................................... Configure E1 pcap file per line In order to allow configuration of pcap files per e1_line the vty command is now (for example line 0): e1_line 0 pcap /tmp/e1cap.pcap in place of: pcap /tmp/e1cap.pcap Also ensures that a configured pcap appears in 'show running-config' and is written to the config file on issuing 'write' This commit deprecates e1_set_pcap_fd() Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf --- M include/osmocom/abis/e1_input.h M src/e1_input.c M src/e1_input_vty.c 3 files changed, 106 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/18/21118/9 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 9 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith 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 Apr 14 21:23:43 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 14 Apr 2021 21:23:43 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/21118 ) Change subject: Configure E1 pcap file per line ...................................................................... Patch Set 9: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/include/osmocom/abis/e1_input.h File include/osmocom/abis/e1_input.h: https://gerrit.osmocom.org/c/libosmo-abis/+/21118/7/include/osmocom/abis/e1_input.h at 324 PS7, Line 324: e1_set_pcap_fd > Indeed, I would add OSMO_DEPRECATED(...) like we usually do. [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 9 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 14 Apr 2021 21:23:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: fixeria Comment-In-Reply-To: keith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 08:11:11 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 15 Apr 2021 08:11:11 +0000 Subject: Change in libosmocore[master]: cosmetic: Fix trailing whitespace In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23759 ) Change subject: cosmetic: Fix trailing whitespace ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib79b0e0c728a7f4de0b3884785c73ab2d0d44f4e Gerrit-Change-Number: 23759 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 15 Apr 2021 08:11: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 Apr 15 08:17:06 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 15 Apr 2021 08:17:06 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23760 ) Change subject: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23760/2/include/osmocom/gsm/gsm0808.h File include/osmocom/gsm/gsm0808.h: https://gerrit.osmocom.org/c/libosmocore/+/23760/2/include/osmocom/gsm/gsm0808.h at 133 PS2, Line 133: bool more_items; /*< always set this to false */ https://gerrit.osmocom.org/c/libosmocore/+/9672 > To existing structs gsm0808_old_bss_to_new_bss_info and > gsm0808_handover_required, add a final 'more_items' flag that makes future > extensions API and ABI compatible. So shouldn't the extensions be after more_items, and have it set to true? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 15 Apr 2021 08:17:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 10:37:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 10:37:50 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23760 ) Change subject: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23760/2/include/osmocom/gsm/gsm0808.h File include/osmocom/gsm/gsm0808.h: https://gerrit.osmocom.org/c/libosmocore/+/23760/2/include/osmocom/gsm/gsm0808.h at 133 PS2, Line 133: bool more_items; /*< always set this to false */ > https://gerrit.osmocom.org/c/libosmocore/+/9672 [?] That's indeed a good question, and tbh I don't fully understand why a lot of structs in this file have that "more_items" or how it is supposed to work from ABI point of view. I would welcome if whoever wrote that code initially can shed some light on this. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 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-CC: osmith Gerrit-Comment-Date: Thu, 15 Apr 2021 10:37:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 10:39:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 10:39:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: TC_sns_bss_change_weight_timeout rework TC to use g_handle_rx_alive In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23756 ) Change subject: ns: TC_sns_bss_change_weight_timeout rework TC to use g_handle_rx_alive ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23756 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I45f4392b556912bf60859f354a5687a44e6beeb1 Gerrit-Change-Number: 23756 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 15 Apr 2021 10:39: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 Apr 15 10:39:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 10:39:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONF... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23757 ) Change subject: gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONFIGURED ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23757 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I125e7e5a08ea6aff6e0308a18b5c0a6d0392ad32 Gerrit-Change-Number: 23757 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 15 Apr 2021 10:39: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 Apr 15 12:13:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 12:13:09 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Fix trailing whitespace References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 ) Change subject: BSSAP_Types.ttcn: Fix trailing whitespace ...................................................................... BSSAP_Types.ttcn: Fix trailing whitespace Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 --- M src/BSSAP_Types.ttcn 1 file changed, 397 insertions(+), 397 deletions(-) git pull ssh://gerrit.osmocom.org:29418/titan.ProtocolModules.BSSMAP refs/changes/62/23762/1 diff --git a/src/BSSAP_Types.ttcn b/src/BSSAP_Types.ttcn index fa3a9c5..fa553ef 100644 --- a/src/BSSAP_Types.ttcn +++ b/src/BSSAP_Types.ttcn @@ -19,8 +19,8 @@ // This module contains the type definitions and encoding attributes for // Base Station System. The signalling protocol reference model is based // on 48.008 V11.2.0 Figure 1. -// -// ------------------------------ +// +// ------------------------------ // | BSSAP | // | | // | ------------------------- | BSSMAP layer is defined in 48.008 v11.2.0 @@ -31,7 +31,7 @@ // | | Distribution Function | | // |=============================| // | SCCP | -// ------------------------------ +// ------------------------------ import from General_Types all; @@ -50,11 +50,11 @@ // BSSMAP information element definition /////////////////////////////////////////// -// Circuit Identity Code - 48.008 subclause 3.2.2.2 +// Circuit Identity Code - 48.008 subclause 3.2.2.2 type record BSSMAP_IE_CircuitIdentityCode { OCT1 elementIdentifier, // '01'O - OCT1 cicHigh, // CIC = 11 bits of used information + OCT1 cicHigh, // CIC = 11 bits of used information OCT1 cicLow // (last 5 bits not used) } with { variant "PRESENCE (elementIdentifier = '01'O)" } @@ -68,43 +68,43 @@ // Resource Available - 48.008 subclause 3.2.2.4 type record BSSMAP_IE_ResourceAvailable -{ +{ OCT1 elementIdentifier, // '03'O OCT4 band1, OCT4 band2, OCT4 band3, OCT4 band4, - OCT4 band5 + OCT4 band5 } with { variant "PRESENCE (elementIdentifier = '03'O)" } -// Cause - 48.008 subclause 3.2.2.5 +// Cause - 48.008 subclause 3.2.2.5 type record BSSMAP_IE_Cause { OCT1 elementIdentifier, // '04'O - INT1 lengthIndicator, + INT1 lengthIndicator, BIT7 causeValue, BIT1 extensionCauseValue, OCT1 spare1 optional } with { variant "PRESENCE (elementIdentifier = '04'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (causeValue,extensionCauseValue,spare1)"; variant (spare1) "PRESENCE(extensionCauseValue = '1'B)"} -// IMSI - 48.008 subclause 3.2.2.6 +// IMSI - 48.008 subclause 3.2.2.6 type record BSSMAP_IE_IMSI { OCT1 elementIdentifier, // '08'O - INT1 lengthIndicator, + INT1 lengthIndicator, BIT3 typeOfIdentity, - BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits + BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits HEX5_16 digits // if nr of digits is even, the last digit: '1111'B } with { variant "PRESENCE (elementIdentifier = '08'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)"; variant "PADDING(yes),PADDING_PATTERN('1'B)"} -// TMSI - 48.008 subclause 3.2.2.7 +// TMSI - 48.008 subclause 3.2.2.7 type record BSSMAP_IE_TMSI { OCT1 elementIdentifier, // '09'O @@ -114,7 +114,7 @@ variant (lengthIndicator) "LENGTHTO (tmsiOctets)"} -// Number Of MSs - 48.008 subclause 3.2.2.8 +// Number Of MSs - 48.008 subclause 3.2.2.8 type record BSSMAP_IE_NumberOfMSs { OCT1 elementIdentifier, // '0E'O @@ -122,7 +122,7 @@ } -// Layer 3 Header Info - 48.008 subclause 3.2.2.9 +// Layer 3 Header Info - 48.008 subclause 3.2.2.9 type record BSSMAP_IE_Layer3HeaderInfo { OCT1 elementIdentifier, //'07'O @@ -135,45 +135,45 @@ variant (lengthIndicator) "LENGTHTO (pd, spare1_4, ti, spare2_4)" } -// Encryption Information - 48.008 subclause 3.2.2.10 +// Encryption Information - 48.008 subclause 3.2.2.10 type record BSSMAP_IE_EncryptionInformation { OCT1 elementIdentifier, // '0A'O INT1 lengthIndicator, // 1..9 - OCT1 permittedAlgorithms,// '1'B encryption no + OCT1 permittedAlgorithms,// '1'B encryption no // '0' B GSM A5/1 not useable - // '1' B GSM A5/useable 1 + // '1' B GSM A5/useable 1 // '0' B GSM A5/2 not useable - // '1' B GSM A5/useable 2 + // '1' B GSM A5/useable 2 // '0' B GSM A5/3 not useable - // '1' B GSM A5/useable 3 + // '1' B GSM A5/useable 3 // '0' B GSM A5/4 not useable - // '1' B GSM A5/useable 4 - // '0' B GSM A5/5 useable not - // '1' B GSM A5/useable 5 - // '0' B GSM A5/6 useable not - // '1' B GSM A5/useable 6 - // '0' B GSM A5/7 useable not - // '1' B GSM A5/useable 7 + // '1' B GSM A5/useable 4 + // '0' B GSM A5/5 useable not + // '1' B GSM A5/useable 5 + // '0' B GSM A5/6 useable not + // '1' B GSM A5/useable 6 + // '0' B GSM A5/7 useable not + // '1' B GSM A5/useable 7 OCT8 key optional } with { variant "PRESENCE (elementIdentifier = '0A'O)" variant (lengthIndicator) "LENGTHTO (permittedAlgorithms, key)" } -// Channel Type - 48.008 subclause 3.2.2.11 +// Channel Type - 48.008 subclause 3.2.2.11 type record BSSMAP_IE_ChannelType { OCT1 elementIdentifier, //'0B'O INT1 lengthIndicator, // 3..8 BIT4 speechOrDataIndicator, //'0001'B Speech,'0010'B Data '0011'B Sign BIT4 spare1_4, // '0000'B - OCT1 channelRateAndType, // + OCT1 channelRateAndType, // octetstring speechId_DataIndicator } with {variant (lengthIndicator) "LENGTHTO (speechOrDataIndicator, spare1_4, channelRateAndType, speechId_DataIndicator)" } -// Periodicity - 48.008 subclause 3.2.2.12 +// Periodicity - 48.008 subclause 3.2.2.12 type record BSSMAP_IE_Periodicity { OCT1 elementIdentifier, //'0C'O @@ -181,7 +181,7 @@ } -// Extended Resource Indicator - 48.008 subclause 3.2.2.13 +// Extended Resource Indicator - 48.008 subclause 3.2.2.13 type record BSSMAP_IE_ExtendedResourceInd { OCT1 elementIdentifier, //'0D'O @@ -191,7 +191,7 @@ } with { variant "PRESENCE (elementIdentifier = '0D'O)" } -// Total Resource Accessible - 48.008 subclause 3.2.2.14 +// Total Resource Accessible - 48.008 subclause 3.2.2.14 type record BSSMAP_IE_TotalResourceAccessible { OCT1 elementIdentifier, //'22'O @@ -221,7 +221,7 @@ type record BSSMAP_IE_LSAIdentifierList { OCT1 elementIdentifier, //'3C'O - INT1 lengthIndicator, + INT1 lengthIndicator, BIT1 EP, BIT7 spare, BSSMAP_FIELD_LSAIdList lSAIDlist @@ -230,7 +230,7 @@ type record of BSSMAP_FIELD_LSAId BSSMAP_FIELD_LSAIdList -// Cell Identifier - 48.008 subclause 3.2.2.17 +// Cell Identifier - 48.008 subclause 3.2.2.17 type record BSSMAP_IE_CellIdentifier { OCT1 elementIdentifier, // '05'O @@ -242,19 +242,19 @@ variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentification)"; variant (cellIdentification) "CROSSTAG( - cI_CGI, cellIdentifierDiscriminator='0000'B; - cI_LAC_CI, cellIdentifierDiscriminator='0001'B; - cI_CI, cellIdentifierDiscriminator='0010'B; - cI_noCell, cellIdentifierDiscriminator='0011'B; + cI_CGI, cellIdentifierDiscriminator='0000'B; + cI_LAC_CI, cellIdentifierDiscriminator='0001'B; + cI_CI, cellIdentifierDiscriminator='0010'B; + cI_noCell, cellIdentifierDiscriminator='0011'B; cI_PLMN_LAC_RNC, cellIdentifierDiscriminator='1000'B; - cI_RNC, cellIdentifierDiscriminator='1001'B; + cI_RNC, cellIdentifierDiscriminator='1001'B; cI_LAC_RNC, cellIdentifierDiscriminator='1010'B; cI_SAI, cellIdentifierDiscriminator='1011'B; - ci_LAC_RNC_CI, cellIdentifierDiscriminator='1100'B; + ci_LAC_RNC_CI, cellIdentifierDiscriminator='1100'B; )"} type union BSSMAP_FIELD_CellIdentification -{ +{ BSSMAP_FIELD_CellIdentification_CGI cI_CGI, // discriminator = '0000'B BSSMAP_FIELD_CellIdentification_LAC_CI cI_LAC_CI, // discriminator = '0001'B OCT2 cI_CI, // discriminator = '0010'B @@ -268,60 +268,60 @@ type record BSSMAP_FIELD_CellIdentification_CGI { - OCT3 mcc_mnc, + OCT3 mcc_mnc, OCT2 lac, - OCT2 ci + OCT2 ci } type record BSSMAP_FIELD_CellIdentification_LAC_CI { OCT2 lac, - OCT2 ci + OCT2 ci } type record BSSMAP_FIELD_CellIdentification_LAI { - OCT3 mcc_mnc, - OCT2 lac + OCT3 mcc_mnc, + OCT2 lac } type record BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC { - OCT3 mcc_mnc, + OCT3 mcc_mnc, OCT2 lac, OCT2 rncId -} +} type record BSSMAP_FIELD_CellIdentification_LAC_RNC { OCT2 lac, - OCT2 rncId + OCT2 rncId } type record BSSMAP_FIELD_CellIdentification_SAI { - OCT3 mcc_mnc, + OCT3 mcc_mnc, OCT2 lac, - OCT2 sac + OCT2 sac } type record BSSMAP_FIELD_LAC_RNC_CI { - OCT3 mcc_mnc, + OCT3 mcc_mnc, OCT2 lac, - OCT2 rncId, - OCT2 ci + OCT2 rncId, + OCT2 ci } -// Cell Identifier List - 48.008 subclause 3.2.2.27 +// Cell Identifier List - 48.008 subclause 3.2.2.27 type record BSSMAP_IE_CellIdentifierList { OCT1 elementIdentifier, // '1A'O INT1 lengthIndicator, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare1_4, // '0000'B - BSSMAP_FIELD_CellIdentificationList cellIdentificationList + BSSMAP_FIELD_CellIdentificationList cellIdentificationList } with { variant "PRESENCE (elementIdentifier = '1A'O)" variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationList)"; @@ -337,7 +337,7 @@ cIl_RNC, cellIdentifierDiscriminator='1001'B; cIl_LAC_RNC, cellIdentifierDiscriminator='1010'B;)"} -type union BSSMAP_FIELD_CellIdentificationList { +type union BSSMAP_FIELD_CellIdentificationList { BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. = '0000'B BSSMAP_FIELD_CellIdentificationList_LAC_CI cIl_LAC_CI,// discr. = '0001'B RecordOfOCT2 cIl_CI, // discr. = '0010'B @@ -354,7 +354,7 @@ type record of OCT2 RecordOfOCT2 -type record of BSSMAP_FIELD_CellIdentification_CGI +type record of BSSMAP_FIELD_CellIdentification_CGI BSSMAP_FIELD_CellIdentificationList_CGI type record of BSSMAP_FIELD_CellIdentification_LAC_CI @@ -366,10 +366,10 @@ type record of BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC BSSMAP_FIELD_CellIdentificationList_PLMN_LAC_RNC -type record of BSSMAP_FIELD_CellIdentification_LAC_RNC +type record of BSSMAP_FIELD_CellIdentification_LAC_RNC BSSMAP_FIELD_CellIdentificationList_LAC_RNC -type record of BSSMAP_FIELD_CellIdentification_SAI +type record of BSSMAP_FIELD_CellIdentification_SAI BSSMAP_FIELD_CellIdentificationList_SAI // 3.2.2.27a Cell Identifier List Segment @@ -377,21 +377,21 @@ { OCT1 elementIdentifier, // '6D'O INT1 lengthIndicator, - BIT4 sequenceNumber, + BIT4 sequenceNumber, BIT4 sequenceLength, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare, - BSSMAP_FIELD_CellIdentificationListSegment cellIdentificationListSegment + BSSMAP_FIELD_CellIdentificationListSegment cellIdentificationListSegment } with { variant "PRESENCE (elementIdentifier = '6D'O)" variant (lengthIndicator) "LENGTHTO(sequenceNumber, sequenceLength, cellIdentifierDiscriminator, spare, cellIdentificationListSegment)"; variant (cellIdentificationListSegment) "CROSSTAG( - cIl_CGI, cellIdentifierDiscriminator='0000'B; - cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; - cIl_CI, cellIdentifierDiscriminator='0010'B; - cIl_noCell, cellIdentifierDiscriminator='0011'B; - cIl_LAI, cellIdentifierDiscriminator='0100'B; - cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_CGI, cellIdentifierDiscriminator='0000'B; + cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_noCell, cellIdentifierDiscriminator='0011'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; cIl_allInBSS, cellIdentifierDiscriminator='0110'B; cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} @@ -401,23 +401,23 @@ { BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. ='0000'B; BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment cIl_LAC_CI, // discr. ='0001'B - BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment cIl_CI, // discr. ='0010'B; - OCT0 cIl_noCell, // discr. ='0011'B; + BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment cIl_CI, // discr. ='0010'B; + OCT0 cIl_noCell, // discr. ='0011'B; BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. ='0100'B; RecordOfOCT2 cIl_LAC, // discr. ='0101'B; OCT0 cIl_allInBSS, // discr. ='0101'B; - RecordOfOCT3 cIl_MCC_MNC // discr. ='0111'B; + RecordOfOCT3 cIl_MCC_MNC // discr. ='0111'B; } type record BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment { - OCT3 mcc_mnc, + OCT3 mcc_mnc, BSSMAP_FIELD_CellIdentificationList_LAC_CI lac_ci } type record BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment { - OCT3 mcc_mnc, + OCT3 mcc_mnc, OCT2 lac, RecordOfOCT2 ci } @@ -431,95 +431,95 @@ { OCT1 elementIdentifier, // '71'O INT1 lengthIndicator, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare1_4, // '0000'B - BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListEstCells + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListEstCells } with { variant "PRESENCE (elementIdentifier = '71'O)" variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListEstCells)"; variant (cellIdentificationListEstCells) "CROSSTAG( cIl_CGI, cellIdentifierDiscriminator='0000'B; cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; - cIl_CI, cellIdentifierDiscriminator='0010'B; - cIl_LAI, cellIdentifierDiscriminator='0100'B; - cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; cIl_allInBSS, cellIdentifierDiscriminator='0110'B; - cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} - - + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + + type union BSSMAP_FIELD_CellIdentificationListEstablishment -{ +{ BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. = '0000'B BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment cIl_LAC_CI, // discr. = '0001'B; BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment cIl_CI, // discr. = '0010'B; - BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. = '0100'B; - RecordOfOCT2 cIl_LAC, // discr. = '0101'B; + BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. = '0100'B; + RecordOfOCT2 cIl_LAC, // discr. = '0101'B; OCT0 cIl_allInBSS, // discr. = '0110'B; RecordOfOCT3 cIl_MCC_MNC // discr. = '0111'B; } - -// 3.2.2.27c + +// 3.2.2.27c type record BSSMAP_IE_CellIdentifierListSegmentCellsToEst { OCT1 elementIdentifier, // '73'O INT1 lengthIndicator, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare1_4, // '0000'B - BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListCellsToEst + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListCellsToEst } with { variant "PRESENCE (elementIdentifier = '72'O)" variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListCellsToEst)"; variant (cellIdentificationListCellsToEst) "CROSSTAG( cIl_CGI, cellIdentifierDiscriminator='0000'B; cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; - cIl_CI, cellIdentifierDiscriminator='0010'B; - cIl_LAI, cellIdentifierDiscriminator='0100'B; - cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; cIl_allInBSS, cellIdentifierDiscriminator='0110'B; - cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} - -// 3.2.2.27e + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + +// 3.2.2.27e type record BSSMAP_IE_CellIdentifierListSegmentReleasedCellsNoUserPresent { OCT1 elementIdentifier, // '74'O INT1 lengthIndicator, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare1_4, // '0000'B - BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListReleasedCellsNoUserPresent + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListReleasedCellsNoUserPresent } with { variant "PRESENCE (elementIdentifier = '74'O)" variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListReleasedCellsNoUserPresent)"; variant (cellIdentificationListReleasedCellsNoUserPresent) "CROSSTAG( cIl_CGI, cellIdentifierDiscriminator='0000'B; cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; - cIl_CI, cellIdentifierDiscriminator='0010'B; - cIl_LAI, cellIdentifierDiscriminator='0100'B; - cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; cIl_allInBSS, cellIdentifierDiscriminator='0110'B; - cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} - - // 3.2.2.27f + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + + // 3.2.2.27f type record BSSMAP_IE_CellIdentifierListSegmentNotEstablishedCellsNoEstPossible { OCT1 elementIdentifier, // '73'O INT1 lengthIndicator, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare1_4, // '0000'B - BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListNotEstablishedCellsNoEstPossible + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListNotEstablishedCellsNoEstPossible } with { variant "PRESENCE (elementIdentifier = '73'O)" variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListNotEstablishedCellsNoEstPossible)"; variant (cellIdentificationListNotEstablishedCellsNoEstPossible) "CROSSTAG( cIl_CGI, cellIdentifierDiscriminator='0000'B; cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; - cIl_CI, cellIdentifierDiscriminator='0010'B; - cIl_LAI, cellIdentifierDiscriminator='0100'B; - cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; cIl_allInBSS, cellIdentifierDiscriminator='0110'B; - cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} - - -// Priority - 48.008 subclause 3.2.2.18 + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + + +// Priority - 48.008 subclause 3.2.2.18 type record BSSMAP_IE_Priority { OCT1 elementIdentifier, //'06'O @@ -527,18 +527,18 @@ BIT1 pvi, // '0'B connection canNOT be preempted by other allocation // '1'B connection might be preempted by other allocation BIT1 qa, // '0'B queuing not allowed - '1'B queuing allowed - BIT4 priorityLevel, // '0000'B spare - // '0001'B priority 1 level (highest) - // '1110'B priority 14 level (lowest) - // '1111'B priority used not - BIT1 pci, // '0'B allocation canNOT preempt connection other - // '1'B allocation might preempt other connection + BIT4 priorityLevel, // '0000'B spare + // '0001'B priority 1 level (highest) + // '1110'B priority 14 level (lowest) + // '1111'B priority used not + BIT1 pci, // '0'B allocation canNOT preempt connection other + // '1'B allocation might preempt other connection BIT1 spare1_1 // '0'B } with { variant "PRESENCE (elementIdentifier = '06'O)" variant(lengthIndicator) "LENGTHTO(pvi,qa,priorityLevel,pci,spare1_1)" } -// Classmark Information Type 2 - 48.008 subclause 3.2.2.19 +// Classmark Information Type 2 - 48.008 subclause 3.2.2.19 type record BSSMAP_IE_ClassmarkInformationType2 { OCT1 elementIdentifier, //'12'O @@ -546,31 +546,31 @@ BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS) // '001'B class2 (for GSM+DCS+PCS) // '010'B class3 (for GSM+DCS+PCS) - // '011'class4 B (only for GSM) - // '100'class5 B (only for GSM) + // '011'class4 B (only for GSM) + // '100'class5 B (only for GSM) BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B) BIT1 esind,//controlled early classmark sending implemented ('1'B) or not ('0'B) BIT2 revisionLevel, // '00'B reserved for phase1 (GSM+DCS) - // '00'B reserved (PCS) + // '00'B reserved (PCS) // '01'B used by phase2 MSs (GSM+DCS) - // '01'B used by PCS1900 MSs phase1 (PCS) + // '01'B used by PCS1900 MSs phase1 (PCS) BIT1 spare1_1, // '0'B BIT1 fc, // MS' support of E/R_GSM ('1'B) or not ('0'B) BIT1 vgcs, // VGCS capability or notification wanted ('1'B) or not ('0'B) BIT1 vbs, // VBS capability or notification wanted ('1'B) or not ('0'B) - BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B) + BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B) BIT2 ss_ScreenIndicator, // '00'B default value of phase1 (GSM+DCS) - // '00'reserved B (PCS) - // '01'B capability of notation ellipsis + // '00'reserved B (PCS) + // '01'B capability of notation ellipsis // '10'B for future use - // '11'B for use future + // '11'B for use future BIT1 ps_Capability, // ignored, if received BIT1 spare2_1, // '0'B BSSMAP_FIELD_ClassmarkInformationType2_oct5 classmarkInformationType2_oct5 } with { variant "PRESENCE (elementIdentifier = '12'O)"; variant (lengthIndicator) "LENGTHTO (rf_PowerCapability, a5_1, esind, revisionLevel, spare1_1, fc, vgcs, vbs, sm_Capability, - ss_ScreenIndicator, ps_Capability, spare2_1, + ss_ScreenIndicator, ps_Capability, spare2_1, classmarkInformationType2_oct5)" } // Helper type for BSSMAP Applib @@ -579,24 +579,24 @@ BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS) // '001'B class2 (for GSM+DCS+PCS) // '010'B class3 (for GSM+DCS+PCS) - // '011'class4 B (only for GSM) - // '100'class5 B (only for GSM) + // '011'class4 B (only for GSM) + // '100'class5 B (only for GSM) BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B) BIT1 esind,//controlled early classmark sending implemented ('1'B) or not ('0'B) BIT2 revisionLevel, // '00'B reserved for phase1 (GSM+DCS) - // '00'B reserved (PCS) + // '00'B reserved (PCS) // '01'B used by phase2 MSs (GSM+DCS) - // '01'B used by PCS1900 MSs phase1 (PCS) + // '01'B used by PCS1900 MSs phase1 (PCS) BIT1 spare1_1, // '0'B BIT1 fc, // MS' support of E/R_GSM ('1'B) or not ('0'B) BIT1 vgcs, // VGCS capability or notification wanted ('1'B) or not ('0'B) BIT1 vbs, // VBS capability or notification wanted ('1'B) or not ('0'B) - BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B) + BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B) BIT2 ss_ScreenIndicator, // '00'B default value of phase1 (GSM+DCS) - // '00'reserved B (PCS) - // '01'B capability of notation ellipsis + // '00'reserved B (PCS) + // '01'B capability of notation ellipsis // '10'B for future use - // '11'B for use future + // '11'B for use future BIT1 ps_Capability, // ignored, if received BIT1 spare2_1, // '0'B BSSMAP_FIELD_ClassmarkInformationType2_oct5 classmarkInformationType2_oct5 @@ -604,8 +604,8 @@ type record BSSMAP_FIELD_ClassmarkInformationType2_oct5 { - BIT1 a5_2,//encryption algorithm A5/2 available ('0'B) or not ('1'B) - BIT1 a5_3,//encryption algorithm A5/3 available ('0'B) or not ('1'B) + BIT1 a5_2,//encryption algorithm A5/2 available ('0'B) or not ('1'B) + BIT1 a5_3,//encryption algorithm A5/3 available ('0'B) or not ('1'B) BIT1 cmsp,//"Network initiated MO CM connectionrequest" not supported ('0'B) //or supported for at least one CM protocol ('1'B) BIT1 solsa,// The ME support SoLSA ('1'B) or not ('0'B) @@ -638,7 +638,7 @@ } with { variant "PRESENCE (elementIdentifier = '14'O)" } -// RR Cause - 48.008 subclause 3.2.2.22 +// RR Cause - 48.008 subclause 3.2.2.22 type record BSSMAP_IE_RR_Cause { OCT1 elementIdentifier, // '15'O @@ -646,26 +646,26 @@ } with { variant "PRESENCE (elementIdentifier = '15'O)" } -// LSA Information - 48.008 subclause 3.2.2.23 +// LSA Information - 48.008 subclause 3.2.2.23 type record BSSMAP_IE_LSAInformation { OCT1 elementIdentifier, //'3D'O INT1 lengthIndicator, BIT1 lSAonly, - BIT7 spare, - BSSMAP_FIELD_LSAIdAttrib_List lSAIdAttrib_List + BIT7 spare, + BSSMAP_FIELD_LSAIdAttrib_List lSAIdAttrib_List } with { variant "PRESENCE (elementIdentifier = '3D'O)" variant (lengthIndicator) "LENGTHTO (lSAonly,spare,lSAIdAttrib_List)" } - -type record BSSMAP_FIELD_LSAIdAttrib + +type record BSSMAP_FIELD_LSAIdAttrib { BIT4 priority, BIT1 pref, BIT1 act, BIT2 spare -} - -type record of BSSMAP_FIELD_LSAIdAttrib BSSMAP_FIELD_LSAIdAttrib_List +} + +type record of BSSMAP_FIELD_LSAIdAttrib BSSMAP_FIELD_LSAIdAttrib_List // Layer 3 Information - 48.008 subclause 3.2.2.24 @@ -681,27 +681,27 @@ type record BSSMAP_IE_DLCI { OCT1 elementIdentifier, // '18'O - BIT3 sapiValue, // '011'O Short Message Signalling Service + BIT3 sapiValue, // '011'O Short Message Signalling Service BIT3 spare, BIT1 c1, - BIT1 c2 + BIT1 c2 } -// Downlink DTX Flag - 48.008 subclause 3.2.2.26 +// Downlink DTX Flag - 48.008 subclause 3.2.2.26 type record BSSMAP_IE_DownLinkDTXFlag { OCT1 elementIdentifier, // '19'O - BIT1 dtx, // DTX is disabled ('0'B) or enabled ('1'B) to downlink + BIT1 dtx, // DTX is disabled ('0'B) or enabled ('1'B) to downlink BIT7 spare1_7 // '0000000'B } with { variant "PRESENCE (elementIdentifier = '19'O)" } -// Cell Identifier List - 48.008 subclause 3.2.2.27 +// Cell Identifier List - 48.008 subclause 3.2.2.27 // See above under Cell Identifier -// Response Request - 48.008 subclause 3.2.2.28 +// Response Request - 48.008 subclause 3.2.2.28 type record BSSMAP_IE_ResponseRequest { OCT1 elementIdentifier // '1B'O @@ -717,33 +717,33 @@ } -// Classmark Information Type 1 - 48.008 subclause 3.2.2.30 +// Classmark Information Type 1 - 48.008 subclause 3.2.2.30 type record BSSMAP_IE_ClassmarkInformationType1 { OCT1 elementIdentifier, // '1D'O BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS) // '001'B class2 (for GSM+DCS+PCS) // '010'B class3 (for GSM+DCS+PCS) - // '011'class4 B (only for GSM) - // '100'class5 B (only for GSM) + // '011'class4 B (only for GSM) + // '100'class5 B (only for GSM) BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B) BIT1 esind, //controlled early classmark sending implemented (1) or not (0) BIT2 revisionLevel, BIT1 spare1_1 // '0'B } with { variant "PRESENCE(elementIdentifier = '1D'O)" } -// Circuit Identity Code List - 48.008 subclause 3.2.2.31 +// Circuit Identity Code List - 48.008 subclause 3.2.2.31 type record BSSMAP_IE_CircuitIdentityCodeList { OCT1 elementIdentifier, // '1E'O INT1 lengthIndicator, OCT1 range, // A number in binary representation ranging from 2 to 255 - OCTN status // status data of lengthIndicator 1_32 + OCTN status // status data of lengthIndicator 1_32 } with { variant "PRESENCE(elementIdentifier = '1E'O)" variant (lengthIndicator) "LENGTHTO (range, status)" } ; -// Diagnostics - 48.008 subclause 3.2.2.32 +// Diagnostics - 48.008 subclause 3.2.2.32 type record BSSMAP_IE_Diagnostics { OCT1 elementIdentifier, // '1F'O @@ -751,26 +751,26 @@ OCT1 errorLocation, // First octet of Error pointer BIT4 bitPointer, BIT4 spare, - OCTN messageReceived // The errorneous message -} with {variant (lengthIndicator) + OCTN messageReceived // The errorneous message +} with {variant (lengthIndicator) "LENGTHTO (errorLocation, bitPointer, spare, messageReceived)" } ; -// Chosen Channel - 48.008 subclause 3.2.2.33 +// Chosen Channel - 48.008 subclause 3.2.2.33 type record BSSMAP_IE_ChosenChannel { OCT1 elementIdentifier, // '21'O - BIT4 channel, - BIT4 channelMode + BIT4 channel, + BIT4 channelMode } with { variant "PRESENCE (elementIdentifier = '21'O)" } -// Cipher Response Mode - 48.008 subclause 3.2.2.34 +// Cipher Response Mode - 48.008 subclause 3.2.2.34 type record BSSMAP_IE_CipherResponseMode { OCT1 elementIdentifier, // '23'O BIT1 cipherResponseModeInfo,//IMEISV must be included by MS ('0') or not (1) - BIT7 spare1_7 // '0000000'B + BIT7 spare1_7 // '0000000'B } with { variant "PRESENCE (elementIdentifier = '23'O)" } @@ -784,50 +784,50 @@ variant (lengthIndicator) "LENGTHTO (layer3MsgConents)"} -// Channel Needed - 48.008 subclause 3.2.2.36 +// Channel Needed - 48.008 subclause 3.2.2.36 type record BSSMAP_IE_ChannelNeeded { OCT1 elementIdentifier, // '24'O BIT2 channel, //00:any, 01:SDCCH, 10:Full TCH, 11:Dual TCH - BIT6 spare + BIT6 spare } with { variant "PRESENCE (elementIdentifier = '24'O)" } -// Trace Type - 48.008 subclause 3.2.2.37 +// Trace Type - 48.008 subclause 3.2.2.37 type record BSSMAP_IE_TraceType { OCT1 elementIdentifier, // '25'O - BIT2 e,// Event Invoking + BIT2 e,// Event Invoking // '00'B: Mobile Originated Call, Mobile Call Terminated, // Short Message Service Mobile Originated, Short - // Message Service Mobile Terminated, Independent Call + // Message Service Mobile Terminated, Independent Call // Supplementary Services, Updates Location, - // IMSI attach, detach IMSI + // IMSI attach, detach IMSI // '01'B: Mobile Originated Call, Mobile Call Terminated, // Short Message Service Mobile Originated, Short - // Message Service Mobile Terminated, Independent Call + // Message Service Mobile Terminated, Independent Call // Supplementary Services only - // '10'B: Location Updates, IMSI attach, IMSI only detach - // '11'B: Operator definable - BIT2 d,// MSC Type Record - // '00'B: Basic - // '01'B: Detailed (Optional) - // '00'B: Spare - // '00'B: No Trace MSC - BIT2 c,// BSS Type Record - // '00'B: Basic + // '10'B: Location Updates, IMSI attach, IMSI only detach + // '11'B: Operator definable + BIT2 d,// MSC Type Record + // '00'B: Basic + // '01'B: Detailed (Optional) + // '00'B: Spare + // '00'B: No Trace MSC + BIT2 c,// BSS Type Record + // '00'B: Basic // '01'B: Handover // '00'B: Radio - // '00'B: No Trace BSS - BIT1 b,// For expansion future + // '00'B: No Trace BSS + BIT1 b,// For expansion future // Set to '0'B BIT1 a // Priority Indication - // '0'B: Priority No + // '0'B: Priority No // '1'B: Priority } -// Trigger ID - 48.008 subclause 3.2.2.38 +// Trigger ID - 48.008 subclause 3.2.2.38 type record BSSMAP_IE_TriggerId { OCT1 elementIdentifier, //'26'O @@ -841,12 +841,12 @@ type record BSSMAP_IE_TraceReference { OCT1 elementIdentifier, // '27'O - OCT1 msb_TraceReference, // the most significant bit of trace reference - OCT1 lsb_TraceReference // the least significant bit of trace reference + OCT1 msb_TraceReference, // the most significant bit of trace reference + OCT1 lsb_TraceReference // the least significant bit of trace reference } with { variant "PRESENCE (elementIdentifier = '27'O)" } -// Transaction ID - 48.008 subclause 3.2.2.40 +// Transaction ID - 48.008 subclause 3.2.2.40 type record BSSMAP_IE_TransactionId { OCT1 elementIdentifier, //'28'O @@ -856,41 +856,41 @@ variant (lengthIndicator) "LENGTHTO (transactionNumber)" } -// Mobil Identity - 48.008 subclause 3.2.2.41 -type record BSSMAP_IE_MobileIdentity +// Mobil Identity - 48.008 subclause 3.2.2.41 +type record BSSMAP_IE_MobileIdentity { OCT1 elementIdentifier, // '29'O - INT1 lengthIndicator, + INT1 lengthIndicator, BIT3 typeOfIdentity, - BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits + BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits HEX5_16 digits // if nr of digits is even, the last digit: '1111'B } with { variant "PRESENCE (elementIdentifier = '29'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)"; variant "PADDING(yes),PADDING_PATTERN('1'B)"} -// OMCID - 48.008 subclause 3.2.2.42 +// OMCID - 48.008 subclause 3.2.2.42 type record BSSMAP_IE_OMCId { OCT1 elementIdentifier, // '2A'O - INT1 lengthIndicator, - BIT4 numberingPlanind, // '0000'B unknown - // '0001'B ISDN/Telephony Numbering Plan (Rec CCITT E.164) - // '0011'B data numbering plan (CCITT Rec X.121) - // '0100'B telex numbering plan (CCITT Rec F.69) - // '0110'B land mobile numbering plan (CCITT Rec E.212) - // '1000'B national numbering plan + INT1 lengthIndicator, + BIT4 numberingPlanind, // '0000'B unknown + // '0001'B ISDN/Telephony Numbering Plan (Rec CCITT E.164) + // '0011'B data numbering plan (CCITT Rec X.121) + // '0100'B telex numbering plan (CCITT Rec F.69) + // '0110'B land mobile numbering plan (CCITT Rec E.212) + // '1000'B national numbering plan // '1001'B private numbering plan - // All other values are reserved - BIT3 natureOfAddress, // '000'B unknown + // All other values are reserved + BIT3 natureOfAddress, // '000'B unknown // '001'B international number - // '010'B national significant number + // '010'B national significant number // '011'B network specific number - // '100'B subscriber number + // '100'B subscriber number // '110'B abbreviated number - // All other values are reserved - BIT1 ext, + // All other values are reserved + BIT1 ext, OCTN digits// The digits are encoded TBCD (digit 0000 _ 1001 (0_9), // 1010 = '*', 1011 = '#', 1100 = 'A', 1101 = 'B', 1110 = 'C'). // If the number of identity digits is odd bits then bit 5-8 @@ -900,7 +900,7 @@ ext, digits)"} -// Forward Indicator - 48.008 subclause 3.2.2.43 +// Forward Indicator - 48.008 subclause 3.2.2.43 type record BSSMAP_IE_ForwardIndicator { OCT1 elementIdentifier, //'2B'O @@ -909,7 +909,7 @@ } with { variant "PRESENCE (elementIdentifier = '2B'O)" } -// Choosen Encryption Algorithm - 48.008 subclause 3.2.2.44 +// Choosen Encryption Algorithm - 48.008 subclause 3.2.2.44 type record BSSMAP_IE_ChosenEncryptionAlgorithm { OCT1 elementIdentifier, // '2C'O @@ -920,11 +920,11 @@ // '00000101'B A5/4 // '00000110'B A5/5 // '00000111'B A5/6 - // '00001000'B A5/7 + // '00001000'B A5/7 } with { variant "PRESENCE (elementIdentifier = '2C'O)" } -// Circuit Pool - 48.008 subclause 3.2.2.45 +// Circuit Pool - 48.008 subclause 3.2.2.45 type record BSSMAP_IE_CircuitPool { OCT1 elementIdentifier, // '2D'O @@ -932,7 +932,7 @@ } with { variant "PRESENCE (elementIdentifier = '2D'O)" } -// Circuit Pool List - 48.008 subclause 3.2.2.46 +// Circuit Pool List - 48.008 subclause 3.2.2.46 type record BSSMAP_IE_CircuitPoolList { OCT1 elementIdentifier, // '2E'O @@ -959,7 +959,7 @@ } with {variant "PRESENCE (elementIdentifier = '30'O)" variant (lengthIndicator) "LENGTHTO (resourceList)" } -type record of BSSMAP_FIELD_Resource +type record of BSSMAP_FIELD_Resource BSSMAP_FIELD_ResourceList type record BSSMAP_FIELD_Resource @@ -971,7 +971,7 @@ } with {variant (nrOfChannels) "EXTENSION_BIT(reverse)"} -// Current Channel Type 1 - 48.008 subclause 3.2.2.49 +// Current Channel Type 1 - 48.008 subclause 3.2.2.49 type record BSSMAP_IE_CurrentChannelType1 { OCT1 elementIdentifier, // '31'O @@ -988,7 +988,7 @@ BIT6 spare2 // '000000'B } with { variant "PRESENCE (elementIdentifier = '32'O)" } -// Speech Version - 48.008 subclause 3.2.2.51 +// Speech Version - 48.008 subclause 3.2.2.51 type record BSSMAP_IE_SpeechVersion { OCT1 elementIdentifier, // '40'O @@ -1002,7 +1002,7 @@ } with { variant "PRESENCE (elementIdentifier = '40'O)" } -// Assignment Requirement - 48.008 subclause 3.2.2.52 +// Assignment Requirement - 48.008 subclause 3.2.2.52 type record BSSMAP_IE_AssignmentRequirement { OCT1 elementIdentifier, // '33'O @@ -1017,7 +1017,7 @@ } with { variant "PRESENCE (elementIdentifier = '35'O)" } -// Group Call Reference - 48.008 subclause 3.2.2.55 +// Group Call Reference - 48.008 subclause 3.2.2.55 type record BSSMAP_IE_GroupCallReference { OCT1 elementIdentifier, // '37'O @@ -1031,13 +1031,13 @@ type record BSSMAP_IE_EMLPP_Priority { OCT1 elementIdentifier,// '38'O - BIT3 callPriority, // '000'B no priority applied + BIT3 callPriority, // '000'B no priority applied // '001'B call priority level 4 - // '010'B call priority 3 level + // '010'B call priority 3 level // '011'B call priority level 2 - // '100'B call priority 1 level + // '100'B call priority 1 level // '101'B call priority level 0 - // '110'B call priority B level + // '110'B call priority B level // '111'B call priority level A BIT5 spare1_5 // '00000'B } with { variant "PRESENCE (elementIdentifier = '38'O)" } @@ -1073,21 +1073,21 @@ BIT1 vCI, //Vertical Coordinate Indicator: VC requested ('1'B) or not ('0'B) BIT1 vEL, // report velocity if available (1) or not(0) BIT6 spare_1_6, // '0000000'B - BIT7 horizontalAccuracy, // Accuracy Horizontal (HA) + BIT7 horizontalAccuracy, // Accuracy Horizontal (HA) BIT1 hAI, // Horizontal Accuracy Indicator HA is specified (1) or not (0) - BIT7 verticalAccuracy, // Accuracy Vertical (VA) + BIT7 verticalAccuracy, // Accuracy Vertical (VA) BIT1 vAI, // Vertical Accuracy Indicator VA is specified (1) or not (0) BIT6 spare_2_6, // '000000'B BIT2 rTC // '00'B Response Time is not specified - // '01'B delay Low + // '01'B delay Low // '10'B Delay tolerant - // '11'B Reserved + // '11'B Reserved } with { variant "PRESENCE (elementIdentifier = '3E'O)" variant (lengthIndicator) "LENGTHTO (vCI, vEL, spare_1_6, horizontalAccuracy, hAI, verticalAccuracy, vAI, spare_2_6, rTC)"} -// LSA Access Control Suppression - 48.008 subclause 3.2.2.61 +// LSA Access Control Suppression - 48.008 subclause 3.2.2.61 type record BSSMAP_IE_LSAAccessControlSuppression { OCT1 elementIdentifier, //'3F'O @@ -1096,54 +1096,54 @@ } with { variant "PRESENCE (elementIdentifier = '3F'O)" } -// LCS Priority - 48.008 subclause 3.2.2.62 +// LCS Priority - 48.008 subclause 3.2.2.62 type record BSSMAP_IE_LCSPriority { OCT1 elementIdentifier,// '43'O - INT1 lengthIndicator, + INT1 lengthIndicator, OCT1 priority // see "another FS" TS 29.002 for more detail } with { variant "PRESENCE (elementIdentifier = '43'O)" variant (lengthIndicator) "LENGTHTO (priority)"} -// Location Type - 48.008 subclause 3.2.2.63 +// Location Type - 48.008 subclause 3.2.2.63 type record BSSMAP_IE_LocationType { OCT1 elementIdentifier, // '44'O - INT1 lengthIndicator, // 1 or 2 - OCT1 locationInformation,// '00000000'B current location geographic + INT1 lengthIndicator, // 1 or 2 + OCT1 locationInformation,// '00000000'B current location geographic // '00000001'B loc assistance info for target MS // '00000010'B deciphering keys for broadcast - // assistance data for MS target + // assistance data for MS target // all other values are reserved OCT1 positioningMethod optional // '00000000'B reserved - // '00000001'B Mobile E_OTD Assisted + // '00000001'B Mobile E_OTD Assisted // '00000010'B Mobile Based E_OTD - // '00000011'B GPS Assisted + // '00000011'B GPS Assisted // all other values are reserved } with {variant (lengthIndicator) "LENGTHTO (locationInformation, positioningMethod)"} -// Location Estimate - 48.008 subclause 3.2.2.64 +// Location Estimate - 48.008 subclause 3.2.2.64 type record BSSMAP_IE_LocationEstimate { OCT1 elementIdentifier, // '45'O - INT1 lengthIndicator, // 1_22 on A_interface, 1_93 E_interface on - OCTN geographicLocation + INT1 lengthIndicator, // 1_22 on A_interface, 1_93 E_interface on + OCTN geographicLocation } with { variant "PRESENCE (elementIdentifier = '45'O)" variant (lengthIndicator) "LENGTHTO (geographicLocation)"} -// Positioning Data - 48.008 subclause 3.2.2.65 +// Positioning Data - 48.008 subclause 3.2.2.65 type record BSSMAP_IE_PositioningData { OCT1 elementIdentifier, // '46'O - INT1 lengthIndicator, // 2_11 - BIT4 positioningDataDescriminator, // '0000'B indicates usage of each + INT1 lengthIndicator, // 2_11 + BIT4 positioningDataDescriminator, // '0000'B indicates usage of each // positioning data method, // that was attempted - // all other values reserved are + // all other values reserved are BIT4 spare_1_4, // '0000'B BSSMAP_FIELD_PositioningMethods positioningMethod // of lengthIndicator 1_10 } with { variant "PRESENCE (elementIdentifier = '46'O)" @@ -1151,45 +1151,45 @@ type record BSSMAP_FIELD_PositioningMethod { - BIT3 usage, // '000'B unsuccesful attempt due to failure or interruption + BIT3 usage, // '000'B unsuccesful attempt due to failure or interruption // '001'B succesful attempt, results not used to generate location // '010'B succesful attempt, results used to verify but not generate location // '011'B succesful attempt, results used to generate location // '100'B succesful attempt, MS supports multiple based positioning methods BIT5 positioningMethod // '00000'B Timing Advance // '00001'B TOA - // '00010'B AOA + // '00010'B AOA // '00011'B Mobile EOTD Assisted // '00100'B Mobile Based E_OTD // '00101'B Mobile GPS Assisted // '00110'B Mobile Based GPS // '00111'B GPS Conventional - // '01000'B _ '01111'B reserved for GSM + // '01000'B _ '01111'B reserved for GSM // '10000'B _ '11111'B reserved for network // specific positioning methods } -type record of BSSMAP_FIELD_PositioningMethod BSSMAP_FIELD_PositioningMethods +type record of BSSMAP_FIELD_PositioningMethod BSSMAP_FIELD_PositioningMethods -// LCS Cause - 48.008 subclause 3.2.2.66 +// LCS Cause - 48.008 subclause 3.2.2.66 type record BSSMAP_IE_LCSCause { OCT1 elementIdentifier, // '47'O - INT1 lengthIndicator, // 1 (_> diagnosticValue invalid) 2 or - BIT8 causeValue, // '00000000'BUnspecified + INT1 lengthIndicator, // 1 (_> diagnosticValue invalid) 2 or + BIT8 causeValue, // '00000000'BUnspecified // '00000001'B System Failure - // '00000010'B Error Protocol + // '00000010'B Error Protocol // '00000011'B Data missing in position request // '00000100'B unexpected data value in request position // '00000101'B Position method failure - // '00000110'B Target unreachable MS + // '00000110'B Target unreachable MS // '00000111'B Location request aborted - // '00001000'B Facility supported not + // '00001000'B Facility supported not // '00001001'B intra_BSC_HO ongoing - // '00001010'B complete intra_BSC_HO + // '00001010'B complete intra_BSC_HO // '00001011'B congestion - // all other values reserved are + // all other values reserved are OCT1 diagnosticValue optional } with { variant "PRESENCE (elementIdentifier = '47'O)" variant (lengthIndicator) "LENGTHTO (causeValue, diagnosticValue)"} @@ -1199,19 +1199,19 @@ type record BSSMAP_IE_LCSClientType { OCT1 elementIdentifier, // '48'O - INT1 lengthIndicator, // 1 + INT1 lengthIndicator, // 1 BIT4 subtype, // all values unspecified/reserved except for: // category = PLMN Operator: // '0000'B Unspecified // '0001'B Boradcast Service // '0010'B O&M - // '0011'B Statistics Anonymous + // '0011'B Statistics Anonymous // '0100'B Target MS Service Support - // all other values reserved are + // all other values reserved are BIT4 category // '0000'B Value added client - // '0010'B Operator PLMN + // '0010'B Operator PLMN // '0011'B Emergency Services - // '0100'B Lawful Services Intercept + // '0100'B Lawful Services Intercept // all other values are reserved } with { variant "PRESENCE (elementIdentifier = '48'O)" variant (lengthIndicator) "LENGTHTO (subtype, category)"} @@ -1222,42 +1222,42 @@ { OCT1 elementIdentifier, //'49'O LIN2_BO_LAST lengthIndicator, - BIT7 protocolID optional, // '0000000'reserved B - // '0000001'BSSLAP B (the only currently supported) - // '0000010'LLP B + BIT7 protocolID optional, // '0000000'reserved B + // '0000001'BSSLAP B (the only currently supported) + // '0000010'LLP B // '0000011'B SMLCPP - BIT1 spare_1_1 optional, // '0'B + BIT1 spare_1_1 optional, // '0'B octetstring embeddedMessage optional // of length: 5_25 } with { variant "PRESENCE (elementIdentifier = '49'O)" variant (lengthIndicator) "LENGTHTO (protocolID,spare_1_1,embeddedMessage)"} -// Network Element Identity - 48.008 subclause 3.2.2.69 +// Network Element Identity - 48.008 subclause 3.2.2.69 type record BSSMAP_IE_NetworkElementIdentity { OCT1 elementIdentifier, //'4A'O INT1 lengthIndicator, BIT4 iDDiscriminator, BIT4 spare, - OCTN networkElementIdentity // Network Element Identity + OCTN networkElementIdentity // Network Element Identity } with {variant (lengthIndicator) "LENGTHTO (iDDiscriminator,spare,networkElementIdentity)"} -// GPS Assistant Data - 48.008 subclause 3.2.2.70 +// GPS Assistant Data - 48.008 subclause 3.2.2.70 type record BSSMAP_IE_GPSAssistanceData { OCT1 elementIdentifier, //'4B'O INT1 lengthIndicator, // 1_38 OCT1 a_to_h, OCT1 i_to_p, - OCTN satellite_related_data // Satellite related data + OCTN satellite_related_data // Satellite related data } with { variant "PRESENCE (elementIdentifier = '4B'O)" variant (lengthIndicator) "LENGTHTO (satellite_related_data,a_to_h,i_to_p)"} -// Deciphering Key - 48.008 subclause 3.2.2.71 +// Deciphering Key - 48.008 subclause 3.2.2.71 type record BSSMAP_IE_DecipheringKeys { OCT1 elementIdentifier, // '4C'O @@ -1266,31 +1266,31 @@ BIT56 currentdecipheringKeyValue, BIT56 nextdecipheringKeyValue optional } with { variant "PRESENCE (elementIdentifier = '4C'O)" - variant (lengthIndicator) "LENGTHTO (cipheringKeyFlag, + variant (lengthIndicator) "LENGTHTO (cipheringKeyFlag, currentdecipheringKeyValue, nextdecipheringKeyValue)"} -// Return Error Request - 48.008 subclause 3.2.2.72 +// Return Error Request - 48.008 subclause 3.2.2.72 type record BSSMAP_IE_ReturnErrorRequest { OCT1 elementIdentifier, //'4D'O INT1 lengthIndicator, - OCT1 returnErrorType // Return Error Request + OCT1 returnErrorType // Return Error Request } with { variant "PRESENCE (elementIdentifier = '4D'O)" variant (lengthIndicator) "LENGTHTO (returnErrorType)"} -// Return Error Cause - 48.008 subclause 3.2.2.73 +// Return Error Cause - 48.008 subclause 3.2.2.73 type record BSSMAP_IE_ReturnErrorCause { OCT1 elementIdentifier, //'4E'O INT1 lengthIndicator, - OCT1 returnErrorCause // Return Error Cause + OCT1 returnErrorCause // Return Error Cause } with { variant "PRESENCE (elementIdentifier = '4E'O)" variant (lengthIndicator) "LENGTHTO (returnErrorCause)"} -// Segmentation - 48.008 subclause 3.2.2.74 +// Segmentation - 48.008 subclause 3.2.2.74 type record BSSMAP_IE_Segmentation { OCT1 elementIdentifier, //'4F'O @@ -1304,11 +1304,11 @@ "LENGTHTO (segmentationNumber,segmentationBit,spare,messageID)"} -// Service Handover - 48.008 subclause 3.2.2.75 +// Service Handover - 48.008 subclause 3.2.2.75 type record BSSMAP_IE_ServiceHandover { OCT1 elementIdentifier, //'50'O - INT1 lengthIndicator, + INT1 lengthIndicator, BIT3 serviceHandoverInfo, BIT5 spare } with { variant "PRESENCE (elementIdentifier = '50'O)" @@ -1324,7 +1324,7 @@ } with { variant (lengthIndicator) "LENGTHTO (informationcontainer)" } -// GERAN Classmark - 48.008 subclause 3.2.2.78 +// GERAN Classmark - 48.008 subclause 3.2.2.78 type record BSSMAP_IE_GERANClassmark { OCT1 elementIdentifier, //'53'O @@ -1342,11 +1342,11 @@ OCT1 codecType, BIT3 maxNrofTCH, BIT5 allowedRadioIFRates -} with {variant (lengthIndicator) +} with {variant (lengthIndicator) "LENGTHTO (codecType, maxNrofTCH, allowedRadioIFRates)" } -// New BSS to Old BSS Information - 48.008 subclause 3.2.2.80 +// New BSS to Old BSS Information - 48.008 subclause 3.2.2.80 type record BSSMAP_IE_NewBSSToOldBSSInfo { OCT1 elementIdentifier, //'61'O @@ -1356,7 +1356,7 @@ variant (lengthIndicator) "LENGTHTO (newBSSToOldBSSIE)" } -// Inter-System Information - 48.008 subclause 3.2.2.81 +// Inter-System Information - 48.008 subclause 3.2.2.81 type record BSSMAP_IE_InterSystemInfo { OCT1 elementIdentifier, //'63'O @@ -1366,7 +1366,7 @@ variant (lengthIndicator) "LENGTHTO (interSystemInfoTranspCont)" } -// SNA Access Information - 48.008 subclause 3.2.2.82 +// SNA Access Information - 48.008 subclause 3.2.2.82 type record BSSMAP_IE_SNAAccessInfo { OCT1 elementIdentifier, //'64'O @@ -1380,7 +1380,7 @@ type record AuthorisedPLMN { INT1 lengthIndicator, - OCT3 mcc_mnc, + OCT3 mcc_mnc, RecordOfOCT2 authorisedSNA optional } with { variant (lengthIndicator) "LENGTHTO (mcc_mnc,authorisedSNA)" } @@ -1397,7 +1397,7 @@ BIT4 spare, BIT4 VSTK_RAND_5 } with { variant "PRESENCE (elementIdentifier = '65'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (VSTK_RAND_1, VSTK_RAND_2, VSTK_RAND_3, VSTK_RAND_4, spare, VSTK_RAND_5)"} @@ -1417,10 +1417,10 @@ OCT1 elementIdentifier, // '67' INT1 lengthIndicator, BIT1 VGCS_or_VBS, // 0: not a member of any VGCS/VBS-group - BIT2 pagingCause, + BIT2 pagingCause, BIT5 spare } with { variant "PRESENCE (elementIdentifier = '67'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (VGCS_or_VBS, pagingCause, spare)"} @@ -1430,10 +1430,10 @@ OCT1 elementIdentifier, // '68' INT1 lengthIndicator, BIT3 typeOfIdentity, - BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits + BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits HEX5_16 digits // if nr of digits is even, the last digit: '1111'B } with { variant "PRESENCE (elementIdentifier = '68'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)"; variant "PADDING(yes),PADDING_PATTERN('1'B)"} @@ -1465,7 +1465,7 @@ "LENGTHTO (TP_Ind, AS_Ind, BSS_Res, tCP, spare)"} -// Talker Priority - 48.008 subclause 3.2.2.89 +// Talker Priority - 48.008 subclause 3.2.2.89 type record BSSMAP_IE_TalkerPriority { OCT1 elementIdentifier, // '6A'O @@ -1494,7 +1494,7 @@ BIT5 spare, OCT17 talkerIdentity } with { variant "PRESENCE (elementIdentifier = '6C'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (fillerBits, spare, talkerIdentity)"} @@ -1506,7 +1506,7 @@ OCT1 elementIdentifier, // '6E' INT1 lengthIndicator, OCT248 SMS -} with {variant (lengthIndicator) +} with {variant (lengthIndicator) "LENGTHTO (SMS)"} @@ -1520,7 +1520,7 @@ BIT2 RR_mode // 0 0: dedicated mode (i.e. dedicated channel) // 0 1: group transmit mode (i.e. voice group channel) // Other values are reserved for future use. -} with {variant (lengthIndicator) +} with {variant (lengthIndicator) "LENGTHTO (spare, groupCipherKeyNumber, RR_mode)"} @@ -1529,30 +1529,30 @@ { OCT1 elementIdentifier, // '70' INT1 lengthIndicator, - BIT3 status, + BIT3 status, BIT5 spare } with { variant "PRESENCE (elementIdentifier = '70'O)" variant (lengthIndicator) "LENGTHTO (status, spare)"} - - -// 3.2.2.95 GANSS Assistance Data -type record BSSMAP_IE_GANSS_AssistanceData -{ - OCT1 elementIdentifier, //'75' - INT1 lengthIndicator, - OCTN gANSS_AssistanceDataInfo // 49.031 Section 10.31 -} with { variant "PRESENCE (elementIdentifier = '75'O)" - variant (lengthIndicator) "LENGTHTO (gANSS_AssistanceDataInfo)"} - -// 3.2.2.96 GANSS Positioning Data -type record BSSMAP_IE_GANSS_PositioningData -{ - OCT1 elementIdentifier, // '76' + +// 3.2.2.95 GANSS Assistance Data +type record BSSMAP_IE_GANSS_AssistanceData +{ + OCT1 elementIdentifier, //'75' INT1 lengthIndicator, - GANSS_PositioningData gANSS_PositioningDataInfo + OCTN gANSS_AssistanceDataInfo // 49.031 Section 10.31 +} with { variant "PRESENCE (elementIdentifier = '75'O)" + variant (lengthIndicator) "LENGTHTO (gANSS_AssistanceDataInfo)"} + + +// 3.2.2.96 GANSS Positioning Data +type record BSSMAP_IE_GANSS_PositioningData +{ + OCT1 elementIdentifier, // '76' + INT1 lengthIndicator, + GANSS_PositioningData gANSS_PositioningDataInfo } with { variant "PRESENCE (elementIdentifier = '76'O)" - variant (lengthIndicator) "LENGTHTO (gANSS_PositioningDataInfo)"} + variant (lengthIndicator) "LENGTHTO (gANSS_PositioningDataInfo)"} type record GANSS_PositioningData // 49.031 Section 10.32 { @@ -1569,7 +1569,7 @@ INT1 lengthIndicator, GANSS_LocationType gANSS_LocationTypeInfo } with { variant "PRESENCE (elementIdentifier = '77'O)" - variant (lengthIndicator) "LENGTHTO (gANSS_LocationTypeInfo)"} + variant (lengthIndicator) "LENGTHTO (gANSS_LocationTypeInfo)"} type record GANSS_LocationType // 49.031 Section 10.33 { @@ -1582,31 +1582,31 @@ } -// 3.2.2.98 Application data +// 3.2.2.98 Application data type record BSSMAP_IE_ApplicationData { OCT1 elementIdentifier, // '78' INT1 lengthIndicator, OCT9 applicationDataInfo // "implementation-specific" according to 44.018 v8.7.0 Section 10.5.2.72 } with { variant "PRESENCE (elementIdentifier = '78'O)" - variant (lengthIndicator) "LENGTHTO (applicationDataInfo)"} + variant (lengthIndicator) "LENGTHTO (applicationDataInfo)"} // 3.2.2.99 Data Identity type record BSSMAP_IE_DataIdentity { - OCT1 elementIdentifier, // '79' - INT1 lengthIndicator, + OCT1 elementIdentifier, // '79' + INT1 lengthIndicator, DataIdentity dataIdentityInfo } with { variant "PRESENCE (elementIdentifier = '79'O)" - variant (lengthIndicator) "LENGTHTO (dataIdentityInfo)"} + variant (lengthIndicator) "LENGTHTO (dataIdentityInfo)"} - -type record DataIdentity // 44.018 v8.7.0 Section 10.5.2.73 + +type record DataIdentity // 44.018 v8.7.0 Section 10.5.2.73 { BIT1 aI, BIT4 dI, - BIT3 dP + BIT3 dP } @@ -1618,7 +1618,7 @@ BIT1 bT_Ind, BIT7 spare } with { variant "PRESENCE (elementIdentifier = '7A'O)" - variant (lengthIndicator) "LENGTHTO (bT_Ind, spare)"} + variant (lengthIndicator) "LENGTHTO (bT_Ind, spare)"} // 3.2.2.101 MSISDN @@ -1626,11 +1626,11 @@ { OCT1 elementIdentifier, // '7B' INT1 lengthIndicator, - octetstring msisdn + octetstring msisdn } with { variant "PRESENCE (elementIdentifier = '7B'O)" - variant (lengthIndicator) "LENGTHTO (msisdn)"} - - + variant (lengthIndicator) "LENGTHTO (msisdn)"} + + // 3.2.2.102 AoIP Transport Layer Address type record BSSMAP_IE_AoIP_TransportLayerAddress { @@ -1638,7 +1638,7 @@ INT1 lengthIndicator, BSSMAP_FIELD_IPAddress ipAddress, LIN2_BO_LAST uDPPortValue -} with { +} with { variant "PRESENCE (elementIdentifier = '7C'O)"; variant (lengthIndicator) "LENGTHTO (ipAddress, uDPPortValue)"; variant (ipAddress) "CROSSTAG(ipv4,lengthIndicator = 6; @@ -1674,16 +1674,16 @@ OCT1 extendedCodecType optional, BIT8 s0_7 optional, BIT8 s8_15 optional -} with { +} with { variant (extendedCodecType) "PRESENCE (codecType = CodecExtension)"; - variant (s0_7) "PRESENCE (codecType = FR_AMR, + variant (s0_7) "PRESENCE (codecType = FR_AMR, codecType = HR_AMR, codecType = FR_AMR_WB, codecType = OHR_AMR, codecType = OFR_AMR_WB, codecType = OHR_AMR_WB, extendedCodecType = 'FD'O)"; - variant (s8_15) "PRESENCE (codecType = FR_AMR, + variant (s8_15) "PRESENCE (codecType = FR_AMR, codecType = HR_AMR, codecType = OHR_AMR)"; } @@ -1725,7 +1725,7 @@ { OCT1 elementIdentifier, // '80' INT1 lengthIndicator, - OCT4List callIdentifierListInfo length (1..62) + OCT4List callIdentifierListInfo length (1..62) } with { variant "PRESENCE (elementIdentifier = '80'O)"; variant (lengthIndicator) "LENGTHTO (callIdentifierListInfo)"} @@ -1736,14 +1736,14 @@ BIT1 rTD, BIT1 rIP, BIT6 spare -} with { variant "PRESENCE (elementIdentifier = '81'O)";} +} with { variant "PRESENCE (elementIdentifier = '81'O)";} //3.2.2.109 KC128 type record BSSMAP_IE_KC128 { OCT1 elementIdentifier, // '83' - OCT16 kC128_Value + OCT16 kC128_Value } with { variant "PRESENCE (elementIdentifier = '83'O)";} @@ -1771,7 +1771,7 @@ type record BSSMAP_IE_RerouteRejectCause { OCT1 elementIdentifier, //86 - OCT1 rerouteRejectCauseValue + OCT1 rerouteRejectCauseValue } with { variant "PRESENCE (elementIdentifier = '86'O)";} @@ -1805,15 +1805,15 @@ type record GlobalCallReferenceValue { INT1 networkIDLengthIndicator, - octetstring networkID length (3..5), - INT1 nodeIDLengthIndicator, + octetstring networkID length (3..5), + INT1 nodeIDLengthIndicator, OCT2 nodeID, - INT1 callReferenceIDLengthIndicator, - OCT5 callReferenceID -} with { + INT1 callReferenceIDLengthIndicator, + OCT5 callReferenceID +} with { variant (networkIDLengthIndicator) "LENGTHTO (networkID)" - variant (nodeIDLengthIndicator) "LENGTHTO (nodeID)" - variant (callReferenceIDLengthIndicator) "LENGTHTO (callReferenceID )" + variant (nodeIDLengthIndicator) "LENGTHTO (nodeID)" + variant (callReferenceIDLengthIndicator) "LENGTHTO (callReferenceID )" } @@ -1821,7 +1821,7 @@ type record BSSMAP_IE_LCLS_Configuration { OCT1 elementIdentifier, //8A - BIT4 lCLS_ConfigurationValue, + BIT4 lCLS_ConfigurationValue, BIT4 spare } with { variant "PRESENCE (elementIdentifier = '8A'O)";} @@ -1835,8 +1835,8 @@ } with { variant "PRESENCE (elementIdentifier = '8B'O)";} -//3.2.2.118 LCLS Correlation Not Needed -type record BSSMAP_IE_LCLS_CorrelationNotNeeded +//3.2.2.118 LCLS Correlation Not Needed +type record BSSMAP_IE_LCLS_CorrelationNotNeeded { OCT1 elementIdentifier //8C } with { variant "PRESENCE (elementIdentifier = '8C'O)";} @@ -1847,7 +1847,7 @@ { OCT1 elementIdentifier, //8D BIT4 lCLS_BSS_StatusValue, - BIT4 spare + BIT4 spare } with { variant "PRESENCE (elementIdentifier = '8D'O)";} @@ -1867,7 +1867,7 @@ /////////////////////////////////////////////////////// // Used in HANDOVER REQUEST message -type union BSSMAP_IE_ClassmarkInformationType +type union BSSMAP_IE_ClassmarkInformationType { BSSMAP_IE_ClassmarkInformationType1 classmarkInformationType1, BSSMAP_IE_ClassmarkInformationType2 classmarkInformationType2 @@ -1891,7 +1891,7 @@ // BSSMAP message definition /////////////////////////////////////////// -// ASSIGNMENT REQUEST - 48.008 subclause 3.2.1.1 +// ASSIGNMENT REQUEST - 48.008 subclause 3.2.1.1 type record PDU_BSSMAP_AssignmentRequest { OCT1 messageType, // '01'O @@ -1921,7 +1921,7 @@ } with { variant "PRESENCE (messageType = '01'O)" } -// ASSIGNMENT COMPLETE - 48.008 subclause 3.2.1.2 +// ASSIGNMENT COMPLETE - 48.008 subclause 3.2.1.2 type record PDU_BSSMAP_AssignmentComplete { OCT1 messageType, // '02'O @@ -1953,11 +1953,11 @@ BSSMAP_IE_SpeechCodecList codecList optional } with { variant "PRESENCE (messageType = '03'O)" } -// BLOCK - 48.008 subclause 3.2.1.4 +// BLOCK - 48.008 subclause 3.2.1.4 type record PDU_BSSMAP_Block { OCT1 messageType, // H'40 - BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, BSSMAP_IE_Cause cause, BSSMAP_IE_ConnectionReleaseRequested connectionReleaseRequested optional } with { variant "PRESENCE (messageType = '40'O)" } @@ -1967,7 +1967,7 @@ type record PDU_BSSMAP_BlockingAck { OCT1 messageType, // H'41 - BSSMAP_IE_CircuitIdentityCode circuitIdentityCode + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode } with { variant "PRESENCE (messageType = '41'O)" } @@ -2019,18 +2019,18 @@ BSSMAP_IE_TalkerPriority talkerPriority optional, BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, BSSMAP_IE_SpeechCodecList codecList optional, - BSSMAP_IE_CallIdentifier callIdentifier optional, + BSSMAP_IE_CallIdentifier callIdentifier optional, BSSMAP_IE_KC128 kC128 optional, BSSMAP_IE_GlobalCallReference globalCallReference optional, BSSMAP_IE_LCLS_Configuration lCLS_Configuration optional, - BSSMAP_IE_LCLS_ConnectionStatusControl connectionStatusControl optional + BSSMAP_IE_LCLS_ConnectionStatusControl connectionStatusControl optional } with { variant "PRESENCE (messageType = '10'O)" variant "TAG ( sourceToTargetRNCTransparentInfo, elementIdentifier = '51'O; sourceToTargetRNCTransparentInfoCDMA, elementIdentifier = '52'O)"} -// HANDOVER REQUIRED - 48.008 subclause 3.2.1.9 +// HANDOVER REQUIRED - 48.008 subclause 3.2.1.9 type record PDU_BSSMAP_HandoverRequired { OCT1 messageType, // '11'O @@ -2139,7 +2139,7 @@ BSSMAP_IE_NewBSSToOldBSSInfo newBSSToOldBSSInfo optional, BSSMAP_IE_InterSystemInfo interSystemInformation optional, BSSMAP_IE_TalkerPriority talkerPriority optional, - BSSMAP_IE_SpeechCodecList codecList optional + BSSMAP_IE_SpeechCodecList codecList optional } with { variant "PRESENCE (messageType = '16'O)" } @@ -2177,11 +2177,11 @@ } with { variant "PRESENCE (messageType = '52'O)" } -// CLEAR REQUEST - 48.008 subclause 3.2.1.20 +// CLEAR REQUEST - 48.008 subclause 3.2.1.20 type record PDU_BSSMAP_ClearRequest { OCT1 messageType, // H'22 - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '22'O)" } @@ -2250,7 +2250,7 @@ type record PDU_BSSMAP_MSCInvokeTrace { OCT1 messageType, // H'36 - BSSMAP_IE_TraceType traceType, + BSSMAP_IE_TraceType traceType, BSSMAP_IE_TriggerId triggerId optional, BSSMAP_IE_TraceReference traceReference, BSSMAP_IE_TransactionId transactionId optional, @@ -2263,7 +2263,7 @@ type record PDU_BSSMAP_BSSInvokeTrace { OCT1 messageType, // H'37 - BSSMAP_IE_TraceType traceType, + BSSMAP_IE_TraceType traceType, BSSMAP_IE_ForwardIndicator forwardIndicator optional, BSSMAP_IE_TriggerId triggerId optional, BSSMAP_IE_TraceReference traceReference, @@ -2281,18 +2281,18 @@ BSSMAP_IE_TalkerPriority talkerPriority optional } with { variant "PRESENCE (messageType = '54'O)" } -// CIPHER MODE COMMAND - 48.008 subclause 3.2.1.30 +// CIPHER MODE COMMAND - 48.008 subclause 3.2.1.30 type record PDU_BSSMAP_CipherModeCommand { OCT1 messageType, // '53'O BSSMAP_IE_Layer3HeaderInfo layer3HeaderInfo optional, BSSMAP_IE_EncryptionInformation encryptionInformation, BSSMAP_IE_CipherResponseMode cipherResponseMode optional, - BSSMAP_IE_KC128 kC128 optional + BSSMAP_IE_KC128 kC128 optional } with { variant "PRESENCE (messageType = '53'O)" } -// CIPHER MODE COMPLETE - 48.008 subclause 3.2.1.31 +// CIPHER MODE COMPLETE - 48.008 subclause 3.2.1.31 type record PDU_BSSMAP_CipherModeComplete { OCT1 messageType, // '55'O @@ -2329,7 +2329,7 @@ { OCT1 messageType, // H'25 BSSMAP_IE_DLCI dLCI, - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '25'O)" } @@ -2347,7 +2347,7 @@ { OCT1 messageType, // H'34 BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '34'O)" } @@ -2355,7 +2355,7 @@ type record PDU_BSSMAP_ResetCircuitAck { OCT1 messageType, // H'35 - BSSMAP_IE_CircuitIdentityCode circuitIdentityCode + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode } with { variant "PRESENCE (messageType = '35'O)" } @@ -2367,31 +2367,31 @@ } with { variant "PRESENCE (messageType = '1B'O)" } -// CIRCUIT GROUP BLOCK - 48.008 subclause 3.2.1.41 +// CIRCUIT GROUP BLOCK - 48.008 subclause 3.2.1.41 type record PDU_BSSMAP_CircuitGroupBlock { OCT1 messageType, // H'44 BSSMAP_IE_Cause cause, BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, - BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList } with { variant "PRESENCE (messageType = '44'O)" } -// CIRCUIT GROUP BLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.42 +// CIRCUIT GROUP BLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.42 type record PDU_BSSMAP_CircuitGroupBlockingAck { OCT1 messageType, // H'45 BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, - BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList } with { variant "PRESENCE (messageType = '45'O)" } -// CIRCUIT GROUP UNBLOCK - 48.008 subclause 3.2.1.43 +// CIRCUIT GROUP UNBLOCK - 48.008 subclause 3.2.1.43 type record PDU_BSSMAP_CircuitGroupUnblock { OCT1 messageType, // H'46 BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, - BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList } with { variant "PRESENCE (messageType = '46'O)" } @@ -2400,7 +2400,7 @@ { OCT1 messageType, // H'47 BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, - BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList } with { variant "PRESENCE (messageType = '47'O)" } @@ -2429,11 +2429,11 @@ } with { variant "PRESENCE (messageType = '48'O)" } -// CIPHER MODE REJECT - 48.008 subclause 3.2.1.48 +// CIPHER MODE REJECT - 48.008 subclause 3.2.1.48 type record PDU_BSSMAP_CipherModeReject { OCT1 messageType, // H'59 - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '59'O)" } @@ -2445,7 +2445,7 @@ BSSMAP_IE_CellIdentifier cellIdentifier, BSSMAP_IE_CellIdentifierList cellIdentifierList, BSSMAP_IE_ResourceSituation resourceSitation optional, - BSSMAP_IE_Cause cause optional + BSSMAP_IE_Cause cause optional } with { variant "PRESENCE (messageType = '5A'O)" } @@ -2470,7 +2470,7 @@ type record PDU_BSSMAP_VGCS_VBSSetupRefuse { OCT1 messageType, // H'06 - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '06'O)" } @@ -2555,8 +2555,8 @@ // UPLINK APPLICATION DATA - 48.008 subclause 3.2.1.59a type record PDU_BSSMAP_UplinkApplicationData { - OCT1 messageType, - BSSMAP_IE_CellIdentifier cellIdentifier, + OCT1 messageType, + BSSMAP_IE_CellIdentifier cellIdentifier, BSSMAP_IE_Layer3Information layer3Information, BSSMAP_IE_ApplicationDataInformation applicationDataInformation } with { variant "PRESENCE (messageType = '63'O)" } @@ -2586,7 +2586,7 @@ type record PDU_BSSMAP_UplinkReleaseCommand { OCT1 messageType, // H'4C - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '4C'O)" } @@ -2622,7 +2622,7 @@ type record PDU_BSSMAP_ChangeCircuit { OCT1 messageType, // H'4E - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '4E'O)" } @@ -2630,7 +2630,7 @@ type record PDU_BSSMAP_ChangeCircuitAck { OCT1 messageType, // H'4F - BSSMAP_IE_CircuitIdentityCode circuitIdentity + BSSMAP_IE_CircuitIdentityCode circuitIdentity } with { variant "PRESENCE (messageType = '4F'O)" } @@ -2748,9 +2748,9 @@ // 3.2.1.80 VGCS/VBS ASSIGNMENT STATUS type record PDU_BSSMAP_VGCS_VBS_AssignmentStatus { - OCT1 messageType, // '3B'O + OCT1 messageType, // '3B'O BSSMAP_IE_CellIdentifierListSegmentEstCells cellIdentifierListForEstablishedCells optional, - BSSMAP_IE_CellIdentifierListSegmentCellsToEst cellIdentifierListForCellsToEstablish optional, + BSSMAP_IE_CellIdentifierListSegmentCellsToEst cellIdentifierListForCellsToEstablish optional, BSSMAP_IE_CellIdentifierListSegmentReleasedCellsNoUserPresent cellIdentifierListSegmentReleasedCellsNoUserPresent optional, BSSMAP_IE_CellIdentifierListSegmentNotEstablishedCellsNoEstPossible cellIdentifierListSegmentNotEstablishedCellsNoEstPossible optional, BSSMAP_IE_VGCS_VBS_CellStatus vGCS_VBS_CellStatus optional @@ -2782,16 +2782,16 @@ BSSMAP_IE_Cause cause, BSSMAP_IE_CellIdentifier cellIdentifier, BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, - BSSMAP_IE_SpeechCodecList codecList + BSSMAP_IE_SpeechCodecList codecList } with { variant "PRESENCE (messageType = '70'O)" } // 3.2.1.84 INTERNAL HANDOVER REQUIRED REJECT type record PDU_BSSMAP_InternalHandoverRequiredReject { - OCT1 messageType, // '71' + OCT1 messageType, // '71' BSSMAP_IE_Cause cause, - BSSMAP_IE_SpeechCodecList codecList optional + BSSMAP_IE_SpeechCodecList codecList optional } with { variant "PRESENCE (messageType = '71'O)" } @@ -2801,10 +2801,10 @@ OCT1 messageType, // '72' BSSMAP_IE_SpeechCodec speechCodec, BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional, - BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, - BSSMAP_IE_CallIdentifier callIdentifier optional, + BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, + BSSMAP_IE_CallIdentifier callIdentifier optional, BSSMAP_IE_DownLinkDTXFlag downLinkDTX_Flag optional, - BSSMAP_IE_LCLS_ConnectionStatusControl lCLS_ConnectionStatusControl optional + BSSMAP_IE_LCLS_ConnectionStatusControl lCLS_ConnectionStatusControl optional } with { variant "PRESENCE (messageType = '72'O)" } // 3.2.1.86 INTERNAL HANDOVER ENQUIRY @@ -2820,7 +2820,7 @@ { OCT1 messageType, //'3D' BSSMAP_IE_Cause cause, - BSSMAP_IE_CallIdentifierList callIdentifierList + BSSMAP_IE_CallIdentifierList callIdentifierList } with { variant "PRESENCE (messageType = '3D'O)" } @@ -2828,7 +2828,7 @@ type record PDU_BSSMAP_ResetIPResourceAck { OCT1 messageType, //'3E' - BSSMAP_IE_CallIdentifierList callIdentifierList + BSSMAP_IE_CallIdentifierList callIdentifierList } with { variant "PRESENCE (messageType = '3E'O)" } @@ -2836,18 +2836,18 @@ type record PDU_BSSMAP_RerouteCommand { OCT1 messageType, //'78' - BSSMAP_IE_Layer3Information initialLayer3Information, + BSSMAP_IE_Layer3Information initialLayer3Information, BSSMAP_IE_RerouteRejectCause rerouteRejectCause, BSSMAP_IE_Layer3Information layer3Information optional, BSSMAP_IE_SendSequenceNumber sendSequenceNumber optional, - BSSMAP_IE_IMSI iMSI optional + BSSMAP_IE_IMSI iMSI optional } with { variant "PRESENCE (messageType = '78'O)" } // 3.2.1.90 REROUTE COMPLETE type record PDU_BSSMAP_RerouteComplete { OCT1 messageType, //'79' - BSSMAP_IE_RerouteCompleteOutcome rerouteCompleteOutcome + BSSMAP_IE_RerouteCompleteOutcome rerouteCompleteOutcome } with { variant "PRESENCE (messageType = '79'O)" } // 3.2.1.91 LCLS CONNECT CONTROL @@ -2862,7 +2862,7 @@ type record PDU_BSSMAP_LCLS_ConnectControlAck { OCT1 messageType, //'75' - BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status + BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status } with { variant "PRESENCE (messageType = '75'O)" } // 3.2.1.93 LCLS NOTIFICATION @@ -2875,7 +2875,7 @@ //The container type of all BSSMAP messages -type union PDU_BSSMAP +type union PDU_BSSMAP { PDU_BSSMAP_AssignmentRequest assignmentRequest, PDU_BSSMAP_AssignmentComplete assignmentComplete, @@ -2997,4 +2997,4 @@ variant (dlci)"PRESENCE(discriminator='1'B)"} -} with { encode "RAW"} // End of module BSSMAP_typedefs +} with { encode "RAW"} // End of module BSSMAP_typedefs -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 Gerrit-Change-Number: 23762 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 Apr 15 12:13:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 12:13:10 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Add missing IEs for CommonID References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 ) Change subject: BSSAP_Types.ttcn: Add missing IEs for CommonID ...................................................................... BSSAP_Types.ttcn: Add missing IEs for CommonID Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 --- M src/BSSAP_Types.ttcn 1 file changed, 15 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/titan.ProtocolModules.BSSMAP refs/changes/63/23763/1 diff --git a/src/BSSAP_Types.ttcn b/src/BSSAP_Types.ttcn index fa553ef..107b112 100644 --- a/src/BSSAP_Types.ttcn +++ b/src/BSSAP_Types.ttcn @@ -1863,7 +1863,19 @@ OCT1 elementIdentifier //8F } with { variant "PRESENCE (elementIdentifier = '8F'O)";} +//3.2.2.126 Selected PLMN ID +type record BSSAMAP_IE_SelectedPLMNId +{ + OCT1 elementIdentifier, //'94'O + OCT3 mcc_mnc, +} with { variant "PRESENCE (elementIdentifier = '94'O)" } +//3.2.2.127 Last used E-UTRAN PLMN ID +type record BSSAMAP_IE_LastUsedEUTRANPLMNId +{ + OCT1 elementIdentifier, //'95'O + OCT3 mcc_mnc, +} with { variant "PRESENCE (elementIdentifier = '95'O)" } /////////////////////////////////////////////////////// // Used in HANDOVER REQUEST message @@ -2639,7 +2651,9 @@ { OCT1 messageType, // H'2F BSSMAP_IE_IMSI iMSI, - BSSMAP_IE_SNAAccessInfo sNAAccessInformation optional + BSSMAP_IE_SNAAccessInfo sNAAccessInformation optional, + BSSAMAP_IE_SelectedPLMNId selectedPLMNId optional, + BSSAMAP_IE_LastUsedEUTRANPLMNId lastUsedEUTRANPLMNId optional } with { variant "PRESENCE (messageType = '2F'O)" } -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 Gerrit-Change-Number: 23763 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 Apr 15 12:15:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 12:15:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Remove CSFB references from RR Chan Release CellSelectionIndicator IE References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23764 ) Change subject: Remove CSFB references from RR Chan Release CellSelectionIndicator IE ...................................................................... Remove CSFB references from RR Chan Release CellSelectionIndicator IE The IE contains a cell list for the MS to register after the channel is released. The IE is used in CSFB, but not only in that case: it's also used in SRVCC. Hence let's remove the CSFB references since the scope is more wide. Related: SYS#5337 Change-Id: Ia1eeda98fc21aa92bb2e41b5e4761c5cf6516a7e --- M bsc/BSC_Tests.ttcn M library/L3_Templates.ttcn 2 files changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/64/23764/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index e4e2d1a..6170e48 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1748,7 +1748,7 @@ boolean expect_rll_rel_req := true, boolean handle_rll_rel := true, boolean is_csfb := false, - template CellSelIndValue csfb_expect_cells := omit, + template CellSelIndValue expect_cells := omit, template RR_Cause expect_rr_cause := ? ) runs on test_CT { @@ -1767,7 +1767,7 @@ got_deact_sacch := true; repeat; } - [is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CSFB))) -> value ud { + [is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CellSelectInd))) -> value ud { got_rr_chan_rel := true; if (f_rsl_find_ie(ud.rsl, RSL_IE_L3_INFO, l3_ie) == false) { @@ -1776,16 +1776,16 @@ } l3 := dec_PDU_ML3_NW_MS(l3_ie.l3_info.payload); - if (not istemplatekind(csfb_expect_cells, "omit")) { + if (not istemplatekind(expect_cells, "omit")) { var CellSelIndValue cells := dec_CellSelIndValue( l3.msgs.rrm.channelRelease.cellSelectionIndicator.cellSelectionIndicatorValue); - log("GOT RR CHANNEL RELEASE CSFB CELLS: ", cells); - if (match(cells, csfb_expect_cells)) { + log("GOT RR CHANNEL RELEASE WITH CELLS: ", cells); + if (match(cells, expect_cells)) { setverdict(pass); } else { - log("EXPECTED CSFB CELLS: ", csfb_expect_cells); - setverdict(fail, "Received CSFB cells list on RR Channel Release does not match expectations"); + log("EXPECTED CELLS: ", expect_cells); + setverdict(fail, "Received cells list on RR Channel Release does not match expectations"); } } @@ -2323,7 +2323,7 @@ } f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, is_csfb := true, - csfb_expect_cells := expect_cells); + expect_cells := expect_cells); } for (var integer i := 1; i < total_earfcns; i := i + 1) { diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 5bd87eb..5d688de 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -910,7 +910,7 @@ } } -template PDU_ML3_NW_MS tr_RRM_RR_RELEASE_CSFB(template OCT1 cause := ?) modifies tr_RRM_RR_RELEASE := { +template PDU_ML3_NW_MS tr_RRM_RR_RELEASE_CellSelectInd(template OCT1 cause := ?) modifies tr_RRM_RR_RELEASE := { msgs := { rrm := { channelRelease := { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia1eeda98fc21aa92bb2e41b5e4761c5cf6516a7e Gerrit-Change-Number: 23764 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 Apr 15 12:20:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 12:20:26 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Add missing IEs for CommonID In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 ) Change subject: BSSAP_Types.ttcn: Add missing IEs for CommonID ...................................................................... BSSAP_Types.ttcn: Add missing IEs for CommonID Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 --- M src/BSSAP_Types.ttcn 1 file changed, 15 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/titan.ProtocolModules.BSSMAP refs/changes/63/23763/2 -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 Gerrit-Change-Number: 23763 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 13:43:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 15 Apr 2021 13:43:07 +0000 Subject: Change in osmo-iuh[master]: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE ... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/23742 ) Change subject: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0 Gerrit-Change-Number: 23742 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: osmith Gerrit-Comment-Date: Thu, 15 Apr 2021 13:43:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 14:30:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 14:30:31 +0000 Subject: Change in osmo-iuh[master]: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE ... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/23742 ) Change subject: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0 Gerrit-Change-Number: 23742 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: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 15 Apr 2021 14:30: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 Apr 15 14:30:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 14:30:33 +0000 Subject: Change in osmo-iuh[master]: iu_client: Log event sent to upper layer callback In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/23741 ) Change subject: iu_client: Log event sent to upper layer callback ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I2233df2b09ae46f28dd99d7540d71fee8e47b6ff Gerrit-Change-Number: 23741 Gerrit-PatchSet: 1 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: Thu, 15 Apr 2021 14:30: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 Apr 15 14:30:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 14:30:41 +0000 Subject: Change in osmo-iuh[master]: iu_client: Log event sent to upper layer callback In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/23741 ) Change subject: iu_client: Log event sent to upper layer callback ...................................................................... iu_client: Log event sent to upper layer callback Change-Id: I2233df2b09ae46f28dd99d7540d71fee8e47b6ff --- M src/iu_client.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/iu_client.c b/src/iu_client.c index 4b0acb0..06285ec 100644 --- a/src/iu_client.c +++ b/src/iu_client.c @@ -119,6 +119,8 @@ if (!ue_ctx->notification) return 0; + LOGPIU(LOGL_DEBUG, "Submit Iu event to upper layer: %s\n", ranap_iu_event_type_str(type)); + return global_iu_event_cb(ue_ctx, type, data); } -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I2233df2b09ae46f28dd99d7540d71fee8e47b6ff Gerrit-Change-Number: 23741 Gerrit-PatchSet: 1 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 Thu Apr 15 14:30:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 14:30:42 +0000 Subject: Change in osmo-iuh[master]: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE ... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/23742 ) Change subject: ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result ...................................................................... ranap_iu_tx_release_free(): always trigger RANAP_IU_EVENT_IU_RELEASE as a result This allows the SGSN always having feedback on the resolution of the release, hence being able to stay in PMM CONNECTED state until the resolution is received, then moving to PMM IDLE. Related: SYS#5389 Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0 --- M include/osmocom/ranap/iu_client.h M src/iu_client.c 2 files changed, 13 insertions(+), 8 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/ranap/iu_client.h b/include/osmocom/ranap/iu_client.h index 24a5af9..2e72839 100644 --- a/include/osmocom/ranap/iu_client.h +++ b/include/osmocom/ranap/iu_client.h @@ -75,9 +75,9 @@ int ranap_iu_tx_common_id(struct ranap_ue_conn_ctx *ue_ctx, const char *imsi); int ranap_iu_tx_release(struct ranap_ue_conn_ctx *ctx, const struct RANAP_Cause *cause); -/* transmit a Iu Release Command and free the ctx afterwards. - * If a Release Complete is not received within timeout s, - * release the SCCP connection. */ +/* Transmit a Iu Release Command and submit event RANAP_IU_EVENT_IU_RELEASE upon + * Release Complete or timeout. Caller is responsible to free the context and + * closing the SCCP connection (ranap_iu_free_ue) upon recieval of the event. */ void ranap_iu_tx_release_free(struct ranap_ue_conn_ctx *ctx, const struct RANAP_Cause *cause, int timeout); diff --git a/src/iu_client.c b/src/iu_client.c index 06285ec..da433da 100644 --- a/src/iu_client.c +++ b/src/iu_client.c @@ -124,6 +124,12 @@ return global_iu_event_cb(ue_ctx, type, data); } +static void ue_conn_ctx_release_timeout_cb(void *ctx_) +{ + struct ranap_ue_conn_ctx *ctx = (struct ranap_ue_conn_ctx *)ctx_; + global_iu_event(ctx, RANAP_IU_EVENT_IU_RELEASE, NULL); +} + static struct ranap_ue_conn_ctx *ue_conn_ctx_alloc(struct ranap_iu_rnc *rnc, uint32_t conn_id) { struct ranap_ue_conn_ctx *ctx = talloc_zero(talloc_iu_ctx, struct ranap_ue_conn_ctx); @@ -133,7 +139,7 @@ ctx->notification = true; ctx->free_on_release = false; osmo_timer_setup(&ctx->release_timeout, - (void *)(void *) ranap_iu_free_ue, + ue_conn_ctx_release_timeout_cb, ctx); llist_add(&ctx->list, &ue_conn_ctx_list); @@ -501,10 +507,9 @@ ctx->notification = false; ctx->free_on_release = true; int ret = ranap_iu_tx_release(ctx, cause); - if (ret) { - ranap_iu_free_ue(ctx); - return; - } + /* On Tx failure, trigger timeout immediately, as the response will never arrive */ + if (ret) + timeout = 0; osmo_timer_schedule(&ctx->release_timeout, timeout, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/23742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Iac822c74e56750dc40e94573eae0e20853ff68c0 Gerrit-Change-Number: 23742 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: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 14:31:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 14:31:38 +0000 Subject: Change in libosmocore[master]: cosmetic: Fix trailing whitespace In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23759 ) Change subject: cosmetic: Fix trailing whitespace ...................................................................... cosmetic: Fix trailing whitespace Change-Id: Ib79b0e0c728a7f4de0b3884785c73ab2d0d44f4e --- M include/osmocom/gsm/gsm0808.h 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 20137da..b921eda 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -255,7 +255,7 @@ bool chosen_encr_alg_present; uint8_t chosen_encr_alg; - + bool chosen_channel_present; uint8_t chosen_channel; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib79b0e0c728a7f4de0b3884785c73ab2d0d44f4e Gerrit-Change-Number: 23759 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 14:35:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 14:35:44 +0000 Subject: Change in osmo-bsc[master]: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND 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/+/23733 to look at the new patch set (#2). Change subject: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND ...................................................................... bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND This change will allow handling more IEs in the future, like "Last used E-UTRAN PLMN ID" one. Related: SYS#5337 Change-Id: I96a0e1a7491fabf7aaad62207886821ad6194927 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c 2 files changed, 11 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/33/23733/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I96a0e1a7491fabf7aaad62207886821ad6194927 Gerrit-Change-Number: 23733 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 14:35:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 14:35:44 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 to look at the new patch set (#3). Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID >From 3GPP TS 48.008 sec 3.1.30 "Common ID": """ If the SCCP connection is established due to CSFB from E-UTRAN and the MSC supports return to the last used PLMN after CS fallback, then it should send the COMMON ID message to the BSS including the Last used E-UTRAN PLMN ID information element if available at the MSC immediately following the successful SCCP connection setup. """ Furthermore, 3GPP TS 48.008 version 16.0.0 Release 16 "3.2.1.21 CLEAR COMMAND", for field CSFB Indication, states: """ NOTE: This information element doesn't serve any useful purpose. MSCs should not send the information element unless it is required by the recipients (due to the need to interwork with older versions of the protocol). It is expected that in future versions of the present document, this information element will be deleted from this message. """ Hence, build up the EUTRAN neighbor list based on whether we received the Last E-UTRAN PLMN ID IE during Common Id. In the future, we should probably filter the list while populating it based on the received IE. This change will also allow reusing same mechanism for SRVCC EUTRAN->GERAN support, where te Last E-UTRAN PLMN ID IE can be found inside "Old BSS to New BSS information" IE in msg HANDOVER REQUEST. Related: SYS#5337 Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 --- M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c 6 files changed, 16 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/34/23734/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 14:44:46 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 15 Apr 2021 14:44:46 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23760 ) Change subject: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23760/2/include/osmocom/gsm/gsm0808.h File include/osmocom/gsm/gsm0808.h: https://gerrit.osmocom.org/c/libosmocore/+/23760/2/include/osmocom/gsm/gsm0808.h at 133 PS2, Line 133: bool more_items; /*< always set this to false */ > That's indeed a good question, and tbh I don't fully understand why a lot of structs in this file ha [?] Huh, that looks odd but interesting. Theoretically you can detect the ABI changes by checking if this field holds false. Once can even add a sequence of magic bytes here, but is the actual checking logic even implemented anywhere? And aren't there any compiler facilities for that? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 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-CC: osmith Gerrit-Comment-Date: Thu, 15 Apr 2021 14:44:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 14:47:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 14:47:58 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23760 ) Change subject: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23760/2/include/osmocom/gsm/gsm0808.h File include/osmocom/gsm/gsm0808.h: https://gerrit.osmocom.org/c/libosmocore/+/23760/2/include/osmocom/gsm/gsm0808.h at 133 PS2, Line 133: bool more_items; /*< always set this to false */ > Huh, that looks odd but interesting. [?] Sure you could detect ABI breakage, but other than detect it and then erroring and existing there's not much one can do, so I don't see the point.... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 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-CC: osmith Gerrit-Comment-Date: Thu, 15 Apr 2021 14:47:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith 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 Apr 15 16:19:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 15 Apr 2021 16:19:26 +0000 Subject: Change in osmo-bsc[master]: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23733 ) Change subject: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I96a0e1a7491fabf7aaad62207886821ad6194927 Gerrit-Change-Number: 23733 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 15 Apr 2021 16:19:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 16:19:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 15 Apr 2021 16:19:37 +0000 Subject: Change in osmo-bsc[master]: cosmetic: Fix typo in func description In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23754 ) Change subject: cosmetic: Fix typo in func description ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I26cd31bc3e127cba17be508d10a5fd3cf6498901 Gerrit-Change-Number: 23754 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 15 Apr 2021 16:19:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 16:56:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 16:56:39 +0000 Subject: Change in osmo-bsc[master]: cosmetic: Fix typo in func description In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23754 ) Change subject: cosmetic: Fix typo in func description ...................................................................... cosmetic: Fix typo in func description Change-Id: I26cd31bc3e127cba17be508d10a5fd3cf6498901 --- M src/osmo-bsc/gsm_04_08_rr.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 4a47c66..58913e2 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -244,7 +244,7 @@ #define CELL_SEL_IND_AFTER_REL_MAX_BYTES OSMO_BYTES_FOR_BITS(CELL_SEL_IND_AFTER_REL_MAX_BITS) /* Generate a CSN.1 encoded "Cell Selection Indicator after release of all TCH and SDCCH" - * as per TF 44.018 version 15.3.0 Table 10.5.2.1e.1. This only generates the "value" + * as per TS 44.018 version 15.3.0 Table 10.5.2.1e.1. This only generates the "value" * part of the IE, not the tag+length wrapper */ static int generate_cell_sel_ind_after_rel(uint8_t *out, unsigned int out_len, const struct gsm_bts *bts) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I26cd31bc3e127cba17be508d10a5fd3cf6498901 Gerrit-Change-Number: 23754 Gerrit-PatchSet: 3 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 Thu Apr 15 17:35:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 17:35:16 +0000 Subject: Change in osmo-bsc[master]: WIP: debug References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23765 ) Change subject: WIP: debug ...................................................................... WIP: debug Change-Id: Ib2772b64820d95183353dbb776141ee66a57c221 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/lchan_fsm.c 2 files changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/23765/1 diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 5632230..2968080 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -887,6 +887,8 @@ osmo_plmn_from_bcd(TLVP_VAL(tp, GSM0808_IE_LAST_USED_EUTRAN_PLMN_ID), &conn->bsub->last_eutran_plmn); LOGPFSML(fi, LOGL_DEBUG, "subscr comes from E-UTRAN PLMN %s\n", osmo_plmn_name(&conn->bsub->last_eutran_plmn)); + } else { + LOGPFSML(fi, LOGL_ERROR, "pespin: subscr has no Last used E-UTRAN PLMN!\n"); } gscon_update_id(conn); break; diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index c20e286..f152849 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -1606,8 +1606,12 @@ lchan->release.do_rr_release = do_rr_release; lchan->release.rr_cause = cause_rr; if (last_eutran_plmn) { + LOGPFSML(lchan->fi, LOGL_DEBUG, "release lchan coming from E-UTRAN PLMN %s\n", + osmo_plmn_name(last_eutran_plmn)); lchan->release.has_last_eutran_plmn = true; memcpy(&lchan->release.last_eutran_plmn, last_eutran_plmn, sizeof(*last_eutran_plmn)); + } else { + LOGPFSML(lchan->fi, LOGL_NOTICE, "release lchan has no EUTRAN PLMN!!!!\n"); } /* States waiting for events will notice the desire to release when done waiting, so it is enough -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib2772b64820d95183353dbb776141ee66a57c221 Gerrit-Change-Number: 23765 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 Apr 15 17:35:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 17:35:23 +0000 Subject: Change in osmo-bsc[master]: WIP: debug In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23765 ) Change subject: WIP: debug ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib2772b64820d95183353dbb776141ee66a57c221 Gerrit-Change-Number: 23765 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 17:37:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 17:37:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23766 ) Change subject: BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields ...................................................................... BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields Depends: titan.ProtocolModules.BSSMAP Change-Id I5103ceb2656a41925a089af5492d0722ca87a5c7 Related: SYS#5337 Change-Id: I9cc4d161fa7083e30d3bf8f10e959d1fe7b86032 --- M deps/Makefile M library/BSSMAP_Templates.ttcn 2 files changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/66/23766/1 diff --git a/deps/Makefile b/deps/Makefile index c63dca7..188139e 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -83,7 +83,7 @@ titan.ProtocolEmulations.SCCP_commit= R.7.A-11-gd4b7a6d titan.ProtocolModules.BSSAPP_v7.3.0_commit= R.2.A-4-g20cfaf8 titan.ProtocolModules.BSSGP_v13.0.0_commit= e97d92a8b66bec399babea52f593771b76cb175a -titan.ProtocolModules.BSSMAP_commit= master +titan.ProtocolModules.BSSMAP_commit= pespin/srvcc titan.ProtocolModules.DNS_commit= R.7.B titan.ProtocolModules.GRE_commit= R.2.A-5-g654c446 titan.ProtocolModules.GTP_v13.5.0_commit= R.2.A-5-ge120ace diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index da822a9..a323502 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1665,7 +1665,9 @@ commonID := { messageType := '2F'O, iMSI := ts_BSSMAP_Imsi(imsi_digits), - sNAAccessInformation := omit + sNAAccessInformation := omit, + selectedPLMNId := omit, + lastUsedEUTRANPLMNId := omit } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9cc4d161fa7083e30d3bf8f10e959d1fe7b86032 Gerrit-Change-Number: 23766 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 Apr 15 17:37:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 17:37:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP: Support setting LastUsedPLMNId in CommonId msg References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23767 ) Change subject: BSSMAP: Support setting LastUsedPLMNId in CommonId msg ...................................................................... BSSMAP: Support setting LastUsedPLMNId in CommonId msg Related: SYS#5337 Change-Id: I1b7c7fbe010033e726dde3c68152543a63760ffd --- M library/BSSMAP_Templates.ttcn 1 file changed, 17 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/67/23767/1 diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index a323502..458fa48 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1110,6 +1110,20 @@ digits := imsi_digits } +template (value) BSSAMAP_IE_LastUsedEUTRANPLMNId ts_BSSMAP_LastUsedEUTRANPLMNId(OCT3 mcc_mnc) := { + elementIdentifier := '95'O, + mcc_mnc := mcc_mnc +} + +function f_ts_BSSMAP_LastUsedEUTRANPLMNId(template (omit) OCT3 mcc_mnc) + return template (omit) BSSAMAP_IE_LastUsedEUTRANPLMNId { + if (not istemplatekind(mcc_mnc, "omit")) { + return ts_BSSMAP_LastUsedEUTRANPLMNId(valueof(mcc_mnc)); + } else { + return omit; + } +} + template BSSMAP_FIELD_CellIdentificationList ts_BSSMAP_CIL_noCell := { cIl_noCell := ''O } @@ -1658,7 +1672,8 @@ } } -template PDU_BSSAP ts_BSSMAP_CommonId(hexstring imsi_digits) +template PDU_BSSAP ts_BSSMAP_CommonId(hexstring imsi_digits, + template (omit) OCT3 last_eutran_plmn := omit) modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { @@ -1667,7 +1682,7 @@ iMSI := ts_BSSMAP_Imsi(imsi_digits), sNAAccessInformation := omit, selectedPLMNId := omit, - lastUsedEUTRANPLMNId := omit + lastUsedEUTRANPLMNId := f_ts_BSSMAP_LastUsedEUTRANPLMNId(last_eutran_plmn) } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1b7c7fbe010033e726dde3c68152543a63760ffd Gerrit-Change-Number: 23767 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 Apr 15 17:37:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 17:37:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Update and add tests checking Last Used EUTRAN PLMN Id References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23768 ) Change subject: bsc: Update and add tests checking Last Used EUTRAN PLMN Id ...................................................................... bsc: Update and add tests checking Last Used EUTRAN PLMN Id CSFB indicator shouldn't be used as stated in the specs. Rather, BSC should act based on "Last Used E-UTRAN PLMN Id" found in messages such as Common Id, or Handover Request/Required. Related: SYS#5337 Related: osmo-bsc.git Change-Id I5d290ac55eca5adde1c33396422f4c10b83c03d5 Change-Id: I7b2e5a3ad24c10e279a7f1c447804100168203ba --- M bsc/BSC_Tests.ttcn 1 file changed, 62 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/68/23768/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 6170e48..f062274 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1747,7 +1747,6 @@ boolean expect_rr_chan_rel := true, boolean expect_rll_rel_req := true, boolean handle_rll_rel := true, - boolean is_csfb := false, template CellSelIndValue expect_cells := omit, template RR_Cause expect_rr_cause := ? ) runs on test_CT { @@ -1767,7 +1766,7 @@ got_deact_sacch := true; repeat; } - [is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CellSelectInd))) -> value ud { + [not istemplatekind(expect_cells, "omit")] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CellSelectInd))) -> value ud { got_rr_chan_rel := true; if (f_rsl_find_ie(ud.rsl, RSL_IE_L3_INFO, l3_ie) == false) { @@ -1801,7 +1800,7 @@ } repeat; } - [not is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) -> value ud { + [istemplatekind(expect_cells, "omit")] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) -> value ud { got_rr_chan_rel := true; if (not istemplatekind(expect_rr_cause, "omit")) { @@ -1877,7 +1876,62 @@ f_shutdown_helper(); } -/* Test behavior of channel release after Clear Command with CSFB indicator from MSC */ +function f_TC_chan_rel_last_eutran_plmn_hard_clear(boolean tx_csfb_ind) runs on test_CT { + var BSSAP_N_DATA_ind rx_di; + var DchanTuple dt; + + f_init(1); + + dt := f_est_dchan('23'O, 23, '00010203040506'O); + /* Send CommonID with some random PLMN (BSC doesn't take it into account + /* yet when generating the EUTRAN neigh list in RR CHannel Release) */ + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_CommonId('001019876543210'H, '323454'O))); + + /* Instruct BSC to clear channel */ + var BssmapCause cause := 0; + if (tx_csfb_ind) { + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommandCSFB(cause))); + } else { + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); + } + + /* expect Clear Complete from BSC on A */ + BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)) { + /* release the SCCP connection */ + BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + } + + /* 1 neighbor is added by default in osmo-bts.cfg and + SystemInformationConfig_default, use that: */ + var template CellSelIndValue exp_cells := f_tr_rr_chan_rel_earfcns(1); + + f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, expect_cells := exp_cells); + f_shutdown_helper(); +} + +/* Test behavior of RR Channel rRelease after Clear Command without CSFB indicator + from MSC, previously receiving any CommonID containing the "Last Used E-UTRAN + PLMN Id". According to spec (3GPP TS 48.008 sec 3.1.30) that's the bit requesting + EUTRAN neighbor list sent later on by BSC in RR Channel, so receiving CSFB + Indicator or not shouldn't matter at all. */ +testcase TC_chan_rel_last_eutran_plmn_hard_clear_no_csfb() runs on test_CT { + f_TC_chan_rel_last_eutran_plmn_hard_clear(false); +} + +/* Test behavior of RR Channel rRelease after Clear Command with CSFB indicator from + MSC, previously receiving any CommonID containing the "Last Used E-UTRAN PLMN + Id". According to spec (3GPP TS 48.008 sec 3.1.30) that's the bit requesting + EUTRAN neighbor list sent later on by BSC in RR Channel. */ +testcase TC_chan_rel_last_eutran_plmn_hard_clear_csfb() runs on test_CT { + f_TC_chan_rel_last_eutran_plmn_hard_clear(true); +} + +/* Test behavior of RR Channel Release after Clear Command with CSFB indicator from + MSC, without receiving any CommonID containing the "Last Used E-UTRAN PLMN + Id". According to spec (TS 48.008 version 16.0.0 Release 16 "3.2.1.21") the + CSFB Indicator should not be used anymore, and hence, there should be no + EUTRAN neighbor list sent by BSC in RR Channel release since no CommonId with + Last Used E-UTRAN PLMN Id" IE was sent for this conn. */ testcase TC_chan_rel_hard_clear_csfb() runs on test_CT { var BSSAP_N_DATA_ind rx_di; var DchanTuple dt; @@ -1896,7 +1950,7 @@ BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); } - f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, is_csfb := true); + f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false); f_shutdown_helper(); } @@ -2322,8 +2376,7 @@ BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); } - f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, is_csfb := true, - expect_cells := expect_cells); + f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, expect_cells := expect_cells); } for (var integer i := 1; i < total_earfcns; i := i + 1) { @@ -8453,6 +8506,8 @@ execute( TC_chan_rel_rll_rel_ind() ); execute( TC_chan_rel_conn_fail() ); execute( TC_chan_rel_hard_clear() ); + execute( TC_chan_rel_last_eutran_plmn_hard_clear_no_csfb() ); + execute( TC_chan_rel_last_eutran_plmn_hard_clear_csfb() ); execute( TC_chan_rel_hard_clear_csfb() ); execute( TC_chan_rel_hard_rlsd() ); execute( TC_chan_rel_hard_rlsd_ms_dead() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7b2e5a3ad24c10e279a7f1c447804100168203ba Gerrit-Change-Number: 23768 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 Apr 15 17:51:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 15 Apr 2021 17:51:58 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Fix trailing whitespace In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 ) Change subject: BSSAP_Types.ttcn: Fix trailing whitespace ...................................................................... Patch Set 1: I have serious doubts if upstream would want to merge such a patch. As we don't want to maintain forks, I think it is not the best idea to make a functional fix (or feature addition) dependant on tons of whitespace changes. Please see if you can get this mergred upstream, and if not you will then have to rebase/rework your CommonID patch without these changes here. -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 Gerrit-Change-Number: 23762 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 15 Apr 2021 17:51:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 17:52:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 15 Apr 2021 17:52:53 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Add missing IEs for CommonID In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 ) Change subject: BSSAP_Types.ttcn: Add missing IEs for CommonID ...................................................................... Patch Set 2: Code-Review+1 looks good, please make sure to submit those kind of changes upstream ASAP -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 Gerrit-Change-Number: 23763 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 15 Apr 2021 17:52: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 Apr 15 17:55:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 17:55:20 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Fix trailing whitespace In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 ) Change subject: BSSAP_Types.ttcn: Fix trailing whitespace ...................................................................... Patch Set 1: Indeed, I agree, I was planning to first get this merged upstream. -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 Gerrit-Change-Number: 23762 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 15 Apr 2021 17:55:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 18:01:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 15 Apr 2021 18:01:33 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Fix trailing whitespace In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 ) Change subject: BSSAP_Types.ttcn: Fix trailing whitespace ...................................................................... Patch Set 1: Code-Review+1 Looks like it's their special style of coding. I mean, it's really too much of ws. -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 Gerrit-Change-Number: 23762 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 15 Apr 2021 18:01:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 18:04:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 15 Apr 2021 18:04:20 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Add missing IEs for CommonID In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 ) Change subject: BSSAP_Types.ttcn: Add missing IEs for CommonID ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 Gerrit-Change-Number: 23763 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 15 Apr 2021 18:04: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 Apr 15 18:04:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 18:04:46 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Add missing IEs for CommonID In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 ) Change subject: BSSAP_Types.ttcn: Add missing IEs for CommonID ...................................................................... Patch Set 2: https://git.eclipse.org/r/c/titan/titan.ProtocolModules.BSSMAP_v11.2.0/+/179397 -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 Gerrit-Change-Number: 23763 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 15 Apr 2021 18:04: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 Apr 15 18:05:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 18:05:24 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Fix trailing whitespace In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 ) Change subject: BSSAP_Types.ttcn: Fix trailing whitespace ...................................................................... Patch Set 1: https://git.eclipse.org/r/c/titan/titan.ProtocolModules.BSSMAP_v11.2.0/+/179396 -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 Gerrit-Change-Number: 23762 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 15 Apr 2021 18:05: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 Apr 15 19:03:42 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 15 Apr 2021 19:03:42 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Fix trailing whitespace In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 ) Change subject: BSSAP_Types.ttcn: Fix trailing whitespace ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 Gerrit-Change-Number: 23762 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 15 Apr 2021 19:03: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 Apr 15 19:04:46 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 15 Apr 2021 19:04:46 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Add missing IEs for CommonID In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 ) Change subject: BSSAP_Types.ttcn: Add missing IEs for CommonID ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 Gerrit-Change-Number: 23763 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 15 Apr 2021 19: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 Apr 15 19:06:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 15 Apr 2021 19:06:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Update and add tests checking Last Used EUTRAN PLMN Id In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23768 ) Change subject: bsc: Update and add tests checking Last Used EUTRAN PLMN Id ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7b2e5a3ad24c10e279a7f1c447804100168203ba Gerrit-Change-Number: 23768 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 15 Apr 2021 19:06: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 Apr 15 19:11:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 15 Apr 2021 19:11:09 +0000 Subject: Change in osmo-bsc[master]: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23733 ) Change subject: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I96a0e1a7491fabf7aaad62207886821ad6194927 Gerrit-Change-Number: 23733 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 15 Apr 2021 19:11: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 Apr 15 19:32:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 19:32:26 +0000 Subject: Change in osmo-bsc[master]: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23733 ) Change subject: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I96a0e1a7491fabf7aaad62207886821ad6194927 Gerrit-Change-Number: 23733 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 15 Apr 2021 19:32: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 Apr 15 19:32:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 15 Apr 2021 19:32:29 +0000 Subject: Change in osmo-bsc[master]: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23733 ) Change subject: bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND ...................................................................... bssap: pass whole tlv_parsed to event GSCON_EV_A_COMMON_ID_IND This change will allow handling more IEs in the future, like "Last used E-UTRAN PLMN ID" one. Related: SYS#5337 Change-Id: I96a0e1a7491fabf7aaad62207886821ad6194927 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c 2 files changed, 11 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 954c6a5..a0c53cb 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -809,7 +809,8 @@ { struct gsm_subscriber_connection *conn = fi->priv; const struct gscon_clear_cmd_data *ccd; - struct osmo_mobile_identity *mi_imsi; + const struct tlv_parsed *tp; + struct osmo_mobile_identity mi_imsi; /* Regular allstate event processing */ switch (event) { @@ -868,14 +869,19 @@ break; case GSCON_EV_A_COMMON_ID_IND: OSMO_ASSERT(data); - mi_imsi = data; + tp = data; + if (osmo_mobile_identity_decode(&mi_imsi, TLVP_VAL(tp, GSM0808_IE_IMSI), TLVP_LEN(tp, GSM0808_IE_IMSI), false) + || mi_imsi.type != GSM_MI_TYPE_IMSI) { + LOGPFSML(fi, LOGL_ERROR, "CommonID: could not parse IMSI\n"); + return; + } if (!conn->bsub) - conn->bsub = bsc_subscr_find_or_create_by_imsi(conn->network->bsc_subscribers, mi_imsi->imsi, + conn->bsub = bsc_subscr_find_or_create_by_imsi(conn->network->bsc_subscribers, mi_imsi.imsi, BSUB_USE_CONN); else { /* we already have a bsc_subscr associated; maybe that subscriber has no IMSI yet? */ if (!conn->bsub->imsi[0]) - bsc_subscr_set_imsi(conn->bsub, mi_imsi->imsi); + bsc_subscr_set_imsi(conn->bsub, mi_imsi.imsi); } gscon_update_id(conn); break; diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 9d78153..b558fae 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -1072,7 +1072,6 @@ struct msgb *msg, unsigned int length) { struct tlv_parsed tp; - struct osmo_mobile_identity mi_imsi; osmo_bssap_tlv_parse(&tp, msg->l4h + 1, length - 1); @@ -1084,13 +1083,7 @@ return -EINVAL; } - if (osmo_mobile_identity_decode(&mi_imsi, TLVP_VAL(&tp, GSM0808_IE_IMSI), TLVP_LEN(&tp, GSM0808_IE_IMSI), false) - || mi_imsi.type != GSM_MI_TYPE_IMSI) { - LOGPFSML(conn->fi, LOGL_ERROR, "CommonID: could not parse IMSI\n"); - return -EINVAL; - } - - osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_COMMON_ID_IND, &mi_imsi); + osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_COMMON_ID_IND, &tp); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I96a0e1a7491fabf7aaad62207886821ad6194927 Gerrit-Change-Number: 23733 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 15 19:42:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 15 Apr 2021 19:42:38 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 to look at the new patch set (#8). Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... TRXD: add documentation for TRXDv2 protocol Change-Id: I03b2beeb535848b31fd629ba3cd330b43072c08b Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 254 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/67/22867/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 8 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith 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 Apr 15 20:01:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 15 Apr 2021 20:01:54 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 to look at the new patch set (#9). Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... TRXD: add documentation for TRXDv2 protocol Change-Id: I03b2beeb535848b31fd629ba3cd330b43072c08b Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 252 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/67/22867/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 9 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith 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 Apr 15 20:04:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 15 Apr 2021 20:04:45 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 to look at the new patch set (#10). Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... TRXD: add documentation for TRXDv2 protocol Change-Id: I03b2beeb535848b31fd629ba3cd330b43072c08b Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 252 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/67/22867/10 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 10 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith 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 Apr 15 20:22:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 15 Apr 2021 20:22:40 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 to look at the new patch set (#11). Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... TRXD: add documentation for TRXDv2 protocol Change-Id: I03b2beeb535848b31fd629ba3cd330b43072c08b Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 257 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/67/22867/11 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 11 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith 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 Apr 15 20:23:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 15 Apr 2021 20:23:09 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: change coding of 'PWR' and 'SCPIR' fields In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23745 ) Change subject: trx_toolkit: change coding of 'PWR' and 'SCPIR' fields ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I482f72fd9305c51f43a0339d03904fb693d90ac9 Gerrit-Change-Number: 23745 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 15 Apr 2021 20:23: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 Apr 16 05:18:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 05:18:19 +0000 Subject: Change in osmo-bts[master]: manuals: remove deprecated command line parameters References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23769 ) Change subject: manuals: remove deprecated command line parameters ...................................................................... manuals: remove deprecated command line parameters Change-Id: Ie49abeb9647e3c8abdc9e110ab1a71c116f5def6 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 1 insertion(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/69/23769/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 772d8da..2ec5293 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -19,7 +19,7 @@ generic command line options: ==== SYNOPSIS -*osmo-bts-sysmo* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE' ] [-s] [-T] [-e 'LOGLEVEL'] [-r 'PRIO'] [-i 'GSMTAP-IP'] [-t <1-255>] +*osmo-bts-sysmo* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE' ] [-s] [-T] [-e 'LOGLEVEL'] ==== OPTIONS *-h, --help*:: @@ -48,16 +48,6 @@ Set the global log level for logging to stderr. This has mostly been deprecated by VTY based logging configuration, see <> for further information. -*-r, --realtime 'PRIO'*:: - Enable use of the Linux kernel realtime priority scheduler with - the specified priority. - It is recommended you use this option on low-performance - embedded systems or systems that encounter high non-GSM/GPRS - load. -*-i, --gsmtap-ip 'GSMTAP-IP'*:: - Specify the destination IP address for GSMTAP messages. -*-t, --trx-num <1-255>*:: - Specify the number of TRX supported by this BTS. There may be additional, hardware specific command line options by the different bts_model implementations. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie49abeb9647e3c8abdc9e110ab1a71c116f5def6 Gerrit-Change-Number: 23769 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 Apr 16 05:18:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 05:18:21 +0000 Subject: Change in osmo-bts[master]: manuals: document new 'gsmtap-remote-host' command References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23770 ) Change subject: manuals: document new 'gsmtap-remote-host' command ...................................................................... manuals: document new 'gsmtap-remote-host' command Change-Id: I7f75fbac77a612493ce187cfac3c4ae203c81b23 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 17 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/70/23770/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 2ec5293..ff1730a 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -108,11 +108,22 @@ *tcpdump* or *tshark* for further analysis by the *wireshark* protocol analyzer. -In order to activate this feature, you first need to make sure to start -OsmoBTS using the `-i` or `--gsmtap-ip` command line option, specifying -the destination IP address for the GSMTAP messages. In most cases, -using 127.0.0.1 for passing the messages over the loopback (`lo`) device -will be sufficient. +In order to activate this feature, you first need to make sure to specify +the remote address of _GSMTAP_ host in the configuration file. In most +cases, using 127.0.0.1 for passing the messages over the loopback (`lo`) +device will be sufficient: + +.Example: Enabling GSMTAP Um-frame logging to localhost +---- +bts 0 + gsmtap-remote-host 127.0.0.1 <1> +---- +<1> Destination address for _GSMTAP_ Um-frames + +NOTE: Changing this parameter at run-time will not affect the existing +_GSMTAP_ connection, full program restart is required. + +NOTE: Command line parameters `-i` and `--gsmtap-ip` have been deprecated. OsmoBTS can selectively trace such messages by their L1 SAPI, for both Rx and Tx. For a complete list of L1 SAPI values, please refer to the @@ -140,8 +151,7 @@ From the moment they are enabled via VTY, GSMTAP messages will be generated and sent in UDP encapsulation to the IANA-registered UDP port -for GSMTAP (4729) at the IP address specified in the command line -argument. +for GSMTAP (4729) of the specified remote address. ==== Configuring power ramping -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7f75fbac77a612493ce187cfac3c4ae203c81b23 Gerrit-Change-Number: 23770 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 Apr 16 05:18:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 05:18:21 +0000 Subject: Change in osmo-bts[master]: manuals: fix wrong VTY node for 'gsmtap-sapi' command References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23771 ) Change subject: manuals: fix wrong VTY node for 'gsmtap-sapi' command ...................................................................... manuals: fix wrong VTY node for 'gsmtap-sapi' command Change-Id: Ifcf1cf9cdbad40862d48415e004865a91a61d1b1 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/23771/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index ff1730a..45160e7 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -138,8 +138,7 @@ OsmoBTS> enable OsmoBTS# configure terminal OsmoBTS(config)# bts 0 -OsmoBTS(bts)# trx 0 -OsmoBTS(trx)# gsmtap-sapi sdcch +OsmoBTS(bts)# gsmtap-sapi sdcch OsmoBTS(trx)# write <1> ---- <1> the `write` command will make the configuration persistent in the @@ -147,7 +146,7 @@ only in the current session of OsmoBTS. De-activation can be performed similarly by using the `no gsmtap-sapi -sdcch` command at the `trx` node of the OsmoBTS VTY. +sdcch` command at the `bts` node of the OsmoBTS VTY. From the moment they are enabled via VTY, GSMTAP messages will be generated and sent in UDP encapsulation to the IANA-registered UDP port -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifcf1cf9cdbad40862d48415e004865a91a61d1b1 Gerrit-Change-Number: 23771 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 Apr 16 05:18:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 05:18:22 +0000 Subject: Change in osmo-bts[master]: manuals: document GSMTAP 'enable-all' / 'disable-all' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23772 ) Change subject: manuals: document GSMTAP 'enable-all' / 'disable-all' ...................................................................... manuals: document GSMTAP 'enable-all' / 'disable-all' Change-Id: Iadbcf9d3184ab17c11c51e191aa3e80665839c22 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/72/23772/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 45160e7..f6ca75e 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -148,6 +148,20 @@ De-activation can be performed similarly by using the `no gsmtap-sapi sdcch` command at the `bts` node of the OsmoBTS VTY. +It may be useful to enable all SAPIs with a few exceptions, or vice versa +disable everything using one command. For this purpose, the VTY provides +`gsmtap-sapi enable-all` and `gsmtap-sapi disable-all` commands. + +.Example: Enabling all SAPIs except PDTCH and PTCCH +---- +bts 0 + gsmtap-sapi enable-all <1> + no gsmtap-sapi pdtch <2> + no gsmtap-sapi ptcch <2> +---- +<1> Enable all available SAPIs +<2> Exclude PDTCH and PTCCH SAPIs + From the moment they are enabled via VTY, GSMTAP messages will be generated and sent in UDP encapsulation to the IANA-registered UDP port for GSMTAP (4729) of the specified remote address. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iadbcf9d3184ab17c11c51e191aa3e80665839c22 Gerrit-Change-Number: 23772 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 Apr 16 05:49:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 05:49:08 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23773 ) Change subject: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands ...................................................................... osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands * Remove way too verbose command description. We have the manuals for explaining how things work, so let's avoid overloading commands with too many details. * None of these commands apply immediately, correct the attributes. ** Remove meaningless call to l1if_provision_transceiver_trx(). * Make 'maxdlynb' hidden, so it only appears in the expert mode. * One GMSK symbol actually corresponds to 550m. Change-Id: I46839cf56bba2dcdc70303cd393e86d35aa2f3f5 --- M src/osmo-bts-trx/trx_vty.c 1 file changed, 13 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/23773/1 diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 8e701ea..9a205d5 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -235,18 +235,12 @@ return CMD_SUCCESS; } -DEFUN_ATTR(cfg_phyinst_maxdly, cfg_phyinst_maxdly_cmd, - "osmotrx maxdly <0-31>", - OSMOTRX_STR - "Set the maximum acceptable delay of an Access Burst (in GSM symbols)." - " Access Burst is the first burst a mobile transmits in order to establish" - " a connection and it is used to estimate Timing Advance (TA) which is" - " then applied to Normal Bursts to compensate for signal delay due to" - " distance. So changing this setting effectively changes maximum range of" - " the cell, because if we receive an Access Burst with a delay higher than" - " this value, it will be ignored and connection is dropped.\n" - "GSM symbols (approx. 1.1km per symbol)\n", - CMD_ATTR_IMMEDIATE) +DEFUN_USRATTR(cfg_phyinst_maxdly, cfg_phyinst_maxdly_cmd, + X(BTS_VTY_TRX_POWERCYCLE), + "osmotrx maxdly <0-31>", + OSMOTRX_STR + "Set the maximum acceptable delay of an Access Burst\n" + "Delay in GSM symbols (approx. 550m per symbol)\n") { struct phy_instance *pinst = vty->index; struct trx_l1h *l1h = pinst->u.osmotrx.hdl; @@ -254,25 +248,17 @@ l1h->config.maxdly = atoi(argv[0]); l1h->config.maxdly_valid = 1; l1h->config.maxdly_sent = false; - l1if_provision_transceiver_trx(l1h); return CMD_SUCCESS; } -DEFUN_ATTR(cfg_phyinst_maxdlynb, cfg_phyinst_maxdlynb_cmd, - "osmotrx maxdlynb <0-31>", - OSMOTRX_STR - "Set the maximum acceptable delay of a Normal Burst (in GSM symbols)." - " USE FOR TESTING ONLY, DON'T CHANGE IN PRODUCTION USE!" - " During normal operation, Normal Bursts delay are controlled by a Timing" - " Advance control loop and thus Normal Bursts arrive to a BTS with no more" - " than a couple GSM symbols, which is already taken into account in osmo-trx." - " So changing this setting will have no effect in production installations" - " except increasing osmo-trx CPU load. This setting is only useful when" - " testing with a transmitter which can't precisely synchronize to the BTS" - " downlink signal, like e.g. R&S CMD57.\n" - "GSM symbols (approx. 1.1km per symbol)\n", - CMD_ATTR_IMMEDIATE) +DEFUN_ATTR_USRATTR(cfg_phyinst_maxdlynb, cfg_phyinst_maxdlynb_cmd, + CMD_ATTR_HIDDEN, /* expert mode command */ + X(BTS_VTY_TRX_POWERCYCLE), + "osmotrx maxdlynb <0-31>", + OSMOTRX_STR + "Set the maximum acceptable delay of a Normal Burst\n" + "Delay in GSM symbols (approx. 550m per symbol)\n") { struct phy_instance *pinst = vty->index; struct trx_l1h *l1h = pinst->u.osmotrx.hdl; @@ -280,7 +266,6 @@ l1h->config.maxdlynb = atoi(argv[0]); l1h->config.maxdlynb_valid = 1; l1h->config.maxdlynb_sent = false; - l1if_provision_transceiver_trx(l1h); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I46839cf56bba2dcdc70303cd393e86d35aa2f3f5 Gerrit-Change-Number: 23773 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 Apr 16 05:55:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 05:55:04 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23774 ) Change subject: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command ...................................................................... osmo-bts-trx: correct definition of 'osmotrx rx-gain' command * Calling l1if_provision_transceiver_trx() yelds nothing. * It does not apply immediately, full restart required. Change-Id: I93c9e19d0543f19528cec842b8be332b4d93214e --- M src/osmo-bts-trx/trx_vty.c 1 file changed, 6 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/23774/1 diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 9a205d5..86de602 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -342,12 +342,12 @@ return CMD_SUCCESS; } -DEFUN_ATTR(cfg_phyinst_rxgain, cfg_phyinst_rxgain_cmd, - "osmotrx rx-gain <0-50>", - OSMOTRX_STR - "Set the receiver gain in dB\n" - "Gain in dB\n", - CMD_ATTR_IMMEDIATE) +DEFUN_USRATTR(cfg_phyinst_rxgain, cfg_phyinst_rxgain_cmd, + X(BTS_VTY_TRX_POWERCYCLE), + "osmotrx rx-gain <0-50>", + OSMOTRX_STR + "Set the receiver gain in dB\n" + "Gain in dB\n") { struct phy_instance *pinst = vty->index; struct trx_l1h *l1h = pinst->u.osmotrx.hdl; @@ -355,7 +355,6 @@ l1h->config.rxgain = atoi(argv[0]); l1h->config.rxgain_valid = 1; l1h->config.rxgain_sent = false; - l1if_provision_transceiver_trx(l1h); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c9e19d0543f19528cec842b8be332b4d93214e Gerrit-Change-Number: 23774 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 Apr 16 10:10:06 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 16 Apr 2021 10:10:06 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23774 ) Change subject: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command ...................................................................... Patch Set 1: Code-Review+1 (2 comments) technically this should be fine. However, when I did the tagging of VTY commands I git the impression that l1if_provision_transceiver_trx() would negotiate the new rx-gain value. Apparantly this is not the case or does not work (I see l1if_provision_transceiver_trx() is not called anymore by the VTY). https://gerrit.osmocom.org/c/osmo-bts/+/23774/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/23774/1//COMMIT_MSG at 9 PS1, Line 9: * Calling l1if_provision_transceiver_trx() yelds nothing. typo "yelds" should be "yield" ? https://gerrit.osmocom.org/c/osmo-bts/+/23774/1//COMMIT_MSG at 11 PS1, Line 11: I do not understand this fully. Always thought l1if_provision_transceiver_trx() would negotiate the new rx-gain value when it is called. I think a bit more info would be helpful. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c9e19d0543f19528cec842b8be332b4d93214e Gerrit-Change-Number: 23774 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 16 Apr 2021 10:10: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 Fri Apr 16 10:13:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 16 Apr 2021 10:13:04 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: rework description of the NOPE / IDLE frame indication In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23744 ) Change subject: TRXD: rework description of the NOPE / IDLE frame indication ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23744 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: I72e0c785efb8a89b664486740ef312e77b81c01a Gerrit-Change-Number: 23744 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 10:13: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 Apr 16 10:14:17 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 16 Apr 2021 10:14:17 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: generalize description of the 'RFU' ('PAD') field In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 ) Change subject: TRXD: generalize description of the 'RFU' ('PAD') field ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 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: I9ac9d387325627d18811fae1d0d7930b69f08129 Gerrit-Change-Number: 23687 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 10:14: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 Apr 16 10:18:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 16 Apr 2021 10:18:09 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23773 ) Change subject: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23773/1/src/osmo-bts-trx/trx_vty.c File src/osmo-bts-trx/trx_vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/23773/1/src/osmo-bts-trx/trx_vty.c at 243 PS1, Line 243: "Delay in GSM symbols (approx. 550m per symbol)\n") Maybe it would be helpful to keep the long text as comment. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I46839cf56bba2dcdc70303cd393e86d35aa2f3f5 Gerrit-Change-Number: 23773 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 16 Apr 2021 10:18: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 Fri Apr 16 10:20:57 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 16 Apr 2021 10:20:57 +0000 Subject: Change in osmo-bts[master]: manuals: document GSMTAP 'enable-all' / 'disable-all' In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23772 ) Change subject: manuals: document GSMTAP 'enable-all' / 'disable-all' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iadbcf9d3184ab17c11c51e191aa3e80665839c22 Gerrit-Change-Number: 23772 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 16 Apr 2021 10:20: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 Apr 16 10:21:46 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 16 Apr 2021 10:21:46 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 11: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 11 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 16 Apr 2021 10:21:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 10:31:45 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 16 Apr 2021 10:31:45 +0000 Subject: Change in osmo-bts[master]: manuals: document new 'gsmtap-remote-host' command In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23770 ) Change subject: manuals: document new 'gsmtap-remote-host' command ...................................................................... Patch Set 1: Code-Review+1 (2 comments) looks ok to me. Just a few thoughts... https://gerrit.osmocom.org/c/osmo-bts/+/23770/1/doc/manuals/chapters/configuration.adoc File doc/manuals/chapters/configuration.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23770/1/doc/manuals/chapters/configuration.adoc at 111 PS1, Line 111: In order to activate this feature, you first need to make sure to specify I do not know if it is good to address the user directly. I would write: In order to activate this feature, it is necessary to make sure ... or maybe "we": In order to activate this feature, we first need to make sure to specify ... https://gerrit.osmocom.org/c/osmo-bts/+/23770/1/doc/manuals/chapters/configuration.adoc at 114 PS1, Line 114: device will be sufficient: maybe "is sufficient" looks better. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7f75fbac77a612493ce187cfac3c4ae203c81b23 Gerrit-Change-Number: 23770 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 16 Apr 2021 10:31:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 10:42:49 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 16 Apr 2021 10:42:49 +0000 Subject: Change in osmo-bts[master]: manuals: fix wrong VTY node for 'gsmtap-sapi' command In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23771 ) Change subject: manuals: fix wrong VTY node for 'gsmtap-sapi' command ...................................................................... Patch Set 1: Verified+1 Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifcf1cf9cdbad40862d48415e004865a91a61d1b1 Gerrit-Change-Number: 23771 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 16 Apr 2021 10:42: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 Apr 16 10:45:04 2021 From: gerrit-no-reply at lists.osmocom.org (Falkenber9) Date: Fri, 16 Apr 2021 10:45:04 +0000 Subject: Change in pysim[master]: setup: add (nested) library pySim.transport References: Message-ID: Falkenber9 has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23775 ) Change subject: setup: add (nested) library pySim.transport ...................................................................... setup: add (nested) library pySim.transport * setup.py did not install pySim.transport sub-library Change-Id: Ice026a28c4843121591f3404225c7f6aec4df6c7 --- M setup.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/75/23775/1 diff --git a/setup.py b/setup.py index 0fa3f1a..6b4335a 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ setup( name='pySim', version='1.0', - packages=['pySim'], + packages=['pySim', 'pySim.transport'], url='https://osmocom.org/projects/pysim/wiki', license='GPLv2', author_email='simtrace at lists.osmocom.org', -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ice026a28c4843121591f3404225c7f6aec4df6c7 Gerrit-Change-Number: 23775 Gerrit-PatchSet: 1 Gerrit-Owner: Falkenber9 Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 10:46:42 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 16 Apr 2021 10:46:42 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23760 ) Change subject: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 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-CC: osmith Gerrit-Comment-Date: Fri, 16 Apr 2021 10:46: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 Apr 16 11:01:10 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 16 Apr 2021 11:01:10 +0000 Subject: Change in pysim[master]: setup: add (nested) library pySim.transport In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23775 ) Change subject: setup: add (nested) library pySim.transport ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ice026a28c4843121591f3404225c7f6aec4df6c7 Gerrit-Change-Number: 23775 Gerrit-PatchSet: 1 Gerrit-Owner: Falkenber9 Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 16 Apr 2021 11:01: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 Apr 16 11:03:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 11:03:10 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: change coding of 'PWR' and 'SCPIR' fields In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23745 ) Change subject: trx_toolkit: change coding of 'PWR' and 'SCPIR' fields ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I482f72fd9305c51f43a0339d03904fb693d90ac9 Gerrit-Change-Number: 23745 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 11:03: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 Apr 16 11:04:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 11:04:04 +0000 Subject: Change in osmo-bts[master]: manuals: remove deprecated command line parameters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23769 ) Change subject: manuals: remove deprecated command line parameters ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie49abeb9647e3c8abdc9e110ab1a71c116f5def6 Gerrit-Change-Number: 23769 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 11:04:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 11:07:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 11:07:08 +0000 Subject: Change in osmo-bts[master]: manuals: document GSMTAP 'enable-all' / 'disable-all' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23772 ) Change subject: manuals: document GSMTAP 'enable-all' / 'disable-all' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iadbcf9d3184ab17c11c51e191aa3e80665839c22 Gerrit-Change-Number: 23772 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 11:07:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 11:09:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 11:09:57 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 11: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/11/common/chapters/trx_if.adoc File common/chapters/trx_if.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/11/common/chapters/trx_if.adoc at 749 PS11, Line 749: both BTS and the transceiver. Otherwise the datagram is split across "fragmented" would be a much more appropiate word to quickly understand waht you talk a bout here (UDP fragmentation). -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 11 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 16 Apr 2021 11:09:57 +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 Apr 16 11:10:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 11:10:27 +0000 Subject: Change in osmo-bts[master]: manuals: fix wrong VTY node for 'gsmtap-sapi' command In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23771 ) Change subject: manuals: fix wrong VTY node for 'gsmtap-sapi' command ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifcf1cf9cdbad40862d48415e004865a91a61d1b1 Gerrit-Change-Number: 23771 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 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 Fri Apr 16 12:53:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 12:53:35 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23773 ) Change subject: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands ...................................................................... Patch Set 1: Are those commands correctly documented in the user manual or vty reference xml? or are you dropping that information? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I46839cf56bba2dcdc70303cd393e86d35aa2f3f5 Gerrit-Change-Number: 23773 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 12:53:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 13:01:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 13:01:14 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23774 ) Change subject: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23774/1/src/osmo-bts-trx/trx_vty.c File src/osmo-bts-trx/trx_vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/23774/1/src/osmo-bts-trx/trx_vty.c at 357 PS1, Line 357: l1h->config.rxgain_sent = false; Ideally we should add a new FSM events to "enum trx_provision_fsm_events" in order to be able to configure this at any time: Here, one would dispatch event TRX_PROV_EV_CFG_RXGAIN with param=atoi(argv[0]), then the trx_provision_fsm would take care to internally store it and send TRXC message if requried at that point. TRX_PROV_EV_RXGAIN_CNF would be received once we got confirmation from TRXC. This would help in cleaning up this code, and also allow to set it at any time, no need to restart (assuming osmo-trx is also fine handling related TRXC commands at any time). Same goes for patch before this one. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c9e19d0543f19528cec842b8be332b4d93214e Gerrit-Change-Number: 23774 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 13:01: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 Apr 16 13:15:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 13:15:51 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Fix trailing whitespace In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 ) Change subject: BSSAP_Types.ttcn: Fix trailing whitespace ...................................................................... Patch Set 1: This one has already been merged upstream. However, I think it makes sense to wait until both patches are merged and then simply rebase our fork (osmux additions) on top of upstream's current master. -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 Gerrit-Change-Number: 23762 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 16 Apr 2021 13:15: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 Apr 16 13:21:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 13:21:02 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Add missing IEs for CommonID In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 ) Change subject: BSSAP_Types.ttcn: Add missing IEs for CommonID ...................................................................... Patch Set 2: Both patches are now merged. @laforge, agree with rebasing our fork master to upstream's one? -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 Gerrit-Change-Number: 23763 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 16 Apr 2021 13:21: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 Fri Apr 16 13:28:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 13:28:45 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 16 Apr 2021 13:28: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 Apr 16 14:29:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 14:29:04 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23774 ) Change subject: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23774/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/23774/1//COMMIT_MSG at 9 PS1, Line 9: * Calling l1if_provision_transceiver_trx() yelds nothing. > typo "yelds" should be "yield" ? Ack https://gerrit.osmocom.org/c/osmo-bts/+/23774/1//COMMIT_MSG at 11 PS1, Line 11: > I do not understand this fully. [?] I would also expect l1if_provision_transceiver_trx() to change Rx gain at run-time, but then I tested it - nothing happens. Then I checked the source code, and indeed it does not handle this parameter at all. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c9e19d0543f19528cec842b8be332b4d93214e Gerrit-Change-Number: 23774 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 14:29:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 14:32:47 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 14:32:47 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23774 ) Change subject: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23774/1/src/osmo-bts-trx/trx_vty.c File src/osmo-bts-trx/trx_vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/23774/1/src/osmo-bts-trx/trx_vty.c at 357 PS1, Line 357: l1h->config.rxgain_sent = false; > Ideally we should add a new FSM events to "enum trx_provision_fsm_events" in order to be able to con [?] Not sure if it's really that important to be able to change Rx gain at run-time. My intention is to fix confusing VTY attributes here. Also, having a separate event for every possible parameter looks redundant to me. It could be just a single event passed with a pointer to a structure with parameter description. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c9e19d0543f19528cec842b8be332b4d93214e Gerrit-Change-Number: 23774 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 14:32:47 +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 Apr 16 14:42:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 14:42:30 +0000 Subject: Change in osmo-bts[master]: manuals: document new 'gsmtap-remote-host' command In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23770 ) Change subject: manuals: document new 'gsmtap-remote-host' command ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23770/1/doc/manuals/chapters/configuration.adoc File doc/manuals/chapters/configuration.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23770/1/doc/manuals/chapters/configuration.adoc at 111 PS1, Line 111: In order to activate this feature, you first need to make sure to specify > I do not know if it is good to address the user directly. I would write: [?] In general, I don't see any problems with it. If there were 'Sie' in English, I would definitely use it ;) But this part was here before my patch, so I would not touch it here. https://gerrit.osmocom.org/c/osmo-bts/+/23770/1/doc/manuals/chapters/configuration.adoc at 114 PS1, Line 114: device will be sufficient: > maybe "is sufficient" looks better. Ack, but this is also part of the original text. Can be done in a separate patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7f75fbac77a612493ce187cfac3c4ae203c81b23 Gerrit-Change-Number: 23770 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 16 Apr 2021 14:42:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 14:45:44 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 14:45:44 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: rework description of the NOPE / IDLE frame indication In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23744 ) Change subject: TRXD: rework description of the NOPE / IDLE frame indication ...................................................................... TRXD: rework description of the NOPE / IDLE frame indication * Add 'referred to as NOPE.ind', this is how we usueally call it; * Change 'IDLE / NOPE' to 'NOPE / IDLE', because: ** there can be 'IDLE TDMA frame', but not 'NOPE frame'; * Avoid using 'high' and 'low' terms for bit values. * Introduce and use macros for '0'B and '1'B. Change-Id: I72e0c785efb8a89b664486740ef312e77b81c01a Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 11 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc index a3a78ab..04da347 100644 --- a/common/chapters/trx_if.adoc +++ b/common/chapters/trx_if.adoc @@ -1,3 +1,7 @@ +// Common attributes (macros) used in this document +:bit-zero: '0\'B +:bit-one: '1\'B + [[trx_if]] == TRX Manager UDP socket interface @@ -504,7 +508,7 @@ +-----------------+---------------------------------------+ | 7 6 5 4 3 2 1 0 | bit numbers (value range) | +-----------------+---------------------------------------+ -| X . . . . . . . | IDLE / nope frame indication (0 or 1) | +| X . . . . . . . | NOPE / IDLE frame indication (0 or 1) | +-----------------+---------------------------------------+ | . X X X X . . . | Modulation, TS set number (see below) | +-----------------+---------------------------------------+ @@ -512,11 +516,12 @@ +-----------------+---------------------------------------+ ---- -IDLE / nope frame indication:: -The bit number 7 (MSB) is set to high when either nothing has been detected, so -the BTS scheduler keeps processing bursts without gaps, or during IDLE frames, -so the current noise levels can be delivered. Other bits are ignored, and should -be set to low (`0`) in this case. The field "Soft-bits" is omited. +NOPE / IDLE frame indication (referred to as NOPE.ind):: +The bit number 7 (MSB) shall be set to {bit-one} by the transceiver when either +nothing has been detected, so the BTS scheduler keeps processing bursts without +gaps, or during IDLE frames, so the current noise levels can be delivered. In +this case the remaining bits become meaningless and shall be set to {bit-zero}. +The payload (`Soft-bits` or `Hard-bits`) is omited. Modulation and TS set number:: GMSK has 4 sets of training sequences (see tables 5.2.3a-d), while 8-PSK (see -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23744 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: I72e0c785efb8a89b664486740ef312e77b81c01a Gerrit-Change-Number: 23744 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 14:45:44 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 14:45:44 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: generalize description of the 'RFU' ('PAD') field In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 ) Change subject: TRXD: generalize description of the 'RFU' ('PAD') field ...................................................................... TRXD: generalize description of the 'RFU' ('PAD') field This field will also appear in TRXDv2 packet diagrams, in several places. Let's rename it to 'RFU', because it's actually something that may want to use in the future, rather than just padding. Change-Id: I9ac9d387325627d18811fae1d0d7930b69f08129 Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 9 insertions(+), 10 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc index 04da347..fb9e99f 100644 --- a/common/chapters/trx_if.adoc +++ b/common/chapters/trx_if.adoc @@ -405,7 +405,7 @@ node_height = 40 0-3: VER(0) - 4: RES + 4: RFU 5-7: TN 8-39: FN 40-47: RSSI @@ -423,7 +423,7 @@ node_height = 40 0-3: VER(1) - 4: RES + 4: RFU 5-7: TN 8-39: FN 40-47: RSSI @@ -442,7 +442,7 @@ node_height = 40 0-3: VER(1) - 4: RES + 4: RFU 5-7: TN 8-39: FN 40-47: RSSI @@ -458,9 +458,9 @@ TN: 3 bits:: Timeslot number. -RES: 1 bit:: -Reserved, shall be 0. It can be used in the future to extend the TDMA TN range -to (0..15), in case anybody would need to transfer UMTS bursts. +RFU: variable bit-length:: +Reserved for Future Use. The sending side of the PDU shall set all bits to +{bit-zero}; the receiving side shall ignore `RFU` fields. FN: 32 bits (4 bytes):: GSM frame number, big endian. @@ -570,7 +570,7 @@ node_height = 40 0-3: VER - 4: RES + 4: RFU 5-7: TN 8-39: FN 40-47: PWR @@ -584,9 +584,8 @@ TN: 3 bits:: Timeslot number. -RES: 1 bit:: -Reserved, shall be 0. It can be used in the future to extend the TDMA TN range -to (0..15), in case anybody would need to transfer UMTS bursts. +RFU: variable bit-length:: +Reserved for Future Use, all bits shall be set to low (`0`). FN: 32 bits (4 bytes):: GSM frame number, big endian. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23687 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: I9ac9d387325627d18811fae1d0d7930b69f08129 Gerrit-Change-Number: 23687 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 14:52:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 14:52:42 +0000 Subject: Change in osmo-bts[master]: manuals: fix wrong VTY node for 'gsmtap-sapi' command In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23771 ) Change subject: manuals: fix wrong VTY node for 'gsmtap-sapi' command ...................................................................... manuals: fix wrong VTY node for 'gsmtap-sapi' command Change-Id: Ifcf1cf9cdbad40862d48415e004865a91a61d1b1 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 2 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 772d8da..107fcfd 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -137,8 +137,7 @@ OsmoBTS> enable OsmoBTS# configure terminal OsmoBTS(config)# bts 0 -OsmoBTS(bts)# trx 0 -OsmoBTS(trx)# gsmtap-sapi sdcch +OsmoBTS(bts)# gsmtap-sapi sdcch OsmoBTS(trx)# write <1> ---- <1> the `write` command will make the configuration persistent in the @@ -146,7 +145,7 @@ only in the current session of OsmoBTS. De-activation can be performed similarly by using the `no gsmtap-sapi -sdcch` command at the `trx` node of the OsmoBTS VTY. +sdcch` command at the `bts` node of the OsmoBTS VTY. From the moment they are enabled via VTY, GSMTAP messages will be generated and sent in UDP encapsulation to the IANA-registered UDP port -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifcf1cf9cdbad40862d48415e004865a91a61d1b1 Gerrit-Change-Number: 23771 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Apr 16 14:53:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 14:53:36 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23773 ) Change subject: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands ...................................................................... Patch Set 1: > Patch Set 1: > > Are those commands correctly documented in the user manual or vty reference xml? or are you dropping that information? No, and I could not find a good place in the manuals for such kind of documentation. To me it looks very basic, especially "Access Burst is the first burst a mobile transmits in order to establish a connection...". Indeed it's clear that limiting the maximum delay of Access Bursts would limit the coverage area. So I am not really sure if it can be moved to the manuals as it is. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I46839cf56bba2dcdc70303cd393e86d35aa2f3f5 Gerrit-Change-Number: 23773 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 14:53:36 +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 Apr 16 15:01:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 15:01:36 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... Patch Set 11: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/11/common/chapters/trx_if.adoc File common/chapters/trx_if.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867/11/common/chapters/trx_if.adoc at 749 PS11, Line 749: both BTS and the transceiver. Otherwise the datagram is split across > "fragmented" would be a much more appropiate word to quickly understand waht you talk a bout here (U [?] I hope this is not critical, because I would want to get this patch merged ASAP. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 11 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 16 Apr 2021 15:01:36 +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 Apr 16 15:01:43 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 15:01:43 +0000 Subject: Change in osmo-gsm-manuals[master]: TRXD: add documentation for TRXDv2 protocol In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 ) Change subject: TRXD: add documentation for TRXDv2 protocol ...................................................................... TRXD: add documentation for TRXDv2 protocol Change-Id: I03b2beeb535848b31fd629ba3cd330b43072c08b Related: SYS#4895, OS#4941, OS#4006 --- M common/chapters/trx_if.adoc 1 file changed, 257 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified osmith: 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/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc index fb9e99f..f4884f0 100644 --- a/common/chapters/trx_if.adoc +++ b/common/chapters/trx_if.adoc @@ -22,6 +22,10 @@ The corresponding interface for every socket is at `P+100` on the BTS side. +NOTE: Starting from TRXDv2, it's possible to use only one socket for all +channels. In this case, the global `TRXD` interface for all channels shall +be established on port `P=B+1`. See <> for more details. + [[trx_if_clock_ind]] === Indications on the Master Clock Interface @@ -358,8 +362,8 @@ === TRXD protocol -PDUs on the data interface carry one radio burst per one UDP packet. -Two kinds of TRXD PDU exist: +Messages on the data interface carry one or optionally multiple radio bursts +(see <>) per one UDP datagram. Two kinds of TRXD PDU exist: * `TRX -> L1` (from transceiver to the L1): Uplink messages received from the MS, * `L1 -> TRX` (from the L1 to transceiver): Downlink messages sent to the MS. @@ -390,12 +394,20 @@ ** New field: MTS (Modulation and Training Sequence); ** New field: C/I (Carrier-to-interface) ratio; ** Downlink messages mostly unchanged. +* TRXDv2 (proposed in January 2021): +** Introduced the concept of burst batching (many bursts in one message); +** Changed the field ordering (facilitating aligned access); +** New field: batching indicator; +** New field: TRX number; +** New field: SCPIR for VAMOS. -==== Uplink Data Burst +==== Uplink PDU format -Uplink data burst message structure differs from version 0 to 1. Basically, -version 1 contains an extended header with regards to version 0, and the final -padding existence is completely dropped. +An Uplink TRXD PDU contains a demodulated burst with the associated measurements +(signal strength, timing delay, etc.) and TDMA frame/timeslot number. Starting +from TRXDv1, a PDU may contain no payload, indicating the upper layers that the +transceiver was not able to demodulate a burst (e.g. due to bad signal quality +or the lack of signal during IDLE TDMA frames). .TRXDv0 Uplink data burst message structure [packetdiag] @@ -452,6 +464,48 @@ } ---- +.TRXDv2 Uplink message structure +[packetdiag] +---- +{ + colwidth = 32 + node_height = 40 + + 0-3: VER(2) + 4: RFU + 5-7: TN + 8: BATCH + 9: RFU + 10-15: TRXN + 16-23: MTS + 24-31: RSSI + 32-47: TOA256 + 48-63: C/I + 64-95: FN + 96-127: Soft-bits +} +---- + +.TRXDv2 Uplink message structure (batched part) +[packetdiag] +---- +{ + colwidth = 32 + node_height = 40 + + 0-4: RFU + 5-7: TN + 8: BATCH + 9: RFU + 10-15: TRXN + 16-23: MTS + 24-31: RSSI + 32-47: TOA256 + 48-63: C/I + 64-95: Soft-bits +} +---- + VER: 4 bits:: TRXD header version, common for both `TRX -> L1` and `L1 -> TRX` directions. @@ -462,6 +516,12 @@ Reserved for Future Use. The sending side of the PDU shall set all bits to {bit-zero}; the receiving side shall ignore `RFU` fields. +BATCH: 1 bit:: +This bit indicates whether a batched PDU follows (see <>). + +TRXN: 6 bits:: +The transceiver (PHY channel) number this PDU is coming from. + FN: 32 bits (4 bytes):: GSM frame number, big endian. @@ -562,7 +622,7 @@ ==== Downlink Data Burst -.TRXD Downlink data burst message structure +.TRXDv0 and TRXDv1 Downlink data burst message structure [packetdiag] ---- { @@ -578,6 +638,48 @@ } ---- +.TRXDv2 Downlink data burst message structure +[packetdiag] +---- +{ + colwidth = 32 + node_height = 40 + + 0-3: VER(2) + 4: RFU + 5-7: TN + 8: BATCH + 9: RFU + 10-15: TRXN + 16-23: MTS + 24-31: PWR + 32-39: SCPIR + 40-63: RFU + 64-95: FN + 96-127: Hard-bits +} +---- + +.TRXDv2 Downlink PDU structure (batched part) +[packetdiag] +---- +{ + colwidth = 32 + node_height = 40 + + 0-4: RFU + 5-7: TN + 8: BATCH + 9: RFU + 10-15: TRXN + 16-23: MTS + 24-31: PWR + 32-39: SCPIR + 40-63: RFU + 64-95: Hard-bits +} +---- + VER: 4 bits:: TRXD header version, common for both `TRX -> L1` and `L1 -> TRX` directions. @@ -585,7 +687,18 @@ Timeslot number. RFU: variable bit-length:: -Reserved for Future Use, all bits shall be set to low (`0`). +Reserved for Future Use. The sending side of the PDU shall set all bits to +{bit-zero}; the receiving side shall ignore `RFU` fields. + +BATCH: 1 bit:: +This bit indicates whether a batched PDU follows (see <>). + +TRXN: 6 bits:: +The transceiver (PHY channel) number this PDU is addressed to. + +MTS: 8 bits (1 byte):: +Contains the Modulation and Training Sequence information. See <> +for more information on the encoding. FN: 32 bits (4 bytes):: GSM frame number, big endian. @@ -595,6 +708,142 @@ in dB. The absolute value is set on the control interface, so the resulting power is calculated as follows: `full_scale - (absolute_red + relative_red)`. +SCPIR: 8 bits (1 byte):: +SCPIR (Subchannel Power Imbalance Ratio) - the ratio of power between Q and I +channels for a VAMOS pair. This field shall be present when `MTC` field +indicates the use of `AQPSK` modulation. Otherwise, all bits shall be set +to {bit-zero}. The value is a signed integer with a valid range: -10..10 dB. + Hard-bits: 148 x N bytes (variable length, N defined by modulation type):: Contains the downlink burst. Each hard-bit (1 or 0) of the burst is represented using one byte (0x01 or 0x00 respectively). + +[[trx_if_pdu_batching]] +==== PDU batching + +Starting from TRXDv2, it's possible to combine several PDUs into a single +datagram - this is called _PDU batching_. The purpose of _PDU batching_ +is to reduce socket load and eliminate possible PDU reordering, especially +in a multi-TRX setup. + +All _batched PDUs_ in a datagram must belong to the same TDMA frame number +indicated in the first part. The ordering of PDUs in a datagram may be +different from the examples below, however it's recommended to batch PDUs +in ascending order determined by TDMA timeslot number and/or `TRXN`. + +The following PDU combinations in a datagram are possible: + +* `a)` one datagram contains PDUs with the same TDMA timeslot number for all +transceivers (total N PDUs per a TDMA timeslot); +* one datagram contains complete TDMA frame with PDUs for all 8 timeslots: +** `b)` either for a single transceiver (total 8 PDUs per a TDMA frame), +** `c)` or for all transceivers (total 8 x N PDUs per a TDMA frame). + +None of these combinations are mandatory to support. + +NOTE: Automatic negotiation of the batching algorithm(s) is not yet specified. +Currently both sides need to be manually configured to use _PDU batching_. + +NOTE: Size of the biggest possible TRXD datagram should be less than the +_MTU (Maximum Transmission Unit)_ of the network interface connecting +both BTS and the transceiver. Otherwise the datagram is split across +multiple IP packets, which may negatively affect performance. + +.Example: datagram structure for combination a) +---- ++--------+----------------+---------+------------------------+ +| TRXN=0 | TDMA FN=F TN=T | BATCH=1 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +| TRXN=1 | TDMA FN=F TN=T | BATCH=1 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +| TRXN=2 | TDMA FN=F TN=T | BATCH=1 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++--------+----------------+---------+------------------------+ +| TRXN=N | TDMA FN=F TN=T | BATCH=0 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +---- + +.Example: datagram structure for combination b) +---- ++--------+----------------+---------+------------------------+ +| TRXN=N | TDMA FN=F TN=0 | BATCH=1 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +| TRXN=N | TDMA FN=F TN=1 | BATCH=1 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +| TRXN=N | TDMA FN=F TN=2 | BATCH=1 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++--------+----------------+---------+------------------------+ +| TRXN=N | TDMA FN=F TN=7 | BATCH=0 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +---- + +.Example: datagram structure for combination c) +---- ++--------+----------------+---------+------------------------+ +| TRXN=0 | TDMA FN=F TN=0 | BATCH=1 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +| TRXN=0 | TDMA FN=F TN=1 | BATCH=1 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +| TRXN=0 | TDMA FN=F TN=2 | BATCH=1 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++--------+----------------+---------+------------------------+ +| TRXN=N | TDMA FN=F TN=6 | BATCH=1 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +| TRXN=N | TDMA FN=F TN=7 | BATCH=0 | Hard-/Soft-bits | ++--------+----------------+---------+------------------------+ +---- + +[[trx_if_pdu_vamos]] +==== Coding of VAMOS PDUs + +In VAMOS mode, the throughput of a cell is increased by multiplexing two subscribers +on a single TDMA timeslot. Basically, *two* bursts are getting transmitted during +one TDMA timeslot period, and both of them need delivered over the TRXD interface. + +In the Downlink direction, the two bursts belonging to a _VAMOS pair_ shall be +concatenated together and sent in one TRXD PDU. The resulting hard-bit sequence +shall *not* be interleaved: `V0(0..147) + V1(0..147)` (296 hard-bits total), i.e. +one complete burst for subscriber `V0` takes the first 148 bytes, and another +complete burst for subscriber `V1` takes the remaining 148 bytes. The `MTS` field +shall indicate the use of `AQPSK` modulation, and the `SCPIR` field shall indicate +the Power Imbalance Ratio between `V0` and `V1`. + +.Example: Downlink datagram containing a VAMOS PDU +---- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++--------+----------------+-----------+---------------------------------------+ +| TRXN=N | TDMA FN=F TN=T | Mod=AQPSK | Hard-bits: V0(0..147) + V1(0..147) | ++--------+----------------+-----------+---------------------------------------+ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +---- + +In the Uplink direction though, one or even both of the two bursts may be lost +(e.g. due to high noise figures), so they shall always be sent in two separate +PDUs. The missing bursts shall be substituted by NOPE indications, so it's +always a pair of _batched PDUs_. The `MTS` field shall indicate the use of +`GMSK` modulation. + +.Example: Uplink datagram containing batched VAMOS PDUs (both present) +---- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++--------+----------------+----------+----------------------------------------+ +| TRXN=N | TDMA FN=F TN=T | Mod=GMSK | Soft-bits for V0 (148 bytes) | ++--------+----------------+----------+----------------------------------------+ +| TRXN=N | TDMA FN=F TN=T | Mod=GMSK | Soft-bits for V1 (148 bytes) | ++--------+----------------+----------+----------------------------------------+ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +---- + +.Example: Uplink datagram containing batched VAMOS PDUs (one lost) +---- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++--------+----------------+----------+----------------------------------------+ +| TRXN=N | TDMA FN=F TN=T | Mod=GMSK | Soft-bits for V0 (148 bytes) | ++--------+----------------+----------+----------------------------------------+ +| TRXN=N | TDMA FN=F TN=T | NOPE.ind | ++--------+----------------+----------+ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +---- -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22867 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: I03b2beeb535848b31fd629ba3cd330b43072c08b Gerrit-Change-Number: 22867 Gerrit-PatchSet: 11 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 15:09:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 15:09:51 +0000 Subject: Change in osmo-bts[master]: manuals: document GSMTAP 'enable-all' / 'disable-all' In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23772 ) Change subject: manuals: document GSMTAP 'enable-all' / 'disable-all' ...................................................................... manuals: document GSMTAP 'enable-all' / 'disable-all' Change-Id: Iadbcf9d3184ab17c11c51e191aa3e80665839c22 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 14 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 107fcfd..6b9adc1 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -147,6 +147,20 @@ De-activation can be performed similarly by using the `no gsmtap-sapi sdcch` command at the `bts` node of the OsmoBTS VTY. +It may be useful to enable all SAPIs with a few exceptions, or vice versa +disable everything using one command. For this purpose, the VTY provides +`gsmtap-sapi enable-all` and `gsmtap-sapi disable-all` commands. + +.Example: Enabling all SAPIs except PDTCH and PTCCH +---- +bts 0 + gsmtap-sapi enable-all <1> + no gsmtap-sapi pdtch <2> + no gsmtap-sapi ptcch <2> +---- +<1> Enable all available SAPIs +<2> Exclude PDTCH and PTCCH SAPIs + From the moment they are enabled via VTY, GSMTAP messages will be generated and sent in UDP encapsulation to the IANA-registered UDP port for GSMTAP (4729) at the IP address specified in the command line -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iadbcf9d3184ab17c11c51e191aa3e80665839c22 Gerrit-Change-Number: 23772 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Apr 16 15:12:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 15:12:34 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23773 ) Change subject: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands ...................................................................... Patch Set 1: Then at least move them to a comment as dexter suggested. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I46839cf56bba2dcdc70303cd393e86d35aa2f3f5 Gerrit-Change-Number: 23773 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 15:12: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 Apr 16 15:12:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 15:12:47 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23774 ) Change subject: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c9e19d0543f19528cec842b8be332b4d93214e Gerrit-Change-Number: 23774 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 15:12: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 Apr 16 15:23:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 15:23:09 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23774 ) Change subject: osmo-bts-trx: correct definition of 'osmotrx rx-gain' command ...................................................................... osmo-bts-trx: correct definition of 'osmotrx rx-gain' command * Calling l1if_provision_transceiver_trx() yelds nothing. * It does not apply immediately, full restart required. Change-Id: I93c9e19d0543f19528cec842b8be332b4d93214e --- M src/osmo-bts-trx/trx_vty.c 1 file changed, 6 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 8e701ea..4e8c8d6 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -357,12 +357,12 @@ return CMD_SUCCESS; } -DEFUN_ATTR(cfg_phyinst_rxgain, cfg_phyinst_rxgain_cmd, - "osmotrx rx-gain <0-50>", - OSMOTRX_STR - "Set the receiver gain in dB\n" - "Gain in dB\n", - CMD_ATTR_IMMEDIATE) +DEFUN_USRATTR(cfg_phyinst_rxgain, cfg_phyinst_rxgain_cmd, + X(BTS_VTY_TRX_POWERCYCLE), + "osmotrx rx-gain <0-50>", + OSMOTRX_STR + "Set the receiver gain in dB\n" + "Gain in dB\n") { struct phy_instance *pinst = vty->index; struct trx_l1h *l1h = pinst->u.osmotrx.hdl; @@ -370,7 +370,6 @@ l1h->config.rxgain = atoi(argv[0]); l1h->config.rxgain_valid = 1; l1h->config.rxgain_sent = false; - l1if_provision_transceiver_trx(l1h); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c9e19d0543f19528cec842b8be332b4d93214e Gerrit-Change-Number: 23774 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Apr 16 15:26:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 15:26:11 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 5: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/23734/5/include/osmocom/bsc/bsc_subscriber.h File include/osmocom/bsc/bsc_subscriber.h: https://gerrit.osmocom.org/c/osmo-bsc/+/23734/5/include/osmocom/bsc/bsc_subscriber.h at 48 PS5, Line 48: struct bsc_subscr *bsub also const https://gerrit.osmocom.org/c/osmo-bsc/+/23734/5/src/osmo-bsc/bsc_subscr_conn_fsm.c File src/osmo-bsc/bsc_subscr_conn_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23734/5/src/osmo-bsc/bsc_subscr_conn_fsm.c at 885 PS5, Line 885: TLVP_VAL I guess you meant TLVP_PRES or even TLVP_PRES_LEN here? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 5 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: Fri, 16 Apr 2021 15:26: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 Fri Apr 16 15:51:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 15:51:46 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 5: (2 comments) Marking as WIP since I may need to rework the patch again. I also need to update in a follow-up patch the last_used_plmn_id field, when receiving a Handover Request (SRVCC use case). The problem is that IMSI IE in Handover Request is optional, which means the conn may still have no subscriber associated at that time, and hence I'm unable to store the last_used_plmn_id there. I think I'll need to move the last_used_plmn_id from "struct bsc_subscr" to "struct gsm_subscriber_connection". Does that make sense to any of you? https://gerrit.osmocom.org/c/osmo-bsc/+/23734/5/include/osmocom/bsc/bsc_subscriber.h File include/osmocom/bsc/bsc_subscriber.h: https://gerrit.osmocom.org/c/osmo-bsc/+/23734/5/include/osmocom/bsc/bsc_subscriber.h at 48 PS5, Line 48: struct bsc_subscr *bsub > also const Ack https://gerrit.osmocom.org/c/osmo-bsc/+/23734/5/src/osmo-bsc/bsc_subscr_conn_fsm.c File src/osmo-bsc/bsc_subscr_conn_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23734/5/src/osmo-bsc/bsc_subscr_conn_fsm.c at 885 PS5, Line 885: TLVP_VAL > I guess you meant TLVP_PRES or even TLVP_PRES_LEN here? TLVP_PRES, but anyway it's basically the same. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 5 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: Fri, 16 Apr 2021 15:51:46 +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 Apr 16 16:49:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 16:49:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Introuce TC_srvcc_eutran_to_geran References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23776 ) Change subject: bsc: Introuce TC_srvcc_eutran_to_geran ...................................................................... bsc: Introuce TC_srvcc_eutran_to_geran Related: SYS#5337 Change-Id: If26cc9241b1b0eb4112f1227427008ece242bb41 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/BSSMAP_Templates.ttcn 3 files changed, 72 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/76/23776/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index f062274..1f8f951 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1501,15 +1501,16 @@ return ass_cmd; } -function f_gen_handover_req(integer bssap_idx := 0, charstring aoip_tla := "1.2.3.4") return PDU_BSSAP { +function f_gen_handover_req(integer bssap_idx := 0, charstring aoip_tla := "1.2.3.4", + template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit) return PDU_BSSAP { var PDU_BSSAP ho_req; if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(f_ts_BSSMAP_IE_AoIP_TLA(aoip_tla, 2342)); - ho_req := valueof(ts_BSSMAP_HandoverRequest(omit, tla)); + ho_req := valueof(ts_BSSMAP_HandoverRequest(omit, tla, oldToNewBSSIEs := oldToNewBSSIEs)); } else { var BSSMAP_IE_CircuitIdentityCode cic := valueof(ts_BSSMAP_IE_CIC(0,1)); - ho_req := valueof(ts_BSSMAP_HandoverRequest(cic, omit)); + ho_req := valueof(ts_BSSMAP_HandoverRequest(cic, omit, oldToNewBSSIEs := oldToNewBSSIEs)); } return ho_req; } @@ -5107,6 +5108,8 @@ * on the lchan even before we get a chance to evaluate the BSSMAP Handover Request ACK. So we * need to assume that osmo-bsc will activate TS 1 and already set up this lchan's RSL emulation * before we get started. */ + var template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit; + var template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE; var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, RSL_CHAN_NR_Bm_ACCH)); f_rslem_register(0, new_chan_nr); g_chan_nr := new_chan_nr; @@ -5116,8 +5119,14 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); + if (not istemplatekind(g_pars.last_used_eutran_plmn, "omit")) { + oldToNewBSSIEs := f_ts_BSSMAP_oldToNewBSSIEs(ts_BSSMAP_LastUsedEUTRANPLMNId(g_pars.last_used_eutran_plmn)); + exp_rr_rel_tmpl := tr_RRM_RR_RELEASE_CellSelectInd; + } + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, - f_gen_handover_req(aoip_tla := g_pars.host_aoip_tla))); + f_gen_handover_req(aoip_tla := g_pars.host_aoip_tla, + oldToNewBSSIEs := oldToNewBSSIEs))); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */ @@ -5162,6 +5171,8 @@ enc_PDU_ML3_MS_NW(l3_tx))); BSSAP.receive(tr_BSSMAP_HandoverComplete); + + f_perform_clear(RSL, exp_rr_rel_tmpl); setverdict(pass); } function f_tc_ho_into_this_bsc_main(TestHdlrParams pars) runs on test_CT { @@ -5183,7 +5194,6 @@ f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:attempted"); f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:completed"); f_ctrs_bsc_and_bts_verify(); - f_shutdown_helper(); } testcase TC_ho_into_this_bsc() runs on test_CT { @@ -5199,6 +5209,18 @@ f_shutdown_helper(); } +/* Similar to TC_ho_into_this_bsc, but when in SRVCC, HO Req contains "Old BSS + to New BSS Information" IE with "Last Used E-UTRAN PLMN Id", whihch, when the + channel is later released (RR CHannel Release), should trigger inclusion of + IE "Cell Selection Indicator after Release of all TCH and SDCCH" with E-UTRAN + neighbors. */ +testcase TC_srvcc_eutran_to_geran() runs on test_CT { + var TestHdlrParams pars := f_gen_test_hdlr_pars(); + pars.last_used_eutran_plmn := '323454'O; + f_tc_ho_into_this_bsc_main(pars); + f_shutdown_helper(); +} + private function f_tc_ho_in_fail_msc_clears(charstring id) runs on MSC_ConnHdlr { var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, RSL_CHAN_NR_Bm_ACCH)); f_rslem_register(0, new_chan_nr); @@ -6472,9 +6494,10 @@ template MobileIdentityLV ts_MI_TMSI_NRI_LV(integer nri_v, integer nri_bitlen := 10) := ts_MI_TMSI_LV(tmsi := f_gen_tmsi(suffix := 0, nri_v := nri_v, nri_bitlen := nri_bitlen)); -private function f_expect_lchan_rel(RSL_DCHAN_PT rsl) runs on MSC_ConnHdlr { +private function f_expect_lchan_rel(RSL_DCHAN_PT rsl, template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE) +runs on MSC_ConnHdlr { interleave { - [] rsl.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) { + [] rsl.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch exp_rr_rel_tmpl)) { f_logp(BSCVTY, "Got RSL RR Release"); } [] rsl.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { @@ -6488,11 +6511,12 @@ } } -private function f_perform_clear(RSL_DCHAN_PT rsl) runs on MSC_ConnHdlr { +private function f_perform_clear(RSL_DCHAN_PT rsl, template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE) +runs on MSC_ConnHdlr { f_logp(BSCVTY, "MSC instructs BSC to clear channel"); BSSAP.send(ts_BSSMAP_ClearCommand(0)); interleave { - [] rsl.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) { + [] rsl.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch exp_rr_rel_tmpl)) { f_logp(BSCVTY, "Got RSL RR Release"); } [] rsl.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { @@ -8645,6 +8669,7 @@ if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { execute( TC_ho_into_this_bsc_tla_v6() ); } + execute( TC_srvcc_eutran_to_geran() ); execute( TC_ho_in_fail_msc_clears() ); execute( TC_ho_in_fail_msc_clears_after_ho_detect() ); execute( TC_ho_in_fail_no_detect() ); diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 5460e2c..245528f 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -587,7 +587,8 @@ boolean use_osmux, charstring host_aoip_tla, TestHdlrParamsMSCPool mscpool, - boolean media_mgw_offer_ipv6 + boolean media_mgw_offer_ipv6, + OCT3 last_used_eutran_plmn optional }; /* Note: Do not use valueof() to get a value of this template, use @@ -622,7 +623,8 @@ rsl_idx := 0, l3_info := omit }, - media_mgw_offer_ipv6 := true + media_mgw_offer_ipv6 := true, + last_used_eutran_plmn := omit } function f_create_chan_and_exp() runs on MSC_ConnHdlr { diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 458fa48..8049bb0 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -23,7 +23,16 @@ type integer SpeechVersion; type integer Channel; type integer ChannelMode; -type octetstring oldToNewBSSIEs; +//type octetstring BSSMAP_oldToNewBSSIEs; + +// Old BSS to New BSS Information - 48.008 subclause 3.2.2.58 +type record BSSMAP_oldToNewBSSIEs +{ + BSSAMAP_IE_LastUsedEUTRANPLMNId LastUsedEUTRANPLMNId optional + /* TODO: add other FIELDS here from specs */ +} +external function enc_BSSMAP_oldToNewBSSIEs(in BSSMAP_oldToNewBSSIEs val) return octetstring + with { extension "prototype(convert) encode(RAW)" }; /* 48.008 3.2.2.5 - this actually belongs to BSSAP_Types.ttcn */ type enumerated myBSSMAP_Cause { @@ -198,10 +207,29 @@ channelMode := int2bit(cm, 4) } -template (value) BSSMAP_IE_OldToNewBSSInfo ts_BSSMAP_IE_OldToNewBSSInfo(oldToNewBSSIEs val) := { +template (value) BSSMAP_oldToNewBSSIEs ts_BSSMAP_oldToNewBSSIEs(template (omit) BSSAMAP_IE_LastUsedEUTRANPLMNId last_used_eutran_plmn) := { + LastUsedEUTRANPLMNId := last_used_eutran_plmn +} +function f_ts_BSSMAP_oldToNewBSSIEs(template (omit) BSSAMAP_IE_LastUsedEUTRANPLMNId last_used_eutran_plmn) + return template (omit) BSSMAP_oldToNewBSSIEs { + if (istemplatekind(last_used_eutran_plmn, "omit")) { + return omit; + } else { + return ts_BSSMAP_oldToNewBSSIEs(last_used_eutran_plmn); + } +} +template (value) BSSMAP_IE_OldToNewBSSInfo ts_BSSMAP_IE_OldToNewBSSInfo(template (value) BSSMAP_oldToNewBSSIEs val) := { elementIdentifier := '3A'O, lengthIndicator := 0, /* overwritten by codec */ - oldToNewBSSIEs := val + oldToNewBSSIEs := enc_BSSMAP_oldToNewBSSIEs(valueof(val)) +} +function f_ts_BSSMAP_IE_OldToNewBSSInfo(template (omit) BSSMAP_oldToNewBSSIEs val) + return template (omit) BSSMAP_IE_OldToNewBSSInfo { + if (istemplatekind(val, "omit")) { + return omit; + } else { + return ts_BSSMAP_IE_OldToNewBSSInfo(val); + } } template (value) BSSMAP_IE_Osmo_OsmuxSupport tr_BSSMAP_IE_Osmo_OsmuxSupport := { @@ -907,7 +935,8 @@ template BSSMAP_IE_CircuitIdentityCode cic := omit, template BSSMAP_IE_AoIP_TransportLayerAddress aoip_tla := omit, template BSSMAP_IE_CellIdentifier cell_id_target := ts_CellID_LAC_CI(1, 0), - template BSSMAP_IE_CellIdentifier cell_id_source := ts_CellID_LAC_CI(1, 1) + template BSSMAP_IE_CellIdentifier cell_id_source := ts_CellID_LAC_CI(1, 1), + template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit ) modifies ts_BSSAP_BSSMAP := { pdu := { @@ -941,7 +970,7 @@ talkerFlag := omit, configurationEvolutionIndication := omit, chosenEncryptionAlgorithm := omit, - oldToNewBSSInfo := omit, + oldToNewBSSInfo := f_ts_BSSMAP_IE_OldToNewBSSInfo(oldToNewBSSIEs), lSAInformation := omit, lSAAccessControlSuppression := omit, serviceHandover := omit, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If26cc9241b1b0eb4112f1227427008ece242bb41 Gerrit-Change-Number: 23776 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 Apr 16 16:49:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 16:49:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Introduce TC_srvcc_eutran_to_geran In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23776 ) Change subject: bsc: Introduce TC_srvcc_eutran_to_geran ...................................................................... bsc: Introduce TC_srvcc_eutran_to_geran Related: SYS#5337 Change-Id: If26cc9241b1b0eb4112f1227427008ece242bb41 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/BSSMAP_Templates.ttcn 3 files changed, 72 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/76/23776/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If26cc9241b1b0eb4112f1227427008ece242bb41 Gerrit-Change-Number: 23776 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 16:56:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 16:56:21 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 6: Updated with changing from struct subscr to conn, as mentioned beforer -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 6 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: Fri, 16 Apr 2021 16:56:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 16:56:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 16:56:35 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23753 ) Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... Patch Set 5: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 16 Apr 2021 16:56:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 16:56:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 16:56:44 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23753 ) Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... Patch Set 5: Tested by: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23776 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 16 Apr 2021 16:56: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 Fri Apr 16 17:21:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 17:21:42 +0000 Subject: Change in osmo-pcap[master]: manuals: generate VTY reference for osmo-pcap-{client, server} In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#3) to the change originally created by roh. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23691 ) Change subject: manuals: generate VTY reference for osmo-pcap-{client,server} ...................................................................... manuals: generate VTY reference for osmo-pcap-{client,server} Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Tweaked-By: Vadim Yanitskiy --- M .gitignore M configure.ac M contrib/jenkins.sh M doc/Makefile.am A doc/manuals/Makefile.am A doc/manuals/vty/Makefile.vty-reference.inc A doc/manuals/vty/osmo-pcap-vty-reference.xml A doc/manuals/vty/vty_additions.xml M src/osmo_client_main.c M src/osmo_server_main.c 10 files changed, 214 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/91/23691/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Gerrit-Change-Number: 23691 Gerrit-PatchSet: 3 Gerrit-Owner: roh Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 17:25:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 17:25:24 +0000 Subject: Change in osmo-pcap[master]: manuals: generate VTY reference for osmo-pcap-{client, server} In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23691 ) Change subject: manuals: generate VTY reference for osmo-pcap-{client,server} ...................................................................... Patch Set 3: I just wanted to fix a few unrelated whitespace changes, and figure out why the build fails (as I have some experience with the manuals now). It turned out to be more complicated since we have several binaries here, so we need to take a bit different approach (like we do for osmo-bts and osmo-trx). -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Gerrit-Change-Number: 23691 Gerrit-PatchSet: 3 Gerrit-Owner: roh Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 16 Apr 2021 17:25: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 Fri Apr 16 17:29:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 17:29:39 +0000 Subject: Change in osmo-pcap[master]: manuals: generate VTY reference for osmo-pcap-{client, server} In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#4) to the change originally created by roh. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23691 ) Change subject: manuals: generate VTY reference for osmo-pcap-{client,server} ...................................................................... manuals: generate VTY reference for osmo-pcap-{client,server} Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Tweaked-By: Vadim Yanitskiy --- M .gitignore M configure.ac M contrib/jenkins.sh M doc/Makefile.am A doc/manuals/Makefile.am A doc/manuals/vty/Makefile.vty-reference.inc A doc/manuals/vty/osmo-pcap-vty-reference.xml A doc/manuals/vty/vty_additions.xml M src/osmo_client_main.c M src/osmo_server_main.c 10 files changed, 214 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/91/23691/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Gerrit-Change-Number: 23691 Gerrit-PatchSet: 4 Gerrit-Owner: roh Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith 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 Fri Apr 16 17:36:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 17:36:32 +0000 Subject: Change in osmo-pcap[master]: vty: register commands for talloc context introspection References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23777 ) Change subject: vty: register commands for talloc context introspection ...................................................................... vty: register commands for talloc context introspection Change-Id: I3774cfd483102993340bd6e96f8512af61085679 --- M src/osmo_client_main.c M src/osmo_server_main.c 2 files changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/77/23777/1 diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index 4ef46cc..cbaefef 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -228,9 +229,11 @@ osmo_init_logging2(tall_cli_ctx, &log_info); vty_info.copyright = osmopcap_copyright; + vty_info.tall_ctx = tall_cli_ctx; vty_init(&vty_info); logging_vty_add_cmds(); osmo_stats_vty_add_cmds(); + osmo_talloc_vty_add_cmds(); vty_client_init(tall_cli_ctx); /* parse options */ diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index 9fa00e1..f8850db 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -241,9 +242,11 @@ osmo_init_logging2(tall_srv_ctx, &log_info); vty_info.copyright = osmopcap_copyright; + vty_info.tall_ctx = tall_srv_ctx; vty_init(&vty_info); logging_vty_add_cmds(); osmo_stats_vty_add_cmds(); + osmo_talloc_vty_add_cmds(); vty_server_init(tall_srv_ctx); /* parse options */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I3774cfd483102993340bd6e96f8512af61085679 Gerrit-Change-Number: 23777 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 Apr 16 18:28:02 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 18:28:02 +0000 Subject: Change in osmo-pcap[master]: vty_{client, server}_init(): remove unused argument References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23778 ) Change subject: vty_{client,server}_init(): remove unused argument ...................................................................... vty_{client,server}_init(): remove unused argument Change-Id: I65256c8602e91bcdbe5fe9e532b6ce7d347d3980 --- M src/osmo_client_main.c M src/osmo_client_vty.c M src/osmo_server_main.c M src/osmo_server_vty.c 4 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/78/23778/1 diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index cbaefef..7ca3548 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -234,7 +234,7 @@ logging_vty_add_cmds(); osmo_stats_vty_add_cmds(); osmo_talloc_vty_add_cmds(); - vty_client_init(tall_cli_ctx); + vty_client_init(); /* parse options */ handle_options(argc, argv); diff --git a/src/osmo_client_vty.c b/src/osmo_client_vty.c index fed9bf6..7458f85 100644 --- a/src/osmo_client_vty.c +++ b/src/osmo_client_vty.c @@ -519,7 +519,7 @@ } -int vty_client_init(struct osmo_pcap_client *pcap) +int vty_client_init(void) { install_element(CONFIG_NODE, &cfg_client_cmd); install_node(&client_node, config_write_client); diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index f8850db..9c234d5 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -247,7 +247,7 @@ logging_vty_add_cmds(); osmo_stats_vty_add_cmds(); osmo_talloc_vty_add_cmds(); - vty_server_init(tall_srv_ctx); + vty_server_init(); /* parse options */ handle_options(argc, argv); diff --git a/src/osmo_server_vty.c b/src/osmo_server_vty.c index e9b54b1..87bcfa2 100644 --- a/src/osmo_server_vty.c +++ b/src/osmo_server_vty.c @@ -513,7 +513,7 @@ return CMD_SUCCESS; } -void vty_server_init(struct osmo_pcap_server *server) +void vty_server_init(void) { install_element(CONFIG_NODE, &cfg_server_cmd); install_node(&server_node, config_write_server); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I65256c8602e91bcdbe5fe9e532b6ce7d347d3980 Gerrit-Change-Number: 23778 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 Apr 16 18:30:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 18:30:22 +0000 Subject: Change in osmo-pcap[master]: vty_{client, server}_init(): remove unused argument 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-pcap/+/23778 to look at the new patch set (#2). Change subject: vty_{client,server}_init(): remove unused argument ...................................................................... vty_{client,server}_init(): remove unused argument Change-Id: I65256c8602e91bcdbe5fe9e532b6ce7d347d3980 --- M include/osmo-pcap/osmo_pcap_client.h M include/osmo-pcap/osmo_pcap_server.h M src/osmo_client_main.c M src/osmo_client_vty.c M src/osmo_server_main.c M src/osmo_server_vty.c 6 files changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/78/23778/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I65256c8602e91bcdbe5fe9e532b6ce7d347d3980 Gerrit-Change-Number: 23778 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 Fri Apr 16 18:33:44 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 18:33:44 +0000 Subject: Change in osmo-trx[master]: gitignore: remove non-existing 'doc/manuals/osmomsc-usermanual.xml' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/23779 ) Change subject: gitignore: remove non-existing 'doc/manuals/osmomsc-usermanual.xml' ...................................................................... gitignore: remove non-existing 'doc/manuals/osmomsc-usermanual.xml' Change-Id: If0fef3f12f15780ed3a3e33db25cd29082ff142a --- M .gitignore 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/79/23779/1 diff --git a/.gitignore b/.gitignore index 43fdfc2..2020422 100644 --- a/.gitignore +++ b/.gitignore @@ -67,7 +67,6 @@ doc/manuals/vty/osmotrx-*-vty-reference.xml doc/manuals/vty/osmotrx-*-vty-reference.xml.inc.gen doc/manuals/vty/osmotrx-*-vty-reference.xml.inc.merged -doc/manuals/osmomsc-usermanual.xml doc/manuals/common doc/manuals/build -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/23779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If0fef3f12f15780ed3a3e33db25cd29082ff142a Gerrit-Change-Number: 23779 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 Apr 16 18:38:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 18:38:56 +0000 Subject: Change in osmo-pcap[master]: manuals: generate VTY reference for osmo-pcap-{client, server} In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23691 ) Change subject: manuals: generate VTY reference for osmo-pcap-{client,server} ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Gerrit-Change-Number: 23691 Gerrit-PatchSet: 4 Gerrit-Owner: roh Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 16 Apr 2021 18:38:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 18:39:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 18:39:22 +0000 Subject: Change in osmo-pcap[master]: vty: register commands for talloc context introspection In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23777 ) Change subject: vty: register commands for talloc context introspection ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I3774cfd483102993340bd6e96f8512af61085679 Gerrit-Change-Number: 23777 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 18:39:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 18:39:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 18:39:57 +0000 Subject: Change in osmo-pcap[master]: vty_{client, server}_init(): remove unused argument In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23778 ) Change subject: vty_{client,server}_init(): remove unused argument ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I65256c8602e91bcdbe5fe9e532b6ce7d347d3980 Gerrit-Change-Number: 23778 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 18:39: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 Apr 16 18:40:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 16 Apr 2021 18:40:08 +0000 Subject: Change in osmo-trx[master]: gitignore: remove non-existing 'doc/manuals/osmomsc-usermanual.xml' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/23779 ) Change subject: gitignore: remove non-existing 'doc/manuals/osmomsc-usermanual.xml' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/23779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If0fef3f12f15780ed3a3e33db25cd29082ff142a Gerrit-Change-Number: 23779 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 16 Apr 2021 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 Apr 16 18:57:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 18:57:14 +0000 Subject: Change in osmo-bts[master]: rsl: do not blindly ignore unhandled/unknown Channel Mode References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23780 ) Change subject: rsl: do not blindly ignore unhandled/unknown Channel Mode ...................................................................... rsl: do not blindly ignore unhandled/unknown Channel Mode Change-Id: I67a70132999be6580a29e6b814763309a6df4ae9 Related: SYS#4895 --- M src/common/rsl.c 1 file changed, 14 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/80/23780/1 diff --git a/src/common/rsl.c b/src/common/rsl.c index 525b637..8488ab7 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -112,8 +112,8 @@ } /* compute lchan->rsl_cmode and lchan->tch_mode from RSL CHAN MODE IE */ -static void lchan_tchmode_from_cmode(struct gsm_lchan *lchan, - struct rsl_ie_chan_mode *cm) +static int lchan_tchmode_from_cmode(struct gsm_lchan *lchan, + const struct rsl_ie_chan_mode *cm) { lchan->rsl_cmode = cm->spd_ind; lchan->ts->trx->bts->dtxd = (cm->dtx_dtu & RSL_CMOD_DTXd) ? true : false; @@ -137,7 +137,11 @@ case RSL_CMOD_SP_NT_6k0: lchan->tch_mode = GSM48_CMODE_DATA_6k0; break; + default: + return -ENOTSUP; } + + return 0; } @@ -1359,7 +1363,10 @@ return rsl_tx_chan_act_nack(lchan, RSL_ERR_MAND_IE_ERROR); } cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE); - lchan_tchmode_from_cmode(lchan, cm); + if (lchan_tchmode_from_cmode(lchan, cm) != 0) { + LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Unhandled RSL Channel Mode\n"); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_IE_CONTENT); + } } /* 9.3.7 Encryption Information */ @@ -1874,7 +1881,10 @@ return rsl_tx_mode_modif_nack(lchan, RSL_ERR_MAND_IE_ERROR); } cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE); - lchan_tchmode_from_cmode(lchan, cm); + if (lchan_tchmode_from_cmode(lchan, cm) != 0) { + LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Unhandled RSL Channel Mode\n"); + return rsl_tx_mode_modif_nack(lchan, RSL_ERR_IE_CONTENT); + } if (bts_supports_cm(lchan->ts->trx->bts, ts_pchan(lchan->ts), lchan->tch_mode) != 1) { LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "%s: invalid mode: %s (wrong BSC configuration?)\n", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67a70132999be6580a29e6b814763309a6df4ae9 Gerrit-Change-Number: 23780 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 Apr 16 22:08:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 22:08:12 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands In-Reply-To: References: Message-ID: Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/23773 to look at the new patch set (#2). Change subject: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands ...................................................................... osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands * Move way too verbose command description to the manuals. * None of these commands apply immediately, correct the attributes. ** Remove meaningless call to l1if_provision_transceiver_trx(). * Make 'maxdlynb' hidden, so it only appears in the expert mode. * One GMSK symbol actually corresponds to 550m. Change-Id: I46839cf56bba2dcdc70303cd393e86d35aa2f3f5 --- M doc/manuals/vty/bts_vty_additions.xml M src/osmo-bts-trx/trx_vty.c 2 files changed, 37 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/23773/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I46839cf56bba2dcdc70303cd393e86d35aa2f3f5 Gerrit-Change-Number: 23773 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 22:11:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 22:11:38 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23773 ) Change subject: osmo-bts-trx: refactor 'maxdly' / 'maxdlynb' commands ...................................................................... Patch Set 2: (2 comments) I moved the explanation to the vty_additions.xml, so they'll appear in the manual. Unfortunately, the results are not satisfying. We need a smarter XSL for merging documents :( https://gerrit.osmocom.org/c/osmo-bts/+/23773/2/doc/manuals/vty/bts_vty_additions.xml File doc/manuals/vty/bts_vty_additions.xml: https://gerrit.osmocom.org/c/osmo-bts/+/23773/2/doc/manuals/vty/bts_vty_additions.xml at 4 PS2, Line 4: Somehow this command appears twice in the merged document. https://gerrit.osmocom.org/c/osmo-bts/+/23773/2/doc/manuals/vty/bts_vty_additions.xml at 12 PS2, Line 12: And this one will appear unconditionally, despite the command is hidden :/ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I46839cf56bba2dcdc70303cd393e86d35aa2f3f5 Gerrit-Change-Number: 23773 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 22:11:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 16 23:16:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 23:16:07 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: change coding of 'PWR' and 'SCPIR' fields In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23745 ) Change subject: trx_toolkit: change coding of 'PWR' and 'SCPIR' fields ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I482f72fd9305c51f43a0339d03904fb693d90ac9 Gerrit-Change-Number: 23745 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 16 Apr 2021 23:16: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 Apr 16 23:16:10 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 16 Apr 2021 23:16:10 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: change coding of 'PWR' and 'SCPIR' fields In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23745 ) Change subject: trx_toolkit: change coding of 'PWR' and 'SCPIR' fields ...................................................................... trx_toolkit: change coding of 'PWR' and 'SCPIR' fields During an internal discussion, it was decided to keep field 'PWR' as-is and move 'SCPIR' into a separate octet. This is easier to parse, less confusing, and would save us some CPU cycles. Change-Id: I482f72fd9305c51f43a0339d03904fb693d90ac9 Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/trxd_proto.py 1 file changed, 6 insertions(+), 31 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/src/target/trx_toolkit/trxd_proto.py b/src/target/trx_toolkit/trxd_proto.py index 80d8de8..7afa484 100644 --- a/src/target/trx_toolkit/trxd_proto.py +++ b/src/target/trx_toolkit/trxd_proto.py @@ -75,35 +75,6 @@ return 1 * GMSK_BURST_LEN raise ValueError('Unknown modulation type') -class Power(codec.Codec): - ''' SCPIR and Tx power reduction (TRXDv2 and higher). - - +-----------------+---------------------------------+ - | 7 6 5 4 3 2 1 0 | Description | - +-----------------+---------------------------------+ - | . . . . x x x x | Power REDuction (in 2 dB steps) | - +-----------------+---------------------------------+ - | . x x x . . . . | SCPIR value (in 2 dB steps) | - +-----------------+---------------------------------+ - | x . . . . . . . | SCPIR sign indicator | - +-----------------+---------------------------------+ - - ''' - - def from_bytes(self, vals: dict, data: bytes) -> int: - blob = ord(data) # Convert a byte to an int - vals['red'] = (blob & 0b1111) * 2 - vals['scpir'] = ((blob >> 4) & 0b111) * 2 - if blob & (1 << 7): # negative sign - vals['scpir'] *= -1 - return 1 - - def to_bytes(self, vals: dict) -> bytes: - blob = (vals['red'] & 0b1111) \ - | (abs(vals['scpir']) << 4) // 2 \ - | (0x80 if (vals['scpir'] < 0) else 0x00) - return bytes((blob,)) - class BurstBits(codec.Buf): ''' Soft-/hard-bits with variable length. ''' @@ -188,14 +159,18 @@ STRUCT = ( Header(ver=2, batched=True), MTS(), - Power(), + codec.Uint('pwr'), + codec.Int('scpir'), + codec.Spare(len=3), BurstBits('hard-bits'), ) STRUCT = ( Header(ver=2), MTS(), - Power(), + codec.Uint('pwr'), + codec.Int('scpir'), + codec.Spare(len=3), codec.Uint32BE('fn'), BurstBits('hard-bits'), codec.Sequence(item=BPDU()).f('bpdu'), -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I482f72fd9305c51f43a0339d03904fb693d90ac9 Gerrit-Change-Number: 23745 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sun Apr 18 06:36:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:36:46 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Fix trailing whitespace In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 ) Change subject: BSSAP_Types.ttcn: Fix trailing whitespace ...................................................................... Patch Set 1: Code-Review+2 > Patch Set 1: > > This one has already been merged upstream. However, I think it makes sense to wait until both patches are merged and then simply rebase our fork (osmux additions) on top of upstream's current master. ACK. -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 Gerrit-Change-Number: 23762 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:36: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 Apr 18 06:36:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:36:57 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Add missing IEs for CommonID In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 ) Change subject: BSSAP_Types.ttcn: Add missing IEs for CommonID ...................................................................... Patch Set 2: Code-Review+2 > Patch Set 2: > > Both patches are now merged. @laforge, agree with rebasing our fork master to upstream's one? ACK -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 Gerrit-Change-Number: 23763 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:36:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:37:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:37:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONF... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23757 ) Change subject: gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONFIGURED ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23757 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I125e7e5a08ea6aff6e0308a18b5c0a6d0392ad32 Gerrit-Change-Number: 23757 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 18 Apr 2021 06:37:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:38:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:38:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add functions for SNS add/del/change-weight messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23186 ) Change subject: gprs_ns2: add functions for SNS add/del/change-weight messages ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23186 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib9492e213e82c18c7dcce6ba7d64e897b4c74796 Gerrit-Change-Number: 23186 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 18 Apr 2021 06:38: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 Apr 18 06:38:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:38:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONF... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23757 ) Change subject: gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONFIGURED ...................................................................... gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONFIGURED A transistion from GPRS_SNS_ST_UNCONFIGURED -> GPRS_SNS_ST_UNCONFIGURED. Related: OS#5036 Change-Id: I125e7e5a08ea6aff6e0308a18b5c0a6d0392ad32 --- 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 18f388d..c6e80af 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1378,7 +1378,8 @@ static const struct osmo_fsm_state ns2_sns_bss_states[] = { [GPRS_SNS_ST_UNCONFIGURED] = { .in_event_mask = 0, /* handled by all_state_action */ - .out_state_mask = S(GPRS_SNS_ST_BSS_SIZE), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_BSS_SIZE), .name = "UNCONFIGURED", .action = ns2_sns_st_bss_unconfigured, }, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23757 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I125e7e5a08ea6aff6e0308a18b5c0a6d0392ad32 Gerrit-Change-Number: 23757 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 Sun Apr 18 06:38:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:38:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add functions for SNS add/del/change-weight messages In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23186 ) Change subject: gprs_ns2: add functions for SNS add/del/change-weight messages ...................................................................... gprs_ns2: add functions for SNS add/del/change-weight messages Related: OS#5036 Change-Id: Ib9492e213e82c18c7dcce6ba7d64e897b4c74796 --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c 2 files changed, 135 insertions(+), 0 deletions(-) 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 8e4ba9e..70e212a 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -348,6 +348,25 @@ int ip4_ep_nr, int ip6_ep_nr); int ns2_tx_sns_size_ack(struct gprs_ns2_vc *nsvc, uint8_t *cause); +int ns2_tx_sns_add(struct gprs_ns2_vc *nsvc, + uint8_t trans_id, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems, + const struct gprs_ns_ie_ip6_elem *ip6_elems, + unsigned int num_ip6_elems); +int ns2_tx_sns_change_weight(struct gprs_ns2_vc *nsvc, + uint8_t trans_id, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems, + const struct gprs_ns_ie_ip6_elem *ip6_elems, + unsigned int num_ip6_elems); +int ns2_tx_sns_del(struct gprs_ns2_vc *nsvc, + uint8_t trans_id, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems, + const struct gprs_ns_ie_ip6_elem *ip6_elems, + unsigned int num_ip6_elems); + /* transmit message over a VC */ int ns2_tx_block(struct gprs_ns2_vc *nsvc, uint8_t cause); int ns2_tx_block_ack(struct gprs_ns2_vc *nsvc); diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index 9fcd48c..93341bb 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -471,6 +471,122 @@ return ns_vc_tx(nsvc, msg); } +/*! Encode + Transmit a SNS-ADD/SNS-CHANGE-WEIGHT as per Section 9.3.2/9.3.3. + * \param[in] nsvc NS-VC through which to transmit the SNS-CONFIG + * \param[in] pdu The PDU type to send out + * \param[in] trans_id The transaction id + * \param[in] ip4_elems Array of IPv4 Elements + * \param[in] num_ip4_elems number of ip4_elems + * \param[in] ip6_elems Array of IPv6 Elements + * \param[in] num_ip6_elems number of ip6_elems + * \returns 0 on success; negative in case of error */ +static int ns2_tx_sns_procedure(struct gprs_ns2_vc *nsvc, + enum ns_pdu_type pdu, + uint8_t trans_id, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems, + const struct gprs_ns_ie_ip6_elem *ip6_elems, + unsigned int num_ip6_elems) +{ + struct msgb *msg; + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + if (!nsvc) + return -EINVAL; + + if (!ip4_elems && !ip6_elems) + return -EINVAL; + + msg = ns2_msgb_alloc(); + + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + if (!nsvc->nse->bss_sns_fi) { + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); + msgb_free(msg); + return -EIO; + } + + nsei = osmo_htons(nsvc->nse->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + nsh->pdu_type = pdu; + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + msgb_v_put(msg, trans_id); + + /* List of IP4 Elements 10.3.2c */ + if (ip4_elems) { + msgb_tvlv_put(msg, NS_IE_IPv4_LIST, num_ip4_elems*sizeof(struct gprs_ns_ie_ip4_elem), + (const uint8_t *)ip4_elems); + } else if (ip6_elems) { + /* List of IP6 elements 10.3.2d */ + msgb_tvlv_put(msg, NS_IE_IPv6_LIST, num_ip6_elems*sizeof(struct gprs_ns_ie_ip6_elem), + (const uint8_t *)ip6_elems); + } + + return ns_vc_tx(nsvc, msg); +} + +/*! Encode + Transmit a SNS-ADD as per Section 9.3.2. + * \param[in] nsvc NS-VC through which to transmit the SNS-CONFIG + * \param[in] trans_id The transaction id + * \param[in] ip4_elems Array of IPv4 Elements + * \param[in] num_ip4_elems number of ip4_elems + * \param[in] ip6_elems Array of IPv6 Elements + * \param[in] num_ip6_elems number of ip6_elems + * \returns 0 on success; negative in case of error */ +int ns2_tx_sns_add(struct gprs_ns2_vc *nsvc, + uint8_t trans_id, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems, + const struct gprs_ns_ie_ip6_elem *ip6_elems, + unsigned int num_ip6_elems) +{ + return ns2_tx_sns_procedure(nsvc, SNS_PDUT_ADD, trans_id, ip4_elems, num_ip4_elems, ip6_elems, num_ip6_elems); +} + +/*! Encode + Transmit a SNS-CHANGE-WEIGHT as per Section 9.3.3. + * \param[in] nsvc NS-VC through which to transmit the SNS-CONFIG + * \param[in] trans_id The transaction id + * \param[in] ip4_elems Array of IPv4 Elements + * \param[in] num_ip4_elems number of ip4_elems + * \param[in] ip6_elems Array of IPv6 Elements + * \param[in] num_ip6_elems number of ip6_elems + * \returns 0 on success; negative in case of error */ +int ns2_tx_sns_change_weight(struct gprs_ns2_vc *nsvc, + uint8_t trans_id, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems, + const struct gprs_ns_ie_ip6_elem *ip6_elems, + unsigned int num_ip6_elems) +{ + return ns2_tx_sns_procedure(nsvc, SNS_PDUT_CHANGE_WEIGHT, trans_id, ip4_elems, num_ip4_elems, ip6_elems, num_ip6_elems); +} + +/*! Encode + Transmit a SNS-DEL as per Section 9.3.6. + * \param[in] nsvc NS-VC through which to transmit the SNS-CONFIG + * \param[in] trans_id The transaction id + * \param[in] ip4_elems Array of IPv4 Elements + * \param[in] num_ip4_elems number of ip4_elems + * \param[in] ip6_elems Array of IPv6 Elements + * \param[in] num_ip6_elems number of ip6_elems + * \returns 0 on success; negative in case of error */ +int ns2_tx_sns_del(struct gprs_ns2_vc *nsvc, + uint8_t trans_id, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems, + const struct gprs_ns_ie_ip6_elem *ip6_elems, + unsigned int num_ip6_elems) +{ + /* TODO: IP Address field */ + return ns2_tx_sns_procedure(nsvc, SNS_PDUT_DELETE, trans_id, ip4_elems, num_ip4_elems, ip6_elems, num_ip6_elems); +} + /*! Encode + Transmit a SNS-ACK as per Section 9.3.1. * \param[in] nsvc NS-VC through which to transmit the ACK -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23186 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib9492e213e82c18c7dcce6ba7d64e897b4c74796 Gerrit-Change-Number: 23186 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Sun Apr 18 06:39:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:39:19 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/21118 ) Change subject: Configure E1 pcap file per line ...................................................................... Patch Set 9: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 9 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 18 Apr 2021 06: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 Sun Apr 18 06:39:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:39:26 +0000 Subject: Change in libosmo-abis[master]: Configure E1 pcap file per line In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/21118 ) Change subject: Configure E1 pcap file per line ...................................................................... Configure E1 pcap file per line In order to allow configuration of pcap files per e1_line the vty command is now (for example line 0): e1_line 0 pcap /tmp/e1cap.pcap in place of: pcap /tmp/e1cap.pcap Also ensures that a configured pcap appears in 'show running-config' and is written to the config file on issuing 'write' This commit deprecates e1_set_pcap_fd() Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf --- M include/osmocom/abis/e1_input.h M src/e1_input.c M src/e1_input_vty.c 3 files changed, 106 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified keith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/abis/e1_input.h b/include/osmocom/abis/e1_input.h index 9b99f12..9c3fe56 100644 --- a/include/osmocom/abis/e1_input.h +++ b/include/osmocom/abis/e1_input.h @@ -223,6 +223,10 @@ void *driver_data; struct osmo_use_count use_count; + + /* file name and file descriptor of pcap for this line */ + char *pcap_file; + int pcap_fd; }; #define e1inp_line_ipa_oml_ts(line) (&line->ts[0]) #define e1inp_line_ipa_rsl_ts(line, trx_id) (&line->ts[1 + (trx_id)]) @@ -317,8 +321,11 @@ void *rx_cbdata); /* Write LAPD frames to the fd. */ +OSMO_DEPRECATED("Use e1_set_pcap_fd2() instead") int e1_set_pcap_fd(int fd); +int e1_set_pcap_fd2(struct e1inp_line *line, int fd); + /* called by TRAU muxer to obtain the destination mux entity */ struct subch_mux *e1inp_get_mux(uint8_t e1_nr, uint8_t ts_nr); diff --git a/src/e1_input.c b/src/e1_input.c index 04c464a..93ab446 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -139,6 +139,40 @@ osmo_static_assert(offsetof(struct fake_linux_lapd_header, protocol) == 14, proto_offset); osmo_static_assert(sizeof(struct fake_linux_lapd_header) == 16, lapd_header_size); +int e1_set_pcap_fd2(struct e1inp_line *line, int fd) +{ + static const struct pcap_hdr header = { + .magic_number = 0xa1b2c3d4, + .version_major = 2, + .version_minor = 4, + .thiszone = 0, + .sigfigs = 0, + .snaplen = 65535, + .network = DLT_LINUX_LAPD, + }; + int i; + + /* write header */ + if (fd >= 0) { + int rc = write(fd, &header, sizeof(header)); + if (rc < 0) + return rc; + } + + /* Set the PCAP file descriptor for all timeslots that have + * software LAPD instances, to ensure the osmo_lapd_pcap code is + * used to write PCAP files (if requested) */ + for (i = 0; i < ARRAY_SIZE(line->ts); i++) { + struct e1inp_ts *e1i_ts = &line->ts[i]; + if (e1i_ts->lapd) + e1i_ts->lapd->pcap_fd = fd; + } + /* close previous and update */ + if (line->pcap_fd >= 0) + close(line->pcap_fd); + line->pcap_fd = fd; + return 0; +} static int pcap_fd = -1; @@ -185,7 +219,7 @@ /* This currently only works for the D-Channel */ static void write_pcap_packet(int direction, int sapi, int tei, - struct msgb *msg) { + struct msgb *msg, int pcap_fd) { if (pcap_fd < 0) return; @@ -286,7 +320,7 @@ * the _actual_ LAPD packet */ if (!e1i_ts->lapd) { write_pcap_packet(PCAP_OUTPUT, sign_link->sapi, - sign_link->tei, msg); + sign_link->tei, msg, e1i_ts->line->pcap_fd); } return 0; @@ -460,6 +494,7 @@ line->driver = driver; line->num = e1_nr; + line->pcap_fd = -1; line->rate_ctr = rate_ctr_group_alloc(line, &e1inp_ctr_g_d, line->num); if (!line->rate_ctr) { @@ -664,7 +699,7 @@ * the libosmocore LAPD implementation, it will take * care of writing the _actual_ LAPD packet */ if (!ts->lapd) - write_pcap_packet(PCAP_INPUT, sapi, tei, msg); + write_pcap_packet(PCAP_INPUT, sapi, tei, msg, ts->line->pcap_fd); /* consult the list of signalling links */ link = e1inp_lookup_sign_link(ts, tei, sapi); if (!link) { @@ -901,7 +936,7 @@ for (i = 0; i < ARRAY_SIZE(line->ts); i++) { struct e1inp_ts *e1i_ts = &line->ts[i]; if (e1i_ts->lapd) - e1i_ts->lapd->pcap_fd = pcap_fd; + e1i_ts->lapd->pcap_fd = line->pcap_fd; } /* Send a signal to anyone who is interested in new lines being @@ -916,13 +951,16 @@ static int e1i_sig_cb(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) { + struct e1inp_line *line; + if (subsys != SS_L_GLOBAL || signal != S_L_GLOBAL_SHUTDOWN) return 0; - if (pcap_fd) { - close(pcap_fd); - pcap_fd = -1; + llist_for_each_entry(line, &e1inp_line_list, list) { + if (line->pcap_fd >=0) + close(line->pcap_fd); + line->pcap_fd = -1; } return 0; diff --git a/src/e1_input_vty.c b/src/e1_input_vty.c index d915c19..64f5f63 100644 --- a/src/e1_input_vty.c +++ b/src/e1_input_vty.c @@ -245,33 +245,67 @@ return CMD_SUCCESS; } -DEFUN_ATTR(cfg_e1_pcap, cfg_e1_pcap_cmd, - "pcap .FILE", - "Setup a pcap recording of all E1 traffic\n" +DEFUN_ATTR(cfg_e1line_pcap, cfg_e1line_pcap_cmd, + "e1_line <0-255> pcap .FILE", + E1_LINE_HELP "Setup a pcap recording of E1 traffic for line\n" "Filename to save the packets to\n", CMD_ATTR_IMMEDIATE) { + struct e1inp_line *line; int fd; + int rc; + int e1_nr = atoi(argv[0]); - fd = open(argv[0], O_WRONLY | O_CREAT | O_TRUNC, 0660); - if (fd < 0) { - vty_out(vty, "Failed to setup E1 pcap recording to %s.%s", argv[0], VTY_NEWLINE); + line = e1inp_line_find(e1_nr); + if (!line) { + vty_out(vty, "%% Line %d doesn't exist%s", e1_nr, VTY_NEWLINE); return CMD_WARNING; } - e1_set_pcap_fd(fd); + fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0660); + if (fd < 0) { + vty_out(vty, "Failed to setup E1 pcap recording to %s%s", argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + rc = e1_set_pcap_fd2(line, fd); + if (rc < 0) { + vty_out(vty, "Failed to write to E1 pcap file %s%s", argv[1], VTY_NEWLINE); + close(fd); + return CMD_WARNING; + } + + osmo_talloc_replace_string(line, &line->pcap_file, argv[1]); return CMD_SUCCESS; } -DEFUN_ATTR(cfg_e1_no_pcap, cfg_e1_no_pcap_cmd, - "no pcap", - NO_STR "Disable pcap recording of all E1 traffic\n", +DEFUN_ATTR(cfg_e1line_no_pcap, cfg_e1line_no_pcap_cmd, + "no e1_line <0-255> pcap", + NO_STR E1_LINE_HELP "Disable pcap recording of E1 traffic for line\n", CMD_ATTR_IMMEDIATE) { - e1_set_pcap_fd(-1); + struct e1inp_line *line; + int e1_nr = atoi(argv[0]); + line = e1inp_line_find(e1_nr); + + e1_set_pcap_fd2(line, -1); + if (line->pcap_file) { + talloc_free(line->pcap_file); + line->pcap_file = NULL; + } return CMD_SUCCESS; } +DEFUN_DEPRECATED(cfg_e1_pcap_deprec, cfg_e1_pcap_deprec_cmd, + "pcap .FILE", "Legacy") +{ + vty_out(vty, "%% 'pcap' is deprecated and has no effect: use e1_line <0-255> pcap%s", + VTY_NEWLINE); + return CMD_WARNING; +} + +ALIAS_DEPRECATED(cfg_e1_pcap_deprec, cfg_e1_pcap_deprec_no_cmd, + "no pcap", NO_STR); + DEFUN_ATTR(cfg_e1inp, cfg_e1inp_cmd, "e1_input", "Configure E1/T1/J1 TDM input\n", CMD_ATTR_IMMEDIATE) @@ -329,6 +363,9 @@ vty_out(vty, " e1_line %u ipa-keepalive %d %d%s", line->num, line->ipa_kap->interval, line->ipa_kap->wait_for_resp, VTY_NEWLINE); + if (line->pcap_file) + vty_out(vty, " e1_line %u pcap %s%s", line->num, + line->pcap_file, VTY_NEWLINE); } const char *ipa_bind = e1inp_ipa_get_bind_addr(); @@ -365,6 +402,8 @@ vty_out(vty, "E1 Line Number %u, Name %s, Driver %s%s", line->num, line->name ? line->name : "", line->driver->name, VTY_NEWLINE); + if (line->pcap_file) + vty_out(vty, "PCAP %s%s", line->pcap_file, VTY_NEWLINE); if (line->driver->vty_show) line->driver->vty_show(vty, line); if (stats) @@ -477,8 +516,10 @@ install_lib_element(CONFIG_NODE, &cfg_e1inp_cmd); install_node(&e1inp_node, e1inp_config_write); - install_lib_element(L_E1INP_NODE, &cfg_e1_pcap_cmd); - install_lib_element(L_E1INP_NODE, &cfg_e1_no_pcap_cmd); + install_lib_element(L_E1INP_NODE, &cfg_e1line_pcap_cmd); + install_lib_element(L_E1INP_NODE, &cfg_e1line_no_pcap_cmd); + install_lib_element(L_E1INP_NODE, &cfg_e1_pcap_deprec_cmd); + install_lib_element(L_E1INP_NODE, &cfg_e1_pcap_deprec_no_cmd); install_lib_element(L_E1INP_NODE, &cfg_e1_line_driver_cmd); install_lib_element(L_E1INP_NODE, &cfg_e1_line_port_cmd); -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/21118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I316c3d6a839e84c2f52a148c6b8dd6f5933cf4bf Gerrit-Change-Number: 21118 Gerrit-PatchSet: 9 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:39:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:39:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23755 ) Change subject: ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I60f669d7c8838d460a14c6604c4375a8d47f5149 Gerrit-Change-Number: 23755 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:39: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 Apr 18 06:40:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:40:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: TC_sns_bss_change_weight_timeout rework TC to use g_handle_rx_alive In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23756 ) Change subject: ns: TC_sns_bss_change_weight_timeout rework TC to use g_handle_rx_alive ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23756 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I45f4392b556912bf60859f354a5687a44e6beeb1 Gerrit-Change-Number: 23756 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 18 Apr 2021 06:40:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:40:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:40:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Remove CSFB references from RR Chan Release CellSelectionIndicator IE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23764 ) Change subject: Remove CSFB references from RR Chan Release CellSelectionIndicator IE ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia1eeda98fc21aa92bb2e41b5e4761c5cf6516a7e Gerrit-Change-Number: 23764 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:40: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 Apr 18 06:41:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:41:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23766 ) Change subject: BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields ...................................................................... Patch Set 1: Code-Review+1 I'd prefer to get the rebased BSSMAP to the master of our fork, instead of changing this here to a 'pespin' (or any other developers') branch. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9cc4d161fa7083e30d3bf8f10e959d1fe7b86032 Gerrit-Change-Number: 23766 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:41:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:42:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:42:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP: Support setting LastUsedPLMNId in CommonId msg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23767 ) Change subject: BSSMAP: Support setting LastUsedPLMNId in CommonId msg ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1b7c7fbe010033e726dde3c68152543a63760ffd Gerrit-Change-Number: 23767 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:42:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:42:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:42:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Update and add tests checking Last Used EUTRAN PLMN Id In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23768 ) Change subject: bsc: Update and add tests checking Last Used EUTRAN PLMN Id ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7b2e5a3ad24c10e279a7f1c447804100168203ba Gerrit-Change-Number: 23768 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:42: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 Sun Apr 18 06:43:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:43:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Introduce TC_srvcc_eutran_to_geran In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23776 ) Change subject: bsc: Introduce TC_srvcc_eutran_to_geran ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If26cc9241b1b0eb4112f1227427008ece242bb41 Gerrit-Change-Number: 23776 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:43:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:45:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:45:47 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23760 ) Change subject: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 2: Code-Review+2 (1 comment) I don't think we should invest time in fancy runtime ABI incompatibility detection. We bump the LIBVERSION when we tag a new release, as always. https://gerrit.osmocom.org/c/libosmocore/+/23760/2/include/osmocom/gsm/gsm0808.h File include/osmocom/gsm/gsm0808.h: https://gerrit.osmocom.org/c/libosmocore/+/23760/2/include/osmocom/gsm/gsm0808.h at 129 PS2, Line 129: / please move/keep the comment below above the more_items. Otherwise it doesn't really make sense above the last_eutran_plmn_* -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 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-CC: osmith Gerrit-Comment-Date: Sun, 18 Apr 2021 06:45: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 Sun Apr 18 06:46:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:46:05 +0000 Subject: Change in pysim[master]: setup: add (nested) library pySim.transport In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23775 ) Change subject: setup: add (nested) library pySim.transport ...................................................................... setup: add (nested) library pySim.transport * setup.py did not install pySim.transport sub-library Change-Id: Ice026a28c4843121591f3404225c7f6aec4df6c7 --- M setup.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved; Verified diff --git a/setup.py b/setup.py index 0fa3f1a..6b4335a 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ setup( name='pySim', version='1.0', - packages=['pySim'], + packages=['pySim', 'pySim.transport'], url='https://osmocom.org/projects/pysim/wiki', license='GPLv2', author_email='simtrace at lists.osmocom.org', -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ice026a28c4843121591f3404225c7f6aec4df6c7 Gerrit-Change-Number: 23775 Gerrit-PatchSet: 1 Gerrit-Owner: Falkenber9 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 Sun Apr 18 06:48:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:48:59 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 6 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: Sun, 18 Apr 2021 06:48: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 Sun Apr 18 06:50:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:50:41 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23753 ) Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23753/5/src/osmo-bsc/handover_fsm.c File src/osmo-bsc/handover_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23753/5/src/osmo-bsc/handover_fsm.c at 421 PS5, Line 421: stat this should probably be in libosmocore 08.08 code, adn not a private definition here in the BSC. What if we soon e.g. need to implement the counterpart in the MSC side? or in a bsc_nat? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:50:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:51:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:51:06 +0000 Subject: Change in osmo-pcap[master]: vty: register commands for talloc context introspection In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23777 ) Change subject: vty: register commands for talloc context introspection ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I3774cfd483102993340bd6e96f8512af61085679 Gerrit-Change-Number: 23777 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 18 Apr 2021 06: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 Sun Apr 18 06:51:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:51:39 +0000 Subject: Change in osmo-pcap[master]: manuals: generate VTY reference for osmo-pcap-{client, server} In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23691 ) Change subject: manuals: generate VTY reference for osmo-pcap-{client,server} ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Gerrit-Change-Number: 23691 Gerrit-PatchSet: 4 Gerrit-Owner: roh Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 18 Apr 2021 06: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 Sun Apr 18 06:51:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:51:42 +0000 Subject: Change in osmo-pcap[master]: manuals: generate VTY reference for osmo-pcap-{client, server} In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23691 ) Change subject: manuals: generate VTY reference for osmo-pcap-{client,server} ...................................................................... manuals: generate VTY reference for osmo-pcap-{client,server} Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Tweaked-By: Vadim Yanitskiy --- M .gitignore M configure.ac M contrib/jenkins.sh M doc/Makefile.am A doc/manuals/Makefile.am A doc/manuals/vty/Makefile.vty-reference.inc A doc/manuals/vty/osmo-pcap-vty-reference.xml A doc/manuals/vty/vty_additions.xml M src/osmo_client_main.c M src/osmo_server_main.c 10 files changed, 214 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/.gitignore b/.gitignore index dd48c7d..cd976d9 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,12 @@ tests/testsuite.log contrib/osmo-pcap.spec + +# manuals +doc/manuals/generated/ +doc/manuals/vty/osmo-pcap-*-vty-reference.pdf +doc/manuals/vty/osmo-pcap-*-vty-reference.xml +doc/manuals/vty/osmo-pcap-*-vty-reference.xml.inc.gen +doc/manuals/vty/osmo-pcap-*-vty-reference.xml.inc.merged +doc/manuals/common +doc/manuals/build diff --git a/configure.ac b/configure.ac index 8ec9c88..f4c004a 100644 --- a/configure.ac +++ b/configure.ac @@ -5,6 +5,46 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +AC_ARG_ENABLE(manuals, + [AS_HELP_STRING( + [--enable-manuals], + [Generate manual PDFs [default=no]], + )], + [osmo_ac_build_manuals=$enableval], [osmo_ac_build_manuals="no"]) +AM_CONDITIONAL([BUILD_MANUALS], [test x"$osmo_ac_build_manuals" = x"yes"]) +AC_ARG_VAR(OSMO_GSM_MANUALS_DIR, [path to common osmo-gsm-manuals files, overriding pkg-config and "../osmo-gsm-manuals" + fallback]) +if test x"$osmo_ac_build_manuals" = x"yes" +then + # Find OSMO_GSM_MANUALS_DIR (env, pkg-conf, fallback) + if test -n "$OSMO_GSM_MANUALS_DIR"; then + echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from env)" + else + OSMO_GSM_MANUALS_DIR="$($PKG_CONFIG osmo-gsm-manuals --variable=osmogsmmanualsdir 2>/dev/null)" + if test -n "$OSMO_GSM_MANUALS_DIR"; then + echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from pkg-conf)" + else + OSMO_GSM_MANUALS_DIR="../osmo-gsm-manuals" + echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (fallback)" + fi + fi + if ! test -d "$OSMO_GSM_MANUALS_DIR"; then + AC_MSG_ERROR("OSMO_GSM_MANUALS_DIR does not exist! Install osmo-gsm-manuals or set OSMO_GSM_MANUALS_DIR.") + fi + + # Find and run check-depends + CHECK_DEPENDS="$OSMO_GSM_MANUALS_DIR/check-depends.sh" + if ! test -x "$CHECK_DEPENDS"; then + CHECK_DEPENDS="osmo-gsm-manuals-check-depends" + fi + if ! $CHECK_DEPENDS; then + AC_MSG_ERROR("missing dependencies for --enable-manuals") + fi + + # Put in Makefile with absolute path + OSMO_GSM_MANUALS_DIR="$(realpath "$OSMO_GSM_MANUALS_DIR")" + AC_SUBST([OSMO_GSM_MANUALS_DIR]) +fi CFLAGS="$CFLAGS -std=gnu11" @@ -150,5 +190,6 @@ contrib/osmo-pcap.spec doc/Makefile doc/examples/Makefile + doc/manuals/Makefile tests/Makefile Makefile) diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index f1779dc..ae5177f 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -41,6 +41,11 @@ DISTCHECK_CONFIGURE_FLAGS="--with-pcap-config=/bin/true" \ PCAP_LIBS="-lpcap" PCAP_CFLAGS="" \ $MAKE distcheck || cat-testlogs.sh + +if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then + make -C "$base/doc/manuals" publish +fi + $MAKE maintainer-clean osmo-clean-workspace.sh diff --git a/doc/Makefile.am b/doc/Makefile.am index aee2d7b..f04764f 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1 +1,4 @@ -SUBDIRS = examples +SUBDIRS = \ + examples \ + manuals \ + $(NULL) diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am new file mode 100644 index 0000000..2e24c6c --- /dev/null +++ b/doc/manuals/Makefile.am @@ -0,0 +1,11 @@ +EXTRA_DIST = vty + +if BUILD_MANUALS + # This is a significantly modified, multi-target adopted copy of + # $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc + VARIANTS = client server + include $(srcdir)/vty/Makefile.vty-reference.inc + + OSMO_REPOSITORY = osmo-pcap + include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc +endif diff --git a/doc/manuals/vty/Makefile.vty-reference.inc b/doc/manuals/vty/Makefile.vty-reference.inc new file mode 100644 index 0000000..ea8c68e --- /dev/null +++ b/doc/manuals/vty/Makefile.vty-reference.inc @@ -0,0 +1,37 @@ +DOCBOOKS = $(foreach v,$(VARIANTS),vty/osmo-pcap-$(v)-vty-reference.xml) +DOCBOOKS_DEPS = $(DOCBOOKS) $(addsuffix .inc,$(DOCBOOKS)) +INC_DIR = $(abspath $(builddir)/vty) + +include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.docbook.inc + +CLEAN_FILES += $(DOCBOOKS_DEPS) +CLEAN_FILES += $(addsuffix .inc.gen,$(DOCBOOKS)) +CLEAN_FILES += $(addsuffix .inc.merged,$(DOCBOOKS)) + +$(INC_DIR): + mkdir -p $@ + +vty/osmo-pcap-%-vty-reference.xml: $(top_builddir)/src/osmo-pcap-% $(INC_DIR) + sed -e "s|@@GENERATED@@|$@.inc|" \ + -e "s|@@VARIANT@@|$(notdir $<)|" \ + -e "s|@@REV_NUMBER@@|$(VERSION)|" \ + -e "s|@@REV_DATE@@|$(shell date +"%dth %B %Y")|" \ + -e "s|@@CR_YEAR@@|$(shell date +"%Y")|" \ + $(srcdir)/vty/osmo-pcap-vty-reference.xml > $@ + +vty/osmo-pcap-%-vty-reference.xml.inc: $(top_builddir)/src/osmo-pcap-% \ + $(OSMO_GSM_MANUALS_DIR)/common/vty_additions.xml \ + $(OSMO_GSM_MANUALS_DIR)/common/chapters/vty.xml \ + $(OSMO_GSM_MANUALS_DIR)/vty_reference.xsl \ + $(srcdir)/vty/*.xml $(INC_DIR) + # a) Invoke osmo-pcap-% to generate the list of commands first + $< --vty-ref-mode default --vty-ref-xml > "$@.gen" + # ... filter garbage potentially printed by libraries to stdout + sed -i '/^ "$@.merged" + # c) Convert the result of b) into a valid docbook + xsltproc $(OSMO_GSM_MANUALS_DIR)/vty_reference.xsl "$@.merged" > $@ diff --git a/doc/manuals/vty/osmo-pcap-vty-reference.xml b/doc/manuals/vty/osmo-pcap-vty-reference.xml new file mode 100644 index 0000000..f4955dc --- /dev/null +++ b/doc/manuals/vty/osmo-pcap-vty-reference.xml @@ -0,0 +1,35 @@ + + + + +]> + + + + + + v1 + @@REV_DATE@@ + s.f.m.c. + Automatic build (@@REV_NUMBER@@) + + + + OsmoPCAP VTY Reference + @@VARIANT@@ + + + @@CR_YEAR@@ + + + + This work is copyright by sysmocom - s.f.m.c. GmbH. All rights reserved. + + + + + + &chapter-vty; + diff --git a/doc/manuals/vty/vty_additions.xml b/doc/manuals/vty/vty_additions.xml new file mode 100644 index 0000000..a4c675e --- /dev/null +++ b/doc/manuals/vty/vty_additions.xml @@ -0,0 +1,2 @@ + + diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index c7d68d4..4ef46cc 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -98,12 +98,41 @@ printf(" -T --timestamp. Print a timestamp in the debug output.\n"); printf(" -e --log-level number. Set a global loglevel.\n"); printf(" -c --config-file filename The config file to use.\n"); + + printf("\nVTY reference generation:\n"); + printf(" --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); +} + +static void handle_long_options(const char *prog_name, const int long_option) +{ + static int vty_ref_mode = VTY_REF_GEN_MODE_DEFAULT; + switch (long_option) { + case 1: + vty_ref_mode = get_string_value(vty_ref_gen_mode_names, optarg); + if (vty_ref_mode < 0) { + fprintf(stderr, "%s: Unknown VTY reference generation " + "mode '%s'\n", prog_name, optarg); + exit(2); + } + break; + case 2: + fprintf(stderr, "Generating the VTY reference in mode '%s' (%s)\n", + get_value_string(vty_ref_gen_mode_names, vty_ref_mode), + get_value_string(vty_ref_gen_mode_desc, vty_ref_mode)); + vty_dump_xml_ref_mode(stdout, (enum vty_ref_gen_mode) vty_ref_mode); + exit(0); + default: + fprintf(stderr, "%s: error parsing cmdline options\n", prog_name); + exit(2); + } } static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; + static int long_option = 0; static struct option long_options[] = { {"help", 0, 0, 'h'}, {"daemonize", 0, 0, 'D'}, @@ -112,6 +141,8 @@ {"timestamp", 0, 0, 'T'}, {"log-level", 1, 0, 'e'}, {"config-file", 1, 0, 'c'}, + {"vty-ref-mode", 1, &long_option, 1}, + {"vty-ref-xml", 0, &long_option, 2}, {0, 0, 0, 0} }; @@ -125,6 +156,9 @@ print_usage(); print_help(); exit(0); + case 0: + handle_long_options(argv[0], long_option); + break; case 'D': daemonize = 1; break; @@ -197,6 +231,7 @@ vty_init(&vty_info); logging_vty_add_cmds(); osmo_stats_vty_add_cmds(); + vty_client_init(tall_cli_ctx); /* parse options */ handle_options(argc, argv); @@ -226,7 +261,6 @@ LOGP(DCLIENT, LOGL_ERROR, "Failed to allocate osmo_pcap_client.\n"); exit(1); } - vty_client_init(pcap_client); /* initialize the queue */ INIT_LLIST_HEAD(&pcap_client->conns); diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index 51441a7..9fa00e1 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -108,12 +108,41 @@ printf(" -T --timestamp. Print a timestamp in the debug output.\n"); printf(" -e --log-level number. Set a global loglevel.\n"); printf(" -c --config-file filename The config file to use.\n"); + + printf("\nVTY reference generation:\n"); + printf(" --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); +} + +static void handle_long_options(const char *prog_name, const int long_option) +{ + static int vty_ref_mode = VTY_REF_GEN_MODE_DEFAULT; + switch (long_option) { + case 1: + vty_ref_mode = get_string_value(vty_ref_gen_mode_names, optarg); + if (vty_ref_mode < 0) { + fprintf(stderr, "%s: Unknown VTY reference generation " + "mode '%s'\n", prog_name, optarg); + exit(2); + } + break; + case 2: + fprintf(stderr, "Generating the VTY reference in mode '%s' (%s)\n", + get_value_string(vty_ref_gen_mode_names, vty_ref_mode), + get_value_string(vty_ref_gen_mode_desc, vty_ref_mode)); + vty_dump_xml_ref_mode(stdout, (enum vty_ref_gen_mode) vty_ref_mode); + exit(0); + default: + fprintf(stderr, "%s: error parsing cmdline options\n", prog_name); + exit(2); + } } static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; + static int long_option = 0; static struct option long_options[] = { {"help", 0, 0, 'h'}, {"daemonize", 0, 0, 'D'}, @@ -122,6 +151,8 @@ {"timestamp", 0, 0, 'T'}, {"log-level", 1, 0, 'e'}, {"config-file", 1, 0, 'c'}, + {"vty-ref-mode", 1, &long_option, 1}, + {"vty-ref-xml", 0, &long_option, 2}, {0, 0, 0, 0} }; @@ -135,6 +166,9 @@ print_usage(); print_help(); exit(0); + case 0: + handle_long_options(argv[0], long_option); + break; case 'D': daemonize = 1; break; @@ -210,6 +244,7 @@ vty_init(&vty_info); logging_vty_add_cmds(); osmo_stats_vty_add_cmds(); + vty_server_init(tall_srv_ctx); /* parse options */ handle_options(argc, argv); @@ -249,7 +284,6 @@ pcap_server->base_path = talloc_strdup(pcap_server, "./"); pcap_server->max_size = 1073741824; pcap_server->max_snaplen = DEFAULT_SNAPLEN; - vty_server_init(pcap_server); if (vty_read_config_file(config_file, NULL) < 0) { LOGP(DSERVER, LOGL_ERROR, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I28353f51de798535a3bb6efdc6c2da443d96ddfb Gerrit-Change-Number: 23691 Gerrit-PatchSet: 4 Gerrit-Owner: roh Gerrit-Assignee: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:52:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:52:02 +0000 Subject: Change in osmo-pcap[master]: vty_{client, server}_init(): remove unused argument In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23778 ) Change subject: vty_{client,server}_init(): remove unused argument ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I65256c8602e91bcdbe5fe9e532b6ce7d347d3980 Gerrit-Change-Number: 23778 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 18 Apr 2021 06:52: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 Apr 18 06:52:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:52:04 +0000 Subject: Change in osmo-pcap[master]: vty: register commands for talloc context introspection In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23777 ) Change subject: vty: register commands for talloc context introspection ...................................................................... vty: register commands for talloc context introspection Change-Id: I3774cfd483102993340bd6e96f8512af61085679 --- M src/osmo_client_main.c M src/osmo_server_main.c 2 files 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/src/osmo_client_main.c b/src/osmo_client_main.c index 4ef46cc..cbaefef 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -228,9 +229,11 @@ osmo_init_logging2(tall_cli_ctx, &log_info); vty_info.copyright = osmopcap_copyright; + vty_info.tall_ctx = tall_cli_ctx; vty_init(&vty_info); logging_vty_add_cmds(); osmo_stats_vty_add_cmds(); + osmo_talloc_vty_add_cmds(); vty_client_init(tall_cli_ctx); /* parse options */ diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index 9fa00e1..f8850db 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -241,9 +242,11 @@ osmo_init_logging2(tall_srv_ctx, &log_info); vty_info.copyright = osmopcap_copyright; + vty_info.tall_ctx = tall_srv_ctx; vty_init(&vty_info); logging_vty_add_cmds(); osmo_stats_vty_add_cmds(); + osmo_talloc_vty_add_cmds(); vty_server_init(tall_srv_ctx); /* parse options */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I3774cfd483102993340bd6e96f8512af61085679 Gerrit-Change-Number: 23777 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 Sun Apr 18 06:52:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:52:05 +0000 Subject: Change in osmo-pcap[master]: vty_{client, server}_init(): remove unused argument In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23778 ) Change subject: vty_{client,server}_init(): remove unused argument ...................................................................... vty_{client,server}_init(): remove unused argument Change-Id: I65256c8602e91bcdbe5fe9e532b6ce7d347d3980 --- M include/osmo-pcap/osmo_pcap_client.h M include/osmo-pcap/osmo_pcap_server.h M src/osmo_client_main.c M src/osmo_client_vty.c M src/osmo_server_main.c M src/osmo_server_vty.c 6 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/include/osmo-pcap/osmo_pcap_client.h b/include/osmo-pcap/osmo_pcap_client.h index 70be8db..887d422 100644 --- a/include/osmo-pcap/osmo_pcap_client.h +++ b/include/osmo-pcap/osmo_pcap_client.h @@ -107,7 +107,7 @@ extern struct osmo_pcap_client *pcap_client; struct osmo_pcap_client *osmo_pcap_client_alloc(void *tall_ctx); -int vty_client_init(struct osmo_pcap_client *); +int vty_client_init(void); int osmo_client_capture(struct osmo_pcap_client *client, const char *device); int osmo_client_filter(struct osmo_pcap_client *client, const char *filter); diff --git a/include/osmo-pcap/osmo_pcap_server.h b/include/osmo-pcap/osmo_pcap_server.h index a983ec5..7de94a6 100644 --- a/include/osmo-pcap/osmo_pcap_server.h +++ b/include/osmo-pcap/osmo_pcap_server.h @@ -144,7 +144,7 @@ struct osmo_pcap_conn *osmo_pcap_server_find(struct osmo_pcap_server *ser, const char *name); void osmo_pcap_server_delete(struct osmo_pcap_conn *conn); -void vty_server_init(struct osmo_pcap_server *server); +void vty_server_init(void); void osmo_pcap_server_close_trace(struct osmo_pcap_conn *conn); void osmo_pcap_server_close_conn(struct osmo_pcap_conn *conn); diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index cbaefef..7ca3548 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -234,7 +234,7 @@ logging_vty_add_cmds(); osmo_stats_vty_add_cmds(); osmo_talloc_vty_add_cmds(); - vty_client_init(tall_cli_ctx); + vty_client_init(); /* parse options */ handle_options(argc, argv); diff --git a/src/osmo_client_vty.c b/src/osmo_client_vty.c index fed9bf6..7458f85 100644 --- a/src/osmo_client_vty.c +++ b/src/osmo_client_vty.c @@ -519,7 +519,7 @@ } -int vty_client_init(struct osmo_pcap_client *pcap) +int vty_client_init(void) { install_element(CONFIG_NODE, &cfg_client_cmd); install_node(&client_node, config_write_client); diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index f8850db..9c234d5 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -247,7 +247,7 @@ logging_vty_add_cmds(); osmo_stats_vty_add_cmds(); osmo_talloc_vty_add_cmds(); - vty_server_init(tall_srv_ctx); + vty_server_init(); /* parse options */ handle_options(argc, argv); diff --git a/src/osmo_server_vty.c b/src/osmo_server_vty.c index e9b54b1..87bcfa2 100644 --- a/src/osmo_server_vty.c +++ b/src/osmo_server_vty.c @@ -513,7 +513,7 @@ return CMD_SUCCESS; } -void vty_server_init(struct osmo_pcap_server *server) +void vty_server_init(void) { install_element(CONFIG_NODE, &cfg_server_cmd); install_node(&server_node, config_write_server); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I65256c8602e91bcdbe5fe9e532b6ce7d347d3980 Gerrit-Change-Number: 23778 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 Apr 18 06:52:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:52:32 +0000 Subject: Change in osmo-trx[master]: gitignore: remove non-existing 'doc/manuals/osmomsc-usermanual.xml' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/23779 ) Change subject: gitignore: remove non-existing 'doc/manuals/osmomsc-usermanual.xml' ...................................................................... gitignore: remove non-existing 'doc/manuals/osmomsc-usermanual.xml' Change-Id: If0fef3f12f15780ed3a3e33db25cd29082ff142a --- M .gitignore 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/.gitignore b/.gitignore index 43fdfc2..2020422 100644 --- a/.gitignore +++ b/.gitignore @@ -67,7 +67,6 @@ doc/manuals/vty/osmotrx-*-vty-reference.xml doc/manuals/vty/osmotrx-*-vty-reference.xml.inc.gen doc/manuals/vty/osmotrx-*-vty-reference.xml.inc.merged -doc/manuals/osmomsc-usermanual.xml doc/manuals/common doc/manuals/build -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/23779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If0fef3f12f15780ed3a3e33db25cd29082ff142a Gerrit-Change-Number: 23779 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 Sun Apr 18 06:52:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:52:55 +0000 Subject: Change in osmo-bts[master]: rsl: do not blindly ignore unhandled/unknown Channel Mode In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23780 ) Change subject: rsl: do not blindly ignore unhandled/unknown Channel Mode ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67a70132999be6580a29e6b814763309a6df4ae9 Gerrit-Change-Number: 23780 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:52:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:52:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:52:59 +0000 Subject: Change in osmo-bts[master]: rsl: do not blindly ignore unhandled/unknown Channel Mode In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23780 ) Change subject: rsl: do not blindly ignore unhandled/unknown Channel Mode ...................................................................... rsl: do not blindly ignore unhandled/unknown Channel Mode Change-Id: I67a70132999be6580a29e6b814763309a6df4ae9 Related: SYS#4895 --- M src/common/rsl.c 1 file changed, 14 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/rsl.c b/src/common/rsl.c index 525b637..8488ab7 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -112,8 +112,8 @@ } /* compute lchan->rsl_cmode and lchan->tch_mode from RSL CHAN MODE IE */ -static void lchan_tchmode_from_cmode(struct gsm_lchan *lchan, - struct rsl_ie_chan_mode *cm) +static int lchan_tchmode_from_cmode(struct gsm_lchan *lchan, + const struct rsl_ie_chan_mode *cm) { lchan->rsl_cmode = cm->spd_ind; lchan->ts->trx->bts->dtxd = (cm->dtx_dtu & RSL_CMOD_DTXd) ? true : false; @@ -137,7 +137,11 @@ case RSL_CMOD_SP_NT_6k0: lchan->tch_mode = GSM48_CMODE_DATA_6k0; break; + default: + return -ENOTSUP; } + + return 0; } @@ -1359,7 +1363,10 @@ return rsl_tx_chan_act_nack(lchan, RSL_ERR_MAND_IE_ERROR); } cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE); - lchan_tchmode_from_cmode(lchan, cm); + if (lchan_tchmode_from_cmode(lchan, cm) != 0) { + LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Unhandled RSL Channel Mode\n"); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_IE_CONTENT); + } } /* 9.3.7 Encryption Information */ @@ -1874,7 +1881,10 @@ return rsl_tx_mode_modif_nack(lchan, RSL_ERR_MAND_IE_ERROR); } cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE); - lchan_tchmode_from_cmode(lchan, cm); + if (lchan_tchmode_from_cmode(lchan, cm) != 0) { + LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Unhandled RSL Channel Mode\n"); + return rsl_tx_mode_modif_nack(lchan, RSL_ERR_IE_CONTENT); + } if (bts_supports_cm(lchan->ts->trx->bts, ts_pchan(lchan->ts), lchan->tch_mode) != 1) { LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "%s: invalid mode: %s (wrong BSC configuration?)\n", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67a70132999be6580a29e6b814763309a6df4ae9 Gerrit-Change-Number: 23780 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 Apr 18 06:53:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:53:16 +0000 Subject: Change in osmo-bts[master]: manuals: remove deprecated command line parameters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23769 ) Change subject: manuals: remove deprecated command line parameters ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie49abeb9647e3c8abdc9e110ab1a71c116f5def6 Gerrit-Change-Number: 23769 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 18 Apr 2021 06: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 Sun Apr 18 06:53:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:53:28 +0000 Subject: Change in osmo-bts[master]: manuals: document new 'gsmtap-remote-host' command In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23770 ) Change subject: manuals: document new 'gsmtap-remote-host' command ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7f75fbac77a612493ce187cfac3c4ae203c81b23 Gerrit-Change-Number: 23770 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 06:53: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 Apr 18 06:53:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:53:33 +0000 Subject: Change in osmo-bts[master]: manuals: remove deprecated command line parameters In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23769 ) Change subject: manuals: remove deprecated command line parameters ...................................................................... manuals: remove deprecated command line parameters Change-Id: Ie49abeb9647e3c8abdc9e110ab1a71c116f5def6 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 1 insertion(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 6b9adc1..ede80ea 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -19,7 +19,7 @@ generic command line options: ==== SYNOPSIS -*osmo-bts-sysmo* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE' ] [-s] [-T] [-e 'LOGLEVEL'] [-r 'PRIO'] [-i 'GSMTAP-IP'] [-t <1-255>] +*osmo-bts-sysmo* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE' ] [-s] [-T] [-e 'LOGLEVEL'] ==== OPTIONS *-h, --help*:: @@ -48,16 +48,6 @@ Set the global log level for logging to stderr. This has mostly been deprecated by VTY based logging configuration, see <> for further information. -*-r, --realtime 'PRIO'*:: - Enable use of the Linux kernel realtime priority scheduler with - the specified priority. - It is recommended you use this option on low-performance - embedded systems or systems that encounter high non-GSM/GPRS - load. -*-i, --gsmtap-ip 'GSMTAP-IP'*:: - Specify the destination IP address for GSMTAP messages. -*-t, --trx-num <1-255>*:: - Specify the number of TRX supported by this BTS. There may be additional, hardware specific command line options by the different bts_model implementations. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie49abeb9647e3c8abdc9e110ab1a71c116f5def6 Gerrit-Change-Number: 23769 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 Apr 18 06:53:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:53:34 +0000 Subject: Change in osmo-bts[master]: manuals: document new 'gsmtap-remote-host' command In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23770 ) Change subject: manuals: document new 'gsmtap-remote-host' command ...................................................................... manuals: document new 'gsmtap-remote-host' command Change-Id: I7f75fbac77a612493ce187cfac3c4ae203c81b23 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 17 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved dexter: 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 ede80ea..f6ca75e 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -108,11 +108,22 @@ *tcpdump* or *tshark* for further analysis by the *wireshark* protocol analyzer. -In order to activate this feature, you first need to make sure to start -OsmoBTS using the `-i` or `--gsmtap-ip` command line option, specifying -the destination IP address for the GSMTAP messages. In most cases, -using 127.0.0.1 for passing the messages over the loopback (`lo`) device -will be sufficient. +In order to activate this feature, you first need to make sure to specify +the remote address of _GSMTAP_ host in the configuration file. In most +cases, using 127.0.0.1 for passing the messages over the loopback (`lo`) +device will be sufficient: + +.Example: Enabling GSMTAP Um-frame logging to localhost +---- +bts 0 + gsmtap-remote-host 127.0.0.1 <1> +---- +<1> Destination address for _GSMTAP_ Um-frames + +NOTE: Changing this parameter at run-time will not affect the existing +_GSMTAP_ connection, full program restart is required. + +NOTE: Command line parameters `-i` and `--gsmtap-ip` have been deprecated. OsmoBTS can selectively trace such messages by their L1 SAPI, for both Rx and Tx. For a complete list of L1 SAPI values, please refer to the @@ -153,8 +164,7 @@ From the moment they are enabled via VTY, GSMTAP messages will be generated and sent in UDP encapsulation to the IANA-registered UDP port -for GSMTAP (4729) at the IP address specified in the command line -argument. +for GSMTAP (4729) of the specified remote address. ==== Configuring power ramping -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7f75fbac77a612493ce187cfac3c4ae203c81b23 Gerrit-Change-Number: 23770 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria 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 Sun Apr 18 06:54:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:54:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): use values from ConnL1Pars In-Reply-To: References: Message-ID: laforge 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 4: Code-Review+2 -- 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: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 18 Apr 2021 06: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 Sun Apr 18 06:54:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:54:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): make MEAS_VALID flag configurable In-Reply-To: References: Message-ID: laforge 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 2: Code-Review+2 -- 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: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 18 Apr 2021 06:54:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 06:54:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:54:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): use values from ConnL1Pars In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21319 ) 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(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 555fe0c..7816836 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1857,7 +1857,11 @@ [] 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, mp_rxlev_exp, mp_rxlev_exp)); + lb := ts_LAPDm_AB(0, ts_MEAS_REP(true, /* TODO: make it configurable too */ + g_pars.l1_pars.meas_ul.full.rxlev, + g_pars.l1_pars.meas_ul.sub.rxlev, + g_pars.l1_pars.meas_ul.full.rxqual, + g_pars.l1_pars.meas_ul.sub.rxqual)); log("LAPDm: ", lb); var template (value) SacchL1Header l1h := ts_SacchL1Header( -- 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: 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 Sun Apr 18 06:54:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 06:54:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): make MEAS_VALID flag configurable In-Reply-To: References: Message-ID: laforge has submitted this change. ( 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(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 7816836..8ae8eb2 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -777,6 +777,7 @@ l1_pars := { dtx_enabled := false, toa256_enabled := false, + meas_valid := true, meas_ul := { full := { rxlev := mp_ul_rxlev_exp, @@ -1857,7 +1858,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, @@ -1939,6 +1940,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: 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 Apr 18 12:24:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 12:24:25 +0000 Subject: Change in osmo-pcap[master]: add "--version" to osmo-pcap-client and -server References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23781 ) Change subject: add "--version" to osmo-pcap-client and -server ...................................................................... add "--version" to osmo-pcap-client and -server Change-Id: Ib82ee1a784a657f7274d78ba5f7a8afe6cfab395 --- M src/osmo_client_main.c M src/osmo_server_main.c 2 files changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/81/23781/1 diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index 7ca3548..831450d 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -94,6 +94,7 @@ printf(" Some useful help...\n"); printf(" -h --help this text\n"); printf(" -D --daemonize Fork the process into a background daemon\n"); + printf(" -V --version Print the version number\n"); printf(" -d option --debug=DRLL:DCC:DMM:DRR:DRSL:DNM enable debugging\n"); printf(" -s --disable-color\n"); printf(" -T --timestamp. Print a timestamp in the debug output.\n"); @@ -138,6 +139,7 @@ {"help", 0, 0, 'h'}, {"daemonize", 0, 0, 'D'}, {"debug", 1, 0, 'd'}, + {"version", 0, 0, 'V'}, {"disable-color", 0, 0, 's'}, {"timestamp", 0, 0, 'T'}, {"log-level", 1, 0, 'e'}, @@ -166,6 +168,10 @@ case 'd': log_parse_category_mask(osmo_stderr_target, optarg); break; + case 'V': + print_version(1); + exit(0); + break; case 's': log_set_use_color(osmo_stderr_target, 0); break; diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index 9c234d5..112bd47 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -104,6 +104,7 @@ printf(" Some useful help...\n"); printf(" -h --help this text\n"); printf(" -D --daemonize Fork the process into a background daemon\n"); + printf(" -V --version Print the version number\n"); printf(" -d option --debug=DRLL:DCC:DMM:DRR:DRSL:DNM enable debugging\n"); printf(" -s --disable-color\n"); printf(" -T --timestamp. Print a timestamp in the debug output.\n"); @@ -148,6 +149,7 @@ {"help", 0, 0, 'h'}, {"daemonize", 0, 0, 'D'}, {"debug", 1, 0, 'd'}, + {"version", 0, 0, 'V'}, {"disable-color", 0, 0, 's'}, {"timestamp", 0, 0, 'T'}, {"log-level", 1, 0, 'e'}, @@ -176,6 +178,9 @@ case 'd': log_parse_category_mask(osmo_stderr_target, optarg); break; + case 'V': + print_version(1); + exit(0); case 's': log_set_use_color(osmo_stderr_target, 0); break; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: Ib82ee1a784a657f7274d78ba5f7a8afe6cfab395 Gerrit-Change-Number: 23781 Gerrit-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 Apr 18 12:26:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 12:26:18 +0000 Subject: Change in osmo-pcap[master]: update copyright statement; Holger worked on it until 2017 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23782 ) Change subject: update copyright statement; Holger worked on it until 2017 ...................................................................... update copyright statement; Holger worked on it until 2017 Change-Id: I7a39d4780d309f2dba99272c17bf1b9639760199 --- M src/osmo_common.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/82/23782/1 diff --git a/src/osmo_common.c b/src/osmo_common.c index 6352097..39f448a 100644 --- a/src/osmo_common.c +++ b/src/osmo_common.c @@ -63,7 +63,7 @@ }; const char *osmopcap_copyright = - "Copyright (C) 2011 Holger Freyther\r\n" + "Copyright (C) 2011-2017 Holger Freyther and contributors\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"; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I7a39d4780d309f2dba99272c17bf1b9639760199 Gerrit-Change-Number: 23782 Gerrit-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 Apr 18 13:03:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 18 Apr 2021 13:03:20 +0000 Subject: Change in osmo-pcap[master]: add "--version" to osmo-pcap-client and -server In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23781 ) Change subject: add "--version" to osmo-pcap-client and -server ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: Ib82ee1a784a657f7274d78ba5f7a8afe6cfab395 Gerrit-Change-Number: 23781 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 18 Apr 2021 13: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 Sun Apr 18 13:03:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 18 Apr 2021 13:03:35 +0000 Subject: Change in osmo-pcap[master]: update copyright statement; Holger worked on it until 2017 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23782 ) Change subject: update copyright statement; Holger worked on it until 2017 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I7a39d4780d309f2dba99272c17bf1b9639760199 Gerrit-Change-Number: 23782 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 18 Apr 2021 13:03:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 13:26:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 13:26:20 +0000 Subject: Change in osmo-pcap[master]: Add user manual for osmo-pcap References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23783 ) Change subject: Add user manual for osmo-pcap ...................................................................... Add user manual for osmo-pcap This adds one common user manual for both osmo-pcap-client and osmo-pcap-server. The manual is still basic in nature, but already contains useful information regarding the setup of both clients and servers. Change-Id: I66182fc55f1ee323eba45e7a7fc59db55bff520e --- M doc/manuals/Makefile.am A doc/manuals/chapters/client.adoc A doc/manuals/chapters/overview.adoc A doc/manuals/chapters/server.adoc A doc/manuals/osmopcap-usermanual-docinfo.xml A doc/manuals/osmopcap-usermanual.adoc 6 files changed, 352 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/83/23783/1 diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am index 2e24c6c..f2ffa29 100644 --- a/doc/manuals/Makefile.am +++ b/doc/manuals/Makefile.am @@ -1,6 +1,13 @@ -EXTRA_DIST = vty +EXTRA_DIST = osmopcap-usermanual.adoc \ + osmopcap-usermanual-docinfo.xml \ + chapters \ + vty if BUILD_MANUALS + ASCIIDOC = osmopcap-usermanual.adoc + ASCIIDOC_DEPS = $(srcdir)/chapters/*.adoc + include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc + # This is a significantly modified, multi-target adopted copy of # $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc VARIANTS = client server diff --git a/doc/manuals/chapters/client.adoc b/doc/manuals/chapters/client.adoc new file mode 100644 index 0000000..f6ceac5 --- /dev/null +++ b/doc/manuals/chapters/client.adoc @@ -0,0 +1,132 @@ +== osmo-pcap-client + +The osmo-pcap-client program runs at a location of your network +where you would like to record some packets. It captures those +packets (with or without filter) and forwards them to one or multiple +remote servers. + +=== Running osmo-pcap-client + +==== SYNOPSIS + +*osmo-pcap-client* [-D] [-c CFG_FILE] | -h | -V + +==== OPTIONS + +*-h, --help*:: + Print a short help message about the supported options. +*-V, --version*:: + Print the compile-time version number of the program. +*-D, --daemonize*:: + Fork the process as a daemon into background. +*-c, --config-file 'CONFIGFILE'*:: + Specify the file and path name of the configuration file to be + used. If none is specified, use `osmo-pcap-client.cfg` in the current + working directory. + +Capturing network packets requires you to be superuser or have the CAP_NET_RAW capability. + +There are several options to achieve this: + +- start the program as root user (strongly discouraged) +- globally enable the CAP_NET_RAW capability for the program using e.g. the tool `setcap` +- asking `systemd` to start the program with the required capability + +NOTE:: This potentially opens a privilege escalation, as `osmo-pcap-client` can be configured +via the VTY interface (telnet) which is by default accessible by any user on the local machine (access to the loopback device). Please make sure to protect access to the VTY interface accordingly. + + +=== Configuring the packet capture + +The VTY configuration node of osmo-pcap-client contains a `client` node, +in which the packet capturing is configured + +.osmo-pcap-client VTY configuration for packet capture +---- +client + pcap device eth0 <1> + pcap filter udp port 23000 <2> + pcap detect-loop 1 <3> +---- +<1> the network device from which to obtain a capture +<2> the libpcap filter string (`udp port 23000` in this example) +<3> instruct osmo-pcap-client to automatically add a filter that prevents capturing + the traffic between osmo-pcap-client and osmo-pcap-server, which would create a loop. + + +=== Configuring the primary server + +.osmo-pcap-client configuration for the primary remote server +---- +client + server ip 192.168.11.20 <1> + server port 54321 <2> + source ip 192.168.11.1 <3> +---- +<1> IP address of the server to which to send the traces +<2> port number of the server to which to send the traces +<3> local IP address to use when sending traffic to the server + +By default, a custom osmo-pcap specific protocol is used to transport +the captured packets from client to server. However, the `protocol` +VTY configuration command can be used to switch to to using a simple `ipip` +encapsulation. `ipip` can be transparently decoded by protocol analysis +tools like wireshark. + + +=== Configuring additional servers + +In some use cases, you may want to send the captured packets to multiple +remote destinations. + +The primary and each of the remote destinations each receive a copy +of each captured packet. + +.osmo-pcap-client configuration for an additional remote server +---- +client + pcap-store-connection my_server <1> + server ip 192.168.11.10 <2> + server port 54321 <3> + source ip 192.168.11.1 <4> + connect <5> +---- +<1> a human-readable identifier for this specific connection (`my_server`) +<2> IP address of the server to which to send the traces +<3> port number of the server to which to send the traces +<4> local IP address to use when sending traffic to the server +<5> request connection to the remote server specified in this section + + +=== Configuring TLS + +By default, the captured packets are sent in plain-text without any additional +layer of encryption or authentication. This means that there is no confidentiality, +nor any integrity protection, unless the original captured packet already featured +such properties. + +If desired, `osmo-pcap-client` can be configured to use TLS (transport layer security) +on the protocol between client and server. + +TLS is configured separately for each remote server, whether primary or additional. + +.osmo-pcap-client configuration with TLS +---- +client + server ip 192.168.11.20 + server port 54321 + source ip 192.168.11.1 + enable tls <1> + tls hostname pcapserver.example.test<2> + tls verify-cert <3> + tls capath /etc/osmo-pcap/ca-certificates <4> + tls client-cert /etc/osmo-pcap/client.crt <5> + tls client-key /etc/osmo-pcap/client.key <6> +---- +<1> enable TLS for this server +<2> set the hostname we expect the server to have a certificate for +<3> enable certificate verification +<4> path of all CA certificates we consider valid for signing the server cert +<5> file containing the client certificate +<6> file containing the private key for the client certificate + diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc new file mode 100644 index 0000000..96bbe4b --- /dev/null +++ b/doc/manuals/chapters/overview.adoc @@ -0,0 +1,43 @@ +[[overview]] +== OsmoPCAP Overview + +=== Package Capturing in distributed telecoms networks + +Obtaining raw, binary protocol traces [for later analysis] is an +essential capability in order to investigate any kind of problem +in any computer networking system. + +The very distributed, heterogenuous nature of cellular networks +(compared to end-to-end IP networks) results in a lot of relevant +information being present only at some specific interfaces / points +in the network. This in turn means that packet captures have to +be performed at a variety of different network elements in order +to get the full picture of what is happening. + +Recording protocol traces at various different points in the network +inevitably raises the question of how to aggregate these. + +[[about]] +=== About OsmoPCAP + +OsmoPCAP is a software suite consisting of two programs, a client and a +server component. + +- osmo-pcap-client obtains protocol traces by using AF_PACKET sockets, + optionally with a capture filter. It then forwards the captures to + a remote server. +- osmo-pcap-server accepts incoming connections from clients. It + receives captured packets from those clients and stores them. + +The server and client communicate using a custom, TCP based protocol +for passing captured packets from client to server. Based on your +configuration, it can optionally be secured by TLS transport-level +encryption and authentication. + +NOTE:: The osmo-pcap programs runs as normal, single-threaded userspace +programs, without any specific emphasis on efficiency. It doesn't use +any of the advanced zero-copy mechanisms available on many modern OSs. +The goal is to capture telecom signaling (control plane) traffic, whose +bandwidth is (unlike that of the user plane) typically relatively low +compared to the available CPU / IO speeds. Don't expect osmo-pcap to +handle wire-rate multi-gigabit throughput. diff --git a/doc/manuals/chapters/server.adoc b/doc/manuals/chapters/server.adoc new file mode 100644 index 0000000..4f60880 --- /dev/null +++ b/doc/manuals/chapters/server.adoc @@ -0,0 +1,90 @@ +== osmo-pcap-server + +The osmo-pcap-server program can run anywhere in your network, as long +as it can be reached by the remote osmo-pcap-client instances. + +=== Running osmo-pcap-server + +==== SYNOPSIS + +*osmo-pcap-server* [-D] [-c CFG_FILE] | -h | -V + +==== OPTIONS + +*-h, --help*:: + Print a short help message about the supported options. +*-V, --version*:: + Print the compile-time version number of the program. +*-D, --daemonize*:: + Fork the process as a daemon into background. +*-c, --config-file 'CONFIGFILE'*:: + Specify the file and path name of the configuration file to be + used. If none is specified, use `osmo-pcap-client.cfg` in the current + working directory. + +As osmo-pcap-server doesn't capture any packets itself and only receives streams of +captured packets from [remote] osmo-pcap-clients, there is no need to run it as root +or with elevated privileges. + +=== Configuring osmo-pcap-server + +The osmo-pcap-server configuration consists mainly of the following parts: + +* the global server configuration, optionally including TLS related settings +* the per-client (per-connection) configuration + +.osmo-pcap-server example global configuration +---- +server + base-path /var/lib/osmo-pcap-server <1> + server ip 192.168.11.20 <2> + server port 54321 <3> + max-file-size 100000000 <4> + max-snaplen 100000 <5> +---- +<1> directory to which the pcap files are stored +<2> IP address to which to bind/listen +<3> TCP port number to which to bind/listen +<4> maximum size for pcap files; create a new file once max-file-size is reached +<5> maximum pcap snapshot length (per packet, in bytes; default: 9000) + +The received packets are stored to a pcap file below the `base-path` using a filename +encoding both the client name and the date/time at time of file creation. + +.osmo-pcap-server example global configuration +---- +server + client foo 192.168.100.1 <1> + client bar 192.168.200.2 tls <2> +---- +<1> Client `foo` connects from 192.168.100.1 and uses no TLS +<2> Client `bar` connects from 192.168.2.00.2 and uses TLS + +=== Configuring TLS + +By default, the captured packets are received in plain-text without any additional +layer of encryption or authentication. This means that there is no confidentiality, +nor any integrity protection, unless the original captured packet already featured +such properties. + +If desired, `osmo-pcap-server` can be configured to use TLS (transport layer security) +on the protocol between client and server. + +TLS is configured separately for each remote server, whether primary or additional. + +NOTE:: osmo-pcap-server uses the gnutls library for TLS support. See its documentation in terms of supported file formats for CRL, certificates, keys, etc. + +.osmo-pcap-server configuration with TLS +---- +server + tls allow-auth x509 <1> + tls capath /etc/osmocom/osmo-pcap-ca <2> + tls crlfile /etc/osmocom/osmo-pcap-ca.crl <3> + tls server-cert /etc/osmocom/osmo-pcap-server.crt <4> + tls server-key /etc/osmocom/osmo-pcap-server.key <5> +---- +<1> require clients to authenticate using a X.509 client certificate +<2> path of all CA certificates we consider valid for signing the client cert +<3> file containing the certificate revocation list +<4> file containing the server certificate +<5> file containing the private key for the server certificate diff --git a/doc/manuals/osmopcap-usermanual-docinfo.xml b/doc/manuals/osmopcap-usermanual-docinfo.xml new file mode 100644 index 0000000..528635c --- /dev/null +++ b/doc/manuals/osmopcap-usermanual-docinfo.xml @@ -0,0 +1,47 @@ + + + 1 + January 4th, 2021 + HW + + Initial version + + + + + + + Harald + Welte + hwelte at sysmocom.de + HW + + sysmocom + sysmocom - s.f.m.c. GmbH + Managing Director + + + + + + 2021 + sysmocom - s.f.m.c. GmbH + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.3 or any later version published by the Free Software + Foundation; with the Invariant Sections being just 'Foreword', + 'Acknowledgements' and 'Preface', with no Front-Cover Texts, + and no Back-Cover Texts. A copy of the license is included in + the section entitled "GNU Free Documentation License". + + + The Asciidoc source code of this manual can be found at + + http://git.osmocom.org/osmo-gsm-manuals/ + + + diff --git a/doc/manuals/osmopcap-usermanual.adoc b/doc/manuals/osmopcap-usermanual.adoc new file mode 100644 index 0000000..63daf6c --- /dev/null +++ b/doc/manuals/osmopcap-usermanual.adoc @@ -0,0 +1,32 @@ +:gfdl-enabled: +:program-name: OsmoPCAP + +OsmoPCAP User Manual +==================== +Harald Welte + + +include::./common/chapters/preface.adoc[] + +include::{srcdir}/chapters/overview.adoc[] + +include::{srcdir}/chapters/client.adoc[] + +include::{srcdir}/chapters/server.adoc[] + + +include::./common/chapters/counters-overview.adoc[] + + + +include::./common/chapters/vty.adoc[] + +include::./common/chapters/logging.adoc[] + +include::./common/chapters/port_numbers.adoc[] + +include::./common/chapters/bibliography.adoc[] + +include::./common/chapters/glossary.adoc[] + +include::./common/chapters/gfdl.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I66182fc55f1ee323eba45e7a7fc59db55bff520e Gerrit-Change-Number: 23783 Gerrit-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 Apr 18 13:26:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 13:26:56 +0000 Subject: Change in osmo-pcap[master]: add "--version" to osmo-pcap-client and -server In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23781 ) Change subject: add "--version" to osmo-pcap-client and -server ...................................................................... add "--version" to osmo-pcap-client and -server Change-Id: Ib82ee1a784a657f7274d78ba5f7a8afe6cfab395 --- M src/osmo_client_main.c M src/osmo_server_main.c 2 files changed, 11 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index 7ca3548..831450d 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -94,6 +94,7 @@ printf(" Some useful help...\n"); printf(" -h --help this text\n"); printf(" -D --daemonize Fork the process into a background daemon\n"); + printf(" -V --version Print the version number\n"); printf(" -d option --debug=DRLL:DCC:DMM:DRR:DRSL:DNM enable debugging\n"); printf(" -s --disable-color\n"); printf(" -T --timestamp. Print a timestamp in the debug output.\n"); @@ -138,6 +139,7 @@ {"help", 0, 0, 'h'}, {"daemonize", 0, 0, 'D'}, {"debug", 1, 0, 'd'}, + {"version", 0, 0, 'V'}, {"disable-color", 0, 0, 's'}, {"timestamp", 0, 0, 'T'}, {"log-level", 1, 0, 'e'}, @@ -166,6 +168,10 @@ case 'd': log_parse_category_mask(osmo_stderr_target, optarg); break; + case 'V': + print_version(1); + exit(0); + break; case 's': log_set_use_color(osmo_stderr_target, 0); break; diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index 9c234d5..112bd47 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -104,6 +104,7 @@ printf(" Some useful help...\n"); printf(" -h --help this text\n"); printf(" -D --daemonize Fork the process into a background daemon\n"); + printf(" -V --version Print the version number\n"); printf(" -d option --debug=DRLL:DCC:DMM:DRR:DRSL:DNM enable debugging\n"); printf(" -s --disable-color\n"); printf(" -T --timestamp. Print a timestamp in the debug output.\n"); @@ -148,6 +149,7 @@ {"help", 0, 0, 'h'}, {"daemonize", 0, 0, 'D'}, {"debug", 1, 0, 'd'}, + {"version", 0, 0, 'V'}, {"disable-color", 0, 0, 's'}, {"timestamp", 0, 0, 'T'}, {"log-level", 1, 0, 'e'}, @@ -176,6 +178,9 @@ case 'd': log_parse_category_mask(osmo_stderr_target, optarg); break; + case 'V': + print_version(1); + exit(0); case 's': log_set_use_color(osmo_stderr_target, 0); break; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: Ib82ee1a784a657f7274d78ba5f7a8afe6cfab395 Gerrit-Change-Number: 23781 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 13:26:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 13:26:57 +0000 Subject: Change in osmo-pcap[master]: update copyright statement; Holger worked on it until 2017 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23782 ) Change subject: update copyright statement; Holger worked on it until 2017 ...................................................................... update copyright statement; Holger worked on it until 2017 Change-Id: I7a39d4780d309f2dba99272c17bf1b9639760199 --- M src/osmo_common.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/osmo_common.c b/src/osmo_common.c index 6352097..39f448a 100644 --- a/src/osmo_common.c +++ b/src/osmo_common.c @@ -63,7 +63,7 @@ }; const char *osmopcap_copyright = - "Copyright (C) 2011 Holger Freyther\r\n" + "Copyright (C) 2011-2017 Holger Freyther and contributors\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"; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I7a39d4780d309f2dba99272c17bf1b9639760199 Gerrit-Change-Number: 23782 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 14:26:34 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 18 Apr 2021 14:26:34 +0000 Subject: Change in osmo-bsc[master]: fix wrong ARFCNs in local-cell neighbor config References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23784 ) Change subject: fix wrong ARFCNs in local-cell neighbor config ...................................................................... fix wrong ARFCNs in local-cell neighbor config For neighbors configured without explicit ARFCN+BSIC ('neighbor bts N', 'neighbor lac-ci N M', ...), actually use the local neighbor cell's ARFCN. So far the code looked correct on first sight, but passed an unused part of the struct neighbor union, always resulting in ARFCN 0. Related: SYS#5367 Change-Id: Ifb54d9a91e9bca032c721f12c873c6216733e7b1 --- M src/osmo-bsc/system_information.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/23784/1 diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index 0dbf53c..7ec613c 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -673,12 +673,14 @@ bitvec_set_bit_pos(bv, n->cell_id.ab.arfcn, 1); } else { struct gsm_bts *neigh_bts; - if (resolve_local_neighbor(&neigh_bts, bts, n) == 0) - bitvec_set_bit_pos(bv, n->cell_id.ab.arfcn, 1); - else + if (resolve_local_neighbor(&neigh_bts, bts, n)) { LOGP(DHO, LOGL_ERROR, "Neither local nor remote neighbor: BTS %u -> %s\n", bts->nr, neighbor_to_str_c(OTC_SELECT, n)); + continue; + } + if (neigh_bts->c0) + bitvec_set_bit_pos(bv, neigh_bts->c0->arfcn, 1); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifb54d9a91e9bca032c721f12c873c6216733e7b1 Gerrit-Change-Number: 23784 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 Apr 18 14:26:35 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 18 Apr 2021 14:26:35 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... update neighbor ARFCNs on startup and config changes The effects of the neighbor configuration depend on the LAC, Cell Identity, ARFCN, BSIC configuration of neighbor cells. Make sure that the neighbor ARFCN list in the System Information is updated. This may seem rather aggressive: updating the SI of all BTS if only one config item changed. But indeed even modifying one config item of one BTS may cause a change in the neighbor relations that many other BTS may have to the changed BTS. For example, if many BTS configure a 'neighbor lac-ci 42 23', and this cell's config changes to LAC 43, all of those other BTS need to update their neighbor ARFCNs. Also update the system information even before the BTS are connected and started up. The main benefit here is that the VTY 'show bts N' command then already lists the correct neighbor ARFCNs. In gsm_bts_trx_set_system_infos(), make sure that the updated SI is only sent to TRXes that are actually usable, otherwise abis_rsl_sendmsg() spams the log with complaints that a message's dst == NULL. The desire to have the ARFCNs listed in the VTY before starting up BTSes came during analysis for Ifb54d9a91e9bca032c721f12c873c6216733e7b1, which fixes a bug that is now much easier to verify being fixed. Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_trx.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c 6 files changed, 45 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/23785/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index bcc215d..5aaf6d5 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -671,6 +671,7 @@ int bts_count_free_ts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan); int gsm_bts_set_system_infos(struct gsm_bts *bts); +int gsm_net_set_system_infos(); int gsm_bts_model_register(struct gsm_bts_model *model); struct gsm_bts_model *bts_model_find(enum gsm_bts_type type); diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c index b572f27..dedbd96 100644 --- a/src/osmo-bsc/bsc_init.c +++ b/src/osmo-bsc/bsc_init.c @@ -168,3 +168,15 @@ return bts; } + +int gsm_net_set_system_infos() +{ + struct gsm_bts *bts; + int ret = 0; + llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { + int rc = gsm_bts_set_system_infos(bts); + if (rc) + ret = rc; + } + return ret; +} diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 1d29f1b..6991e03 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2447,6 +2447,11 @@ } bts->cell_identity = ci; + /* Changing the CI of a BTS may affect the neighbor relations between cells, when other cells indicate a + * neighbor cell by CI. Update the neighbors list in System Information. */ + if (vty->type != VTY_FILE) + gsm_net_set_system_infos(); + return CMD_SUCCESS; } @@ -2473,6 +2478,11 @@ bts->location_area_code = lac; + /* Changing the LAC of a BTS may affect the neighbor relations between cells, when other cells indicate a + * neighbor cell by LAC. Update the neighbors list in System Information. */ + if (vty->type != VTY_FILE) + gsm_net_set_system_infos(); + return CMD_SUCCESS; } @@ -2503,6 +2513,9 @@ } bts->bsic = bsic; + if (vty->type != VTY_FILE) + gsm_net_set_system_infos(); + return CMD_SUCCESS; } @@ -5346,7 +5359,9 @@ return CMD_WARNING; } - /* FIXME: patch ARFCN into SYSTEM INFORMATION */ + if (vty->type != VTY_FILE) + gsm_net_set_system_infos(); + /* FIXME: use OML layer to update the ARFCN */ /* FIXME: use RSL layer to update SYSTEM INFORMATION */ diff --git a/src/osmo-bsc/bts_trx.c b/src/osmo-bsc/bts_trx.c index 6d98929..b8096ac 100644 --- a/src/osmo-bsc/bts_trx.c +++ b/src/osmo-bsc/bts_trx.c @@ -429,6 +429,10 @@ /* Third, we send the selected SI via RSL */ + /* If the BTS is not up and running yet, don't send anything. */ + if (!trx_is_usable(trx)) + return 0; + for (n = 0; n < n_si; n++) { i = gen_si[n]; /* 3GPP TS 08.58 ?8.5.1 BCCH INFORMATION. If we don't currently diff --git a/src/osmo-bsc/neighbor_ident_vty.c b/src/osmo-bsc/neighbor_ident_vty.c index b9160ec..12aca9d 100644 --- a/src/osmo-bsc/neighbor_ident_vty.c +++ b/src/osmo-bsc/neighbor_ident_vty.c @@ -183,6 +183,10 @@ neighbor = talloc_zero(bts, struct neighbor); *neighbor = *n; llist_add_tail(&neighbor->entry, &bts->neighbors); + + if (vty->type != VTY_FILE) + gsm_bts_set_system_infos(bts); + return CMD_SUCCESS; } @@ -213,6 +217,10 @@ llist_del(&neighbor->entry); talloc_free(neighbor); + + if (vty->type != VTY_FILE) + gsm_bts_set_system_infos(bts); + return CMD_SUCCESS; } diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 3069cc0..fd41b74 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -942,6 +942,10 @@ exit(1); } + /* Make the 'show bts' information list the neighbor ARFCNs by updating the + * system_information.si_common.neigh_list. */ + gsm_net_set_system_infos(); + /* start control interface after reading config for * ctrl_vty_get_bind_addr() */ bsc_gsmnet->ctrl = bsc_controlif_setup(bsc_gsmnet, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 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 Apr 18 16:05:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 16:05:36 +0000 Subject: Change in osmo-bsc[master]: fix wrong ARFCNs in local-cell neighbor config In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23784 ) Change subject: fix wrong ARFCNs in local-cell neighbor config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifb54d9a91e9bca032c721f12c873c6216733e7b1 Gerrit-Change-Number: 23784 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 16:05: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 Apr 18 16:05:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 16:05:40 +0000 Subject: Change in osmo-bsc[master]: fix wrong ARFCNs in local-cell neighbor config In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23784 ) Change subject: fix wrong ARFCNs in local-cell neighbor config ...................................................................... fix wrong ARFCNs in local-cell neighbor config For neighbors configured without explicit ARFCN+BSIC ('neighbor bts N', 'neighbor lac-ci N M', ...), actually use the local neighbor cell's ARFCN. So far the code looked correct on first sight, but passed an unused part of the struct neighbor union, always resulting in ARFCN 0. Related: SYS#5367 Change-Id: Ifb54d9a91e9bca032c721f12c873c6216733e7b1 --- M src/osmo-bsc/system_information.c 1 file changed, 5 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index 0dbf53c..7ec613c 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -673,12 +673,14 @@ bitvec_set_bit_pos(bv, n->cell_id.ab.arfcn, 1); } else { struct gsm_bts *neigh_bts; - if (resolve_local_neighbor(&neigh_bts, bts, n) == 0) - bitvec_set_bit_pos(bv, n->cell_id.ab.arfcn, 1); - else + if (resolve_local_neighbor(&neigh_bts, bts, n)) { LOGP(DHO, LOGL_ERROR, "Neither local nor remote neighbor: BTS %u -> %s\n", bts->nr, neighbor_to_str_c(OTC_SELECT, n)); + continue; + } + if (neigh_bts->c0) + bitvec_set_bit_pos(bv, neigh_bts->c0->arfcn, 1); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifb54d9a91e9bca032c721f12c873c6216733e7b1 Gerrit-Change-Number: 23784 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 17:59:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 17:59:23 +0000 Subject: Change in osmo-pcap[master]: Add user manual for osmo-pcap In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23783 ) Change subject: Add user manual for osmo-pcap ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I66182fc55f1ee323eba45e7a7fc59db55bff520e Gerrit-Change-Number: 23783 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 17:59: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 Apr 18 17:59:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 17:59:59 +0000 Subject: Change in osmo-pcap[master]: Add user manual for osmo-pcap In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23783 ) Change subject: Add user manual for osmo-pcap ...................................................................... Patch Set 1: merging as-is, as the jenkins 'master' job currently fails due to the lack of a 'make publish' target in 'doc'. All review comments here can be addressed by follow-up patches. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I66182fc55f1ee323eba45e7a7fc59db55bff520e Gerrit-Change-Number: 23783 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 17:59: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 Sun Apr 18 18:00:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 18:00:01 +0000 Subject: Change in osmo-pcap[master]: Add user manual for osmo-pcap In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23783 ) Change subject: Add user manual for osmo-pcap ...................................................................... Add user manual for osmo-pcap This adds one common user manual for both osmo-pcap-client and osmo-pcap-server. The manual is still basic in nature, but already contains useful information regarding the setup of both clients and servers. Change-Id: I66182fc55f1ee323eba45e7a7fc59db55bff520e --- M doc/manuals/Makefile.am A doc/manuals/chapters/client.adoc A doc/manuals/chapters/overview.adoc A doc/manuals/chapters/server.adoc A doc/manuals/osmopcap-usermanual-docinfo.xml A doc/manuals/osmopcap-usermanual.adoc 6 files changed, 352 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am index 2e24c6c..f2ffa29 100644 --- a/doc/manuals/Makefile.am +++ b/doc/manuals/Makefile.am @@ -1,6 +1,13 @@ -EXTRA_DIST = vty +EXTRA_DIST = osmopcap-usermanual.adoc \ + osmopcap-usermanual-docinfo.xml \ + chapters \ + vty if BUILD_MANUALS + ASCIIDOC = osmopcap-usermanual.adoc + ASCIIDOC_DEPS = $(srcdir)/chapters/*.adoc + include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc + # This is a significantly modified, multi-target adopted copy of # $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc VARIANTS = client server diff --git a/doc/manuals/chapters/client.adoc b/doc/manuals/chapters/client.adoc new file mode 100644 index 0000000..f6ceac5 --- /dev/null +++ b/doc/manuals/chapters/client.adoc @@ -0,0 +1,132 @@ +== osmo-pcap-client + +The osmo-pcap-client program runs at a location of your network +where you would like to record some packets. It captures those +packets (with or without filter) and forwards them to one or multiple +remote servers. + +=== Running osmo-pcap-client + +==== SYNOPSIS + +*osmo-pcap-client* [-D] [-c CFG_FILE] | -h | -V + +==== OPTIONS + +*-h, --help*:: + Print a short help message about the supported options. +*-V, --version*:: + Print the compile-time version number of the program. +*-D, --daemonize*:: + Fork the process as a daemon into background. +*-c, --config-file 'CONFIGFILE'*:: + Specify the file and path name of the configuration file to be + used. If none is specified, use `osmo-pcap-client.cfg` in the current + working directory. + +Capturing network packets requires you to be superuser or have the CAP_NET_RAW capability. + +There are several options to achieve this: + +- start the program as root user (strongly discouraged) +- globally enable the CAP_NET_RAW capability for the program using e.g. the tool `setcap` +- asking `systemd` to start the program with the required capability + +NOTE:: This potentially opens a privilege escalation, as `osmo-pcap-client` can be configured +via the VTY interface (telnet) which is by default accessible by any user on the local machine (access to the loopback device). Please make sure to protect access to the VTY interface accordingly. + + +=== Configuring the packet capture + +The VTY configuration node of osmo-pcap-client contains a `client` node, +in which the packet capturing is configured + +.osmo-pcap-client VTY configuration for packet capture +---- +client + pcap device eth0 <1> + pcap filter udp port 23000 <2> + pcap detect-loop 1 <3> +---- +<1> the network device from which to obtain a capture +<2> the libpcap filter string (`udp port 23000` in this example) +<3> instruct osmo-pcap-client to automatically add a filter that prevents capturing + the traffic between osmo-pcap-client and osmo-pcap-server, which would create a loop. + + +=== Configuring the primary server + +.osmo-pcap-client configuration for the primary remote server +---- +client + server ip 192.168.11.20 <1> + server port 54321 <2> + source ip 192.168.11.1 <3> +---- +<1> IP address of the server to which to send the traces +<2> port number of the server to which to send the traces +<3> local IP address to use when sending traffic to the server + +By default, a custom osmo-pcap specific protocol is used to transport +the captured packets from client to server. However, the `protocol` +VTY configuration command can be used to switch to to using a simple `ipip` +encapsulation. `ipip` can be transparently decoded by protocol analysis +tools like wireshark. + + +=== Configuring additional servers + +In some use cases, you may want to send the captured packets to multiple +remote destinations. + +The primary and each of the remote destinations each receive a copy +of each captured packet. + +.osmo-pcap-client configuration for an additional remote server +---- +client + pcap-store-connection my_server <1> + server ip 192.168.11.10 <2> + server port 54321 <3> + source ip 192.168.11.1 <4> + connect <5> +---- +<1> a human-readable identifier for this specific connection (`my_server`) +<2> IP address of the server to which to send the traces +<3> port number of the server to which to send the traces +<4> local IP address to use when sending traffic to the server +<5> request connection to the remote server specified in this section + + +=== Configuring TLS + +By default, the captured packets are sent in plain-text without any additional +layer of encryption or authentication. This means that there is no confidentiality, +nor any integrity protection, unless the original captured packet already featured +such properties. + +If desired, `osmo-pcap-client` can be configured to use TLS (transport layer security) +on the protocol between client and server. + +TLS is configured separately for each remote server, whether primary or additional. + +.osmo-pcap-client configuration with TLS +---- +client + server ip 192.168.11.20 + server port 54321 + source ip 192.168.11.1 + enable tls <1> + tls hostname pcapserver.example.test<2> + tls verify-cert <3> + tls capath /etc/osmo-pcap/ca-certificates <4> + tls client-cert /etc/osmo-pcap/client.crt <5> + tls client-key /etc/osmo-pcap/client.key <6> +---- +<1> enable TLS for this server +<2> set the hostname we expect the server to have a certificate for +<3> enable certificate verification +<4> path of all CA certificates we consider valid for signing the server cert +<5> file containing the client certificate +<6> file containing the private key for the client certificate + diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc new file mode 100644 index 0000000..96bbe4b --- /dev/null +++ b/doc/manuals/chapters/overview.adoc @@ -0,0 +1,43 @@ +[[overview]] +== OsmoPCAP Overview + +=== Package Capturing in distributed telecoms networks + +Obtaining raw, binary protocol traces [for later analysis] is an +essential capability in order to investigate any kind of problem +in any computer networking system. + +The very distributed, heterogenuous nature of cellular networks +(compared to end-to-end IP networks) results in a lot of relevant +information being present only at some specific interfaces / points +in the network. This in turn means that packet captures have to +be performed at a variety of different network elements in order +to get the full picture of what is happening. + +Recording protocol traces at various different points in the network +inevitably raises the question of how to aggregate these. + +[[about]] +=== About OsmoPCAP + +OsmoPCAP is a software suite consisting of two programs, a client and a +server component. + +- osmo-pcap-client obtains protocol traces by using AF_PACKET sockets, + optionally with a capture filter. It then forwards the captures to + a remote server. +- osmo-pcap-server accepts incoming connections from clients. It + receives captured packets from those clients and stores them. + +The server and client communicate using a custom, TCP based protocol +for passing captured packets from client to server. Based on your +configuration, it can optionally be secured by TLS transport-level +encryption and authentication. + +NOTE:: The osmo-pcap programs runs as normal, single-threaded userspace +programs, without any specific emphasis on efficiency. It doesn't use +any of the advanced zero-copy mechanisms available on many modern OSs. +The goal is to capture telecom signaling (control plane) traffic, whose +bandwidth is (unlike that of the user plane) typically relatively low +compared to the available CPU / IO speeds. Don't expect osmo-pcap to +handle wire-rate multi-gigabit throughput. diff --git a/doc/manuals/chapters/server.adoc b/doc/manuals/chapters/server.adoc new file mode 100644 index 0000000..4f60880 --- /dev/null +++ b/doc/manuals/chapters/server.adoc @@ -0,0 +1,90 @@ +== osmo-pcap-server + +The osmo-pcap-server program can run anywhere in your network, as long +as it can be reached by the remote osmo-pcap-client instances. + +=== Running osmo-pcap-server + +==== SYNOPSIS + +*osmo-pcap-server* [-D] [-c CFG_FILE] | -h | -V + +==== OPTIONS + +*-h, --help*:: + Print a short help message about the supported options. +*-V, --version*:: + Print the compile-time version number of the program. +*-D, --daemonize*:: + Fork the process as a daemon into background. +*-c, --config-file 'CONFIGFILE'*:: + Specify the file and path name of the configuration file to be + used. If none is specified, use `osmo-pcap-client.cfg` in the current + working directory. + +As osmo-pcap-server doesn't capture any packets itself and only receives streams of +captured packets from [remote] osmo-pcap-clients, there is no need to run it as root +or with elevated privileges. + +=== Configuring osmo-pcap-server + +The osmo-pcap-server configuration consists mainly of the following parts: + +* the global server configuration, optionally including TLS related settings +* the per-client (per-connection) configuration + +.osmo-pcap-server example global configuration +---- +server + base-path /var/lib/osmo-pcap-server <1> + server ip 192.168.11.20 <2> + server port 54321 <3> + max-file-size 100000000 <4> + max-snaplen 100000 <5> +---- +<1> directory to which the pcap files are stored +<2> IP address to which to bind/listen +<3> TCP port number to which to bind/listen +<4> maximum size for pcap files; create a new file once max-file-size is reached +<5> maximum pcap snapshot length (per packet, in bytes; default: 9000) + +The received packets are stored to a pcap file below the `base-path` using a filename +encoding both the client name and the date/time at time of file creation. + +.osmo-pcap-server example global configuration +---- +server + client foo 192.168.100.1 <1> + client bar 192.168.200.2 tls <2> +---- +<1> Client `foo` connects from 192.168.100.1 and uses no TLS +<2> Client `bar` connects from 192.168.2.00.2 and uses TLS + +=== Configuring TLS + +By default, the captured packets are received in plain-text without any additional +layer of encryption or authentication. This means that there is no confidentiality, +nor any integrity protection, unless the original captured packet already featured +such properties. + +If desired, `osmo-pcap-server` can be configured to use TLS (transport layer security) +on the protocol between client and server. + +TLS is configured separately for each remote server, whether primary or additional. + +NOTE:: osmo-pcap-server uses the gnutls library for TLS support. See its documentation in terms of supported file formats for CRL, certificates, keys, etc. + +.osmo-pcap-server configuration with TLS +---- +server + tls allow-auth x509 <1> + tls capath /etc/osmocom/osmo-pcap-ca <2> + tls crlfile /etc/osmocom/osmo-pcap-ca.crl <3> + tls server-cert /etc/osmocom/osmo-pcap-server.crt <4> + tls server-key /etc/osmocom/osmo-pcap-server.key <5> +---- +<1> require clients to authenticate using a X.509 client certificate +<2> path of all CA certificates we consider valid for signing the client cert +<3> file containing the certificate revocation list +<4> file containing the server certificate +<5> file containing the private key for the server certificate diff --git a/doc/manuals/osmopcap-usermanual-docinfo.xml b/doc/manuals/osmopcap-usermanual-docinfo.xml new file mode 100644 index 0000000..528635c --- /dev/null +++ b/doc/manuals/osmopcap-usermanual-docinfo.xml @@ -0,0 +1,47 @@ + + + 1 + January 4th, 2021 + HW + + Initial version + + + + + + + Harald + Welte + hwelte at sysmocom.de + HW + + sysmocom + sysmocom - s.f.m.c. GmbH + Managing Director + + + + + + 2021 + sysmocom - s.f.m.c. GmbH + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.3 or any later version published by the Free Software + Foundation; with the Invariant Sections being just 'Foreword', + 'Acknowledgements' and 'Preface', with no Front-Cover Texts, + and no Back-Cover Texts. A copy of the license is included in + the section entitled "GNU Free Documentation License". + + + The Asciidoc source code of this manual can be found at + + http://git.osmocom.org/osmo-gsm-manuals/ + + + diff --git a/doc/manuals/osmopcap-usermanual.adoc b/doc/manuals/osmopcap-usermanual.adoc new file mode 100644 index 0000000..63daf6c --- /dev/null +++ b/doc/manuals/osmopcap-usermanual.adoc @@ -0,0 +1,32 @@ +:gfdl-enabled: +:program-name: OsmoPCAP + +OsmoPCAP User Manual +==================== +Harald Welte + + +include::./common/chapters/preface.adoc[] + +include::{srcdir}/chapters/overview.adoc[] + +include::{srcdir}/chapters/client.adoc[] + +include::{srcdir}/chapters/server.adoc[] + + +include::./common/chapters/counters-overview.adoc[] + + + +include::./common/chapters/vty.adoc[] + +include::./common/chapters/logging.adoc[] + +include::./common/chapters/port_numbers.adoc[] + +include::./common/chapters/bibliography.adoc[] + +include::./common/chapters/glossary.adoc[] + +include::./common/chapters/gfdl.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I66182fc55f1ee323eba45e7a7fc59db55bff520e Gerrit-Change-Number: 23783 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 Apr 18 19:09:00 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 18 Apr 2021 19:09:00 +0000 Subject: Change in osmo-pcap[master]: contrib/jenkins.sh: fix: pass '--enable-manuals' to configure References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23786 ) Change subject: contrib/jenkins.sh: fix: pass '--enable-manuals' to configure ...................................................................... contrib/jenkins.sh: fix: pass '--enable-manuals' to configure Currently `make publish` fails on Jenkins because there is nothing to publish. In [1] we simply forgot to pass '--enable-manuals' if $WITH_MANUALS is set to 1, so no PDFs are built. Fix this. Change-Id: I85dfecf2025a0466fccfe5a1e63cda788f85992e Fixes: [1] I28353f51de798535a3bb6efdc6c2da443d96ddfb --- M contrib/jenkins.sh 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/86/23786/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index ae5177f..a1ef307 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -24,6 +24,13 @@ export LD_LIBRARY_PATH="$inst/lib" osmo-build-dep.sh libosmocore "" '--disable-doxygen --enable-gnutls' +# Additional configure options and depends +CONFIG="" +if [ "$WITH_MANUALS" = "1" ]; then + osmo-build-dep.sh osmo-gsm-manuals + CONFIG="--enable-manuals" +fi + set +x echo echo -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I85dfecf2025a0466fccfe5a1e63cda788f85992e Gerrit-Change-Number: 23786 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 Apr 18 19:14:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 18 Apr 2021 19:14:45 +0000 Subject: Change in osmo-pcap[master]: contrib/jenkins.sh: fix: pass '--enable-manuals' to configure In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23786 ) Change subject: contrib/jenkins.sh: fix: pass '--enable-manuals' to configure ...................................................................... Patch Set 1: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I85dfecf2025a0466fccfe5a1e63cda788f85992e Gerrit-Change-Number: 23786 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 19:14: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 Sun Apr 18 19:43:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 18 Apr 2021 19:43:09 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/src/osmo-bsc/bsc_init.c File src/osmo-bsc/bsc_init.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/src/osmo-bsc/bsc_init.c at 177 PS1, Line 177: int rc = gsm_bts_set_system_infos(bts); This could be done simpler: ret |= gsm_bts_set_system_infos(bts); but I am also ok with the current approach. https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/src/osmo-bsc/bsc_vty.c at 2453 PS1, Line 2453: gsm_net_set_system_infos So if it fails and returns x != 0, we still return CMD_SUCCESS? https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/src/osmo-bsc/osmo_bsc_main.c File src/osmo-bsc/osmo_bsc_main.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/src/osmo-bsc/osmo_bsc_main.c at 947 PS1, Line 947: gsm_net_set_system_infos Do we care about the returned value? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 18 Apr 2021 19:43: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 Sun Apr 18 21:57:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 18 Apr 2021 21:57:26 +0000 Subject: Change in osmo-bts[master]: l1sap: fix incorrect pointer cast in l1sap_chan_act() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23787 ) Change subject: l1sap: fix incorrect pointer cast in l1sap_chan_act() ...................................................................... l1sap: fix incorrect pointer cast in l1sap_chan_act() In [1] I introduced a regression, so osmo-bts started to complain: This PHY does not support lchan TSC 3 != BSIC-TSC 7 on channel activation, despite the TSC in RSL_IE_CHAN_IDENT was 7. The problem is that this statement: cd = (const struct gsm48_chan_desc *) TLVP_VAL(tp, RSL_IE_CHAN_IDENT) + 1; is basically equivalent to: cd = ((const struct gsm48_chan_desc *) TLVP_VAL(tp, RSL_IE_CHAN_IDENT)) + 1; so we actually shift the pointer by sizeof(struct gsm48_chan_desc) and skip 3 octets instead of just one (IEI octet). Fix this. Change-Id: Ic3a81396b60577e03c541d32839d07dc6d45c838 Fixes: [1] Id100f4c56fd5c1adad5d925d97240bed82981b9b Fixes: OS#5121 --- M src/common/l1sap.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/87/23787/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 7702b23..b74e0d3 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1971,7 +1971,7 @@ * need to make sure ew don't crash here */ if (tp && TLVP_PRES_LEN(tp, RSL_IE_CHAN_IDENT, sizeof(*cd) + 1)) { /* Channel Description IE comes together with its IEI (see 9.3.5) */ - cd = (const struct gsm48_chan_desc *) TLVP_VAL(tp, RSL_IE_CHAN_IDENT) + 1; + cd = (const struct gsm48_chan_desc *) (TLVP_VAL(tp, RSL_IE_CHAN_IDENT) + 1); /* The PHY may not support using different TSCs */ if (!osmo_bts_has_feature(trx->bts->features, BTS_FEAT_MULTI_TSC) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3a81396b60577e03c541d32839d07dc6d45c838 Gerrit-Change-Number: 23787 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 Apr 18 22:10:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 22:10:19 +0000 Subject: Change in osmo-pcap[master]: contrib/jenkins.sh: fix: pass '--enable-manuals' to configure In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23786 ) Change subject: contrib/jenkins.sh: fix: pass '--enable-manuals' to configure ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I85dfecf2025a0466fccfe5a1e63cda788f85992e Gerrit-Change-Number: 23786 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 22:10: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 Apr 18 22:10:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 22:10:25 +0000 Subject: Change in osmo-pcap[master]: contrib/jenkins.sh: fix: pass '--enable-manuals' to configure In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23786 ) Change subject: contrib/jenkins.sh: fix: pass '--enable-manuals' to configure ...................................................................... contrib/jenkins.sh: fix: pass '--enable-manuals' to configure Currently `make publish` fails on Jenkins because there is nothing to publish. In [1] we simply forgot to pass '--enable-manuals' if $WITH_MANUALS is set to 1, so no PDFs are built. Fix this. Change-Id: I85dfecf2025a0466fccfe5a1e63cda788f85992e Fixes: [1] I28353f51de798535a3bb6efdc6c2da443d96ddfb --- M contrib/jenkins.sh 1 file changed, 13 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index ae5177f..683fb9d 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -24,6 +24,13 @@ export LD_LIBRARY_PATH="$inst/lib" osmo-build-dep.sh libosmocore "" '--disable-doxygen --enable-gnutls' +# Additional configure options and depends +CONFIG="" +if [ "$WITH_MANUALS" = "1" ]; then + osmo-build-dep.sh osmo-gsm-manuals + CONFIG="--enable-manuals" +fi + set +x echo echo @@ -35,10 +42,14 @@ cd "$base" autoreconf --install --force -PCAP_LIBS="-lpcap" PCAP_CFLAGS="" ./configure --with-pcap-config=/bin/true --enable-sanitize --enable-werror +PCAP_LIBS="-lpcap" PCAP_CFLAGS="" ./configure \ + --with-pcap-config=/bin/true \ + --enable-sanitize \ + --enable-werror \ + $CONFIG $MAKE $PARALLEL_MAKE $MAKE check || cat-testlogs.sh -DISTCHECK_CONFIGURE_FLAGS="--with-pcap-config=/bin/true" \ +DISTCHECK_CONFIGURE_FLAGS="--with-pcap-config=/bin/true $CONFIG" \ PCAP_LIBS="-lpcap" PCAP_CFLAGS="" \ $MAKE distcheck || cat-testlogs.sh -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I85dfecf2025a0466fccfe5a1e63cda788f85992e Gerrit-Change-Number: 23786 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 18 22:11:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 22:11:08 +0000 Subject: Change in osmo-bts[master]: l1sap: fix incorrect pointer cast in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23787 ) Change subject: l1sap: fix incorrect pointer cast in l1sap_chan_act() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3a81396b60577e03c541d32839d07dc6d45c838 Gerrit-Change-Number: 23787 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 18 Apr 2021 22:11: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 Sun Apr 18 22:11:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 18 Apr 2021 22:11:12 +0000 Subject: Change in osmo-bts[master]: l1sap: fix incorrect pointer cast in l1sap_chan_act() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23787 ) Change subject: l1sap: fix incorrect pointer cast in l1sap_chan_act() ...................................................................... l1sap: fix incorrect pointer cast in l1sap_chan_act() In [1] I introduced a regression, so osmo-bts started to complain: This PHY does not support lchan TSC 3 != BSIC-TSC 7 on channel activation, despite the TSC in RSL_IE_CHAN_IDENT was 7. The problem is that this statement: cd = (const struct gsm48_chan_desc *) TLVP_VAL(tp, RSL_IE_CHAN_IDENT) + 1; is basically equivalent to: cd = ((const struct gsm48_chan_desc *) TLVP_VAL(tp, RSL_IE_CHAN_IDENT)) + 1; so we actually shift the pointer by sizeof(struct gsm48_chan_desc) and skip 3 octets instead of just one (IEI octet). Fix this. Change-Id: Ic3a81396b60577e03c541d32839d07dc6d45c838 Fixes: [1] Id100f4c56fd5c1adad5d925d97240bed82981b9b Fixes: OS#5121 --- M src/common/l1sap.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 7702b23..b74e0d3 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1971,7 +1971,7 @@ * need to make sure ew don't crash here */ if (tp && TLVP_PRES_LEN(tp, RSL_IE_CHAN_IDENT, sizeof(*cd) + 1)) { /* Channel Description IE comes together with its IEI (see 9.3.5) */ - cd = (const struct gsm48_chan_desc *) TLVP_VAL(tp, RSL_IE_CHAN_IDENT) + 1; + cd = (const struct gsm48_chan_desc *) (TLVP_VAL(tp, RSL_IE_CHAN_IDENT) + 1); /* The PHY may not support using different TSCs */ if (!osmo_bts_has_feature(trx->bts->features, BTS_FEAT_MULTI_TSC) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3a81396b60577e03c541d32839d07dc6d45c838 Gerrit-Change-Number: 23787 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 Apr 18 22:53:34 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 18 Apr 2021 22:53:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU 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/+/23755 to look at the new patch set (#2). Change subject: ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU ...................................................................... ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU Allow to work with IPv4 and IPv6 endpoints and only expected known required fields (e.g. NSEI and rst_flag). Related: OS#5036 Change-Id: I60f669d7c8838d460a14c6604c4375a8d47f5149 --- M ns/NS_Tests.ttcn 1 file changed, 10 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/55/23755/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I60f669d7c8838d460a14c6604c4375a8d47f5149 Gerrit-Change-Number: 23755 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 gerrit-no-reply at lists.osmocom.org Mon Apr 19 03:02:48 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 03:02:48 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add RSL_CMOD_SP_{GSM4, GSM5, GSM6} References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23788 ) Change subject: protocol/gsm_08_58.h: add RSL_CMOD_SP_{GSM4,GSM5,GSM6} ...................................................................... protocol/gsm_08_58.h: add RSL_CMOD_SP_{GSM4,GSM5,GSM6} The new values are present in 3GPP TS 48.058, V16.0.0 (2020-09): * RSL_CMOD_SP_GSM4 - OFR AMR-WB or OHR AMR-WB, * RSL_CMOD_SP_GSM5 - FR AMR-WB, * RSL_CMOD_SP_GSM6 - OHR AMR. Change-Id: I40eca759380c8895d7923b2b4259d37a50978160 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/88/23788/1 diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index 6f974ce..f1d1dec 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -487,6 +487,9 @@ #define RSL_CMOD_SP_GSM1 0x01 #define RSL_CMOD_SP_GSM2 0x11 #define RSL_CMOD_SP_GSM3 0x21 +#define RSL_CMOD_SP_GSM4 0x31 +#define RSL_CMOD_SP_GSM5 0x09 +#define RSL_CMOD_SP_GSM6 0x0d /* non-transparent data */ #define RSL_CMOD_CSD_NT_43k5 0x74 #define RSL_CMOD_CSD_NT_28k8 0x71 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I40eca759380c8895d7923b2b4259d37a50978160 Gerrit-Change-Number: 23788 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 Apr 19 03:02:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 03:02:49 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add more 'Channel rate and type' values References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23789 ) Change subject: protocol/gsm_08_58.h: add more 'Channel rate and type' values ...................................................................... protocol/gsm_08_58.h: add more 'Channel rate and type' values The new values are present in 3GPP TS 48.058, V16.0.0 (2020-09). Change-Id: I0aaea1549e6de01c374d6b46353312e6246078e0 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 9 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/89/23789/1 diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index f1d1dec..7308f0e 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -479,10 +479,15 @@ RSL_CMOD_SPD_DATA = 0x02, RSL_CMOD_SPD_SIGN = 0x03, }; -#define RSL_CMOD_CRT_SDCCH 0x01 -#define RSL_CMOD_CRT_TCH_Bm 0x08 /* full-rate */ -#define RSL_CMOD_CRT_TCH_Lm 0x09 /* half-rate */ -/* FIXME: More CRT types */ +#define RSL_CMOD_CRT_SDCCH 0x01 +#define RSL_CMOD_CRT_TCH_Bm 0x08 /* full-rate */ +#define RSL_CMOD_CRT_TCH_Lm 0x09 /* half-rate */ +#define RSL_CMOD_CRT_TCH_BI_Bm 0x0a /* full-rate: bi-directional (multislot) */ +#define RSL_CMOD_CRT_TCH_UNI_Bm 0x1a /* full-rate: uni-directional (multislot) */ +#define RSL_CMOD_CRT_TCH_GROUP_Bm 0x18 /* full-rate: group call channel */ +#define RSL_CMOD_CRT_TCH_GROUP_Lm 0x19 /* half-rate: group call channel */ +#define RSL_CMOD_CRT_TCH_BCAST_Bm 0x28 /* full-rate: broadcast call channel */ +#define RSL_CMOD_CRT_TCH_BCAST_Lm 0x29 /* half-rate: broadcast call channel */ /* Speech */ #define RSL_CMOD_SP_GSM1 0x01 #define RSL_CMOD_SP_GSM2 0x11 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0aaea1549e6de01c374d6b46353312e6246078e0 Gerrit-Change-Number: 23789 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 Apr 19 03:02:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 03:02:51 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add asymmetric CSD data rates References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23790 ) Change subject: protocol/gsm_08_58.h: add asymmetric CSD data rates ...................................................................... protocol/gsm_08_58.h: add asymmetric CSD data rates The new values are present in 3GPP TS 48.058, V16.0.0 (2020-09). Change-Id: Icf4c83fa443b8410f4362c119b0a85419036b9cd --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/90/23790/1 diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index 7308f0e..79ddb68 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -495,6 +495,13 @@ #define RSL_CMOD_SP_GSM4 0x31 #define RSL_CMOD_SP_GSM5 0x09 #define RSL_CMOD_SP_GSM6 0x0d +/* non-transparent data (asymmetric) */ +#define RSL_CMOD_CSD_NTA_43k5_14k5 0x61 /* asymmetric 43.5 kbit/s (DL) + 14.5 kbit/s (UL) */ +#define RSL_CMOD_CSD_NTA_29k0_14k5 0x62 /* asymmetric 29.0 kbit/s (DL) + 14.5 kbit/s (UL) */ +#define RSL_CMOD_CSD_NTA_43k5_29k0 0x63 /* asymmetric 43.5 kbit/s (DL) + 29.0 kbit/s (UL) */ +#define RSL_CMOD_CSD_NTA_14k5_43k5 0x69 /* asymmetric 14.5 kbit/s (DL) + 43.5 kbit/s (UL) */ +#define RSL_CMOD_CSD_NTA_14k5_29k0 0x6a /* asymmetric 14.5 kbit/s (DL) + 29.0 kbit/s (UL) */ +#define RSL_CMOD_CSD_NTA_29k0_43k5 0x6b /* asymmetric 29.0 kbit/s (DL) + 43.5 kbit/s (UL) */ /* non-transparent data */ #define RSL_CMOD_CSD_NT_43k5 0x74 #define RSL_CMOD_CSD_NT_28k8 0x71 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23790 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icf4c83fa443b8410f4362c119b0a85419036b9cd Gerrit-Change-Number: 23790 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 Apr 19 04:32:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 04:32:17 +0000 Subject: Change in osmo-bts[master]: rsl: rename, fix and refactor lchan_tchmode_from_cmode() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23791 ) Change subject: rsl: rename, fix and refactor lchan_tchmode_from_cmode() ...................................................................... rsl: rename, fix and refactor lchan_tchmode_from_cmode() In change [1] I added the missing 'default' branch to the 'switch' statement in lchan_tchmode_from_cmode(). This caused massive regressions in ttcn3-bts-test, because osmo-bts started to NACK some RSL CHANnel ACTIVation messages. What caused a lot of regressions in ttcn3-bts-test is actually the missing branch for RSL_CMOD_SPD_SIGN in the 'switch' statement. It was not a problem before [1], because the 'default' branch was not there. I was about to add the missing 'cause' when I realized that this function needs to be reworked first... First of all, lchan_tchmode_from_cmode() does a bit more than just deriving RR (TS 44.018) channel mode from RSL (TS 48.058) channel mode. It additionally stores the 'Speech or data indicator' to the logical channel state, and also changes some global DTXd related flags in 'struct gsm_bts'. Let's use a more precise name. lchan_tchmode_from_cmode() -> rsl_handle_chan_mod_ie() Together with renaming, it becomes logical to have the IE presence check in rsl_handle_chan_mod_ie(), so that we can reduce code duplication in the calling functions a bit. Finally, the main problem is that coding and interpretation of the 6-th octet 'Speech coding algor./data rate + transp ind' depends on the 4-th octet of the Channel Mode IE. We cannot handle all values in one 'switch' statement without proper discrimination: a) If octet 4 indicates Speech, then octet 6 shall be interpreted as the GSM speech coding algorithm (FR, HR, AMR, etc.). b) If octet 4 indicates Signalling, then octet 6 shall be set to '00'O, because this is the only value defined in version 16.0.0 of 3GPP TS 48.058. All other values are reserved. c) If octet 4 indicates Data, then octet 6 shall be interpreted as CSD data rate further discriminated by service transparency. Therefore, we need take both values into account. This can be achieved by mixing them together using the bitwise operators, just like we do in L1SAP code. Change-Id: Iba967f5bd0cc8ad6cd3ccd40cca38b15ffe96b2c Related: [1] I67a70132999be6580a29e6b814763309a6df4ae9 Related: SYS#4895, OS#4941 --- M src/common/rsl.c 1 file changed, 99 insertions(+), 42 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/23791/1 diff --git a/src/common/rsl.c b/src/common/rsl.c index 8488ab7..6884712 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -111,36 +111,108 @@ out[1] = (gtime->t3 << 5) | gtime->t2; } -/* compute lchan->rsl_cmode and lchan->tch_mode from RSL CHAN MODE IE */ -static int lchan_tchmode_from_cmode(struct gsm_lchan *lchan, - const struct rsl_ie_chan_mode *cm) +/* Handle RSL Channel Mode IE (see section 9.3.6) */ +static int rsl_handle_chan_mod_ie(struct gsm_lchan *lchan, + const struct tlv_parsed *tp, + uint8_t *cause) { + const struct rsl_ie_chan_mode *cm; + + if (!TLVP_PRES_LEN(tp, RSL_IE_CHAN_MODE, sizeof(*cm))) { + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE is not present\n"); + *cause = RSL_ERR_MAND_IE_ERROR; + return -ENODEV; + } + + cm = (const struct rsl_ie_chan_mode *) TLVP_VAL(tp, RSL_IE_CHAN_MODE); lchan->rsl_cmode = cm->spd_ind; lchan->ts->trx->bts->dtxd = (cm->dtx_dtu & RSL_CMOD_DTXd) ? true : false; - switch (cm->chan_rate) { - case RSL_CMOD_SP_GSM1: - lchan->tch_mode = GSM48_CMODE_SPEECH_V1; - break; - case RSL_CMOD_SP_GSM2: - lchan->tch_mode = GSM48_CMODE_SPEECH_EFR; - break; - case RSL_CMOD_SP_GSM3: - lchan->tch_mode = GSM48_CMODE_SPEECH_AMR; - break; - case RSL_CMOD_SP_NT_14k5: - lchan->tch_mode = GSM48_CMODE_DATA_14k5; - break; - case RSL_CMOD_SP_NT_12k0: - lchan->tch_mode = GSM48_CMODE_DATA_12k0; - break; - case RSL_CMOD_SP_NT_6k0: - lchan->tch_mode = GSM48_CMODE_DATA_6k0; + /* Octet 5: Channel rate and type */ + switch (cm->chan_rt) { + case RSL_CMOD_CRT_SDCCH: + case RSL_CMOD_CRT_TCH_Bm: + case RSL_CMOD_CRT_TCH_Lm: break; default: + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " + "unknown 'Channel rate and type' value 0x%02x\n", + cm->chan_rate); + *cause = RSL_ERR_IE_CONTENT; return -ENOTSUP; } +#define RSL_CMODE(spd_ind, chan_rate) \ + ((spd_ind << 8) | chan_rate) + + /* Octet 6: Speech coding algorithm/data rate + transparency indicator. + * NOTE: coding of this octet depends on 'Speech or data indicator' */ + switch (RSL_CMODE(cm->spd_ind, cm->chan_rate)) { + /* If octet 4 indicates signalling */ + case RSL_CMODE(RSL_CMOD_SPD_SIGN, 0x00): + /* No resources required, all other values are reserved */ + lchan->tch_mode = GSM48_CMODE_SIGN; + break; + + /* If octet 4 indicates speech */ + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM1): + lchan->tch_mode = GSM48_CMODE_SPEECH_V1; + break; + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM2): + lchan->tch_mode = GSM48_CMODE_SPEECH_EFR; + break; + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM3): + lchan->tch_mode = GSM48_CMODE_SPEECH_AMR; + break; + /* TODO: also handle RSL_CMOD_SP_{GSM4,GSM5,GSM6} */ + + /* If octet 4 indicates non-transparent data */ + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_14k5): + lchan->tch_mode = GSM48_CMODE_DATA_14k5; + break; + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_12k0): + lchan->tch_mode = GSM48_CMODE_DATA_12k0; + break; + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_6k0): + lchan->tch_mode = GSM48_CMODE_DATA_6k0; + break; + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_43k5): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_28k8): + /* TODO: also handle non-transparent asymmetric data rates */ + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " + "unhandled non-transparent CSD data rate 0x%02x\n", + cm->chan_rate & 0x3f); + *cause = RSL_ERR_IE_CONTENT; + return -ENOTSUP; + + /* If octet 4 indicates transparent data */ + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_32000): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_29000): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_14400): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_9600): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_4800): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_2400): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_1200): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_600): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_1200_75): + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " + "unhandled transparent CSD data rate 0x%02x\n", + cm->chan_rate & 0x3f); + *cause = RSL_ERR_IE_CONTENT; + return -ENOTSUP; + + default: + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " + "an unknown/unhandled combination of " + "'Speech or data indicator' 0x%02x and " + "'Speech coding algorithm/data rate' 0x%02x\n", + cm->spd_ind, cm->chan_rate); + *cause = RSL_ERR_IE_CONTENT; + return -ENOPROTOOPT; + } + +#undef RSL_CMODE + return 0; } @@ -1302,10 +1374,9 @@ struct abis_rsl_dchan_hdr *dch = msgb_l2(msg); struct gsm_lchan *lchan = msg->lchan; 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; + uint8_t type, cause; int rc; if (lchan->state != LCHAN_S_NONE) { @@ -1358,15 +1429,8 @@ /* 9.3.6 Channel Mode */ if (type != RSL_ACT_OSMO_PDCH) { - if (!TLVP_PRESENT(&tp, RSL_IE_CHAN_MODE)) { - LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "missing Channel Mode\n"); - return rsl_tx_chan_act_nack(lchan, RSL_ERR_MAND_IE_ERROR); - } - cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE); - if (lchan_tchmode_from_cmode(lchan, cm) != 0) { - LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Unhandled RSL Channel Mode\n"); - return rsl_tx_chan_act_nack(lchan, RSL_ERR_IE_CONTENT); - } + if (rsl_handle_chan_mod_ie(lchan, &tp, &cause) != 0) + return rsl_tx_chan_act_nack(lchan, cause); } /* 9.3.7 Encryption Information */ @@ -1869,22 +1933,15 @@ { struct abis_rsl_dchan_hdr *dch = msgb_l2(msg); struct gsm_lchan *lchan = msg->lchan; - struct rsl_ie_chan_mode *cm; struct tlv_parsed tp; + uint8_t cause; int rc; rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); /* 9.3.6 Channel Mode */ - if (!TLVP_PRESENT(&tp, RSL_IE_CHAN_MODE)) { - LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "missing Channel Mode\n"); - return rsl_tx_mode_modif_nack(lchan, RSL_ERR_MAND_IE_ERROR); - } - cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE); - if (lchan_tchmode_from_cmode(lchan, cm) != 0) { - LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Unhandled RSL Channel Mode\n"); - return rsl_tx_mode_modif_nack(lchan, RSL_ERR_IE_CONTENT); - } + if (rsl_handle_chan_mod_ie(lchan, &tp, &cause) != 0) + return rsl_tx_mode_modif_nack(lchan, cause); if (bts_supports_cm(lchan->ts->trx->bts, ts_pchan(lchan->ts), lchan->tch_mode) != 1) { LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "%s: invalid mode: %s (wrong BSC configuration?)\n", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba967f5bd0cc8ad6cd3ccd40cca38b15ffe96b2c Gerrit-Change-Number: 23791 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 Apr 19 04:45:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 04:45:34 +0000 Subject: Change in osmo-bts[master]: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23792 ) Change subject: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() ...................................................................... rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() Change-Id: I125cdaaf5adac0891a964c9834b99eb5a35ce262 Depends-On: I40eca759380c8895d7923b2b4259d37a50978160 Depends-On: Icf4c83fa443b8410f4362c119b0a85419036b9cd --- M src/common/rsl.c 1 file changed, 17 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/92/23792/1 diff --git a/src/common/rsl.c b/src/common/rsl.c index 6884712..8a7cd13 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -164,7 +164,15 @@ case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM3): lchan->tch_mode = GSM48_CMODE_SPEECH_AMR; break; - /* TODO: also handle RSL_CMOD_SP_{GSM4,GSM5,GSM6} */ + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM4): + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM5): + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM6): + /* TODO: also handle RSL_CMOD_SP_{GSM4,GSM5,GSM6} */ + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " + "unhandled speech coding algorithm 0x%02x\n", + cm->chan_rate); + *cause = RSL_ERR_IE_CONTENT; + return -ENOTSUP; /* If octet 4 indicates non-transparent data */ case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_14k5): @@ -178,7 +186,14 @@ break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_43k5): case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_28k8): - /* TODO: also handle non-transparent asymmetric data rates */ + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_28k8): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_43k5_14k5): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_29k0_14k5): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_43k5_29k0): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_14k5_43k5): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_14k5_29k0): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_29k0_43k5): + /* TODO: also handle other non-transparent data rates */ LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " "unhandled non-transparent CSD data rate 0x%02x\n", cm->chan_rate & 0x3f); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I125cdaaf5adac0891a964c9834b99eb5a35ce262 Gerrit-Change-Number: 23792 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 Apr 19 06:06:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:06:49 +0000 Subject: Change in osmo-bts[master]: rsl: rename, fix and refactor lchan_tchmode_from_cmode() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23791 ) Change subject: rsl: rename, fix and refactor lchan_tchmode_from_cmode() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba967f5bd0cc8ad6cd3ccd40cca38b15ffe96b2c Gerrit-Change-Number: 23791 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 19 Apr 2021 06:06:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 06:06:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:06:53 +0000 Subject: Change in osmo-bts[master]: rsl: rename, fix and refactor lchan_tchmode_from_cmode() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23791 ) Change subject: rsl: rename, fix and refactor lchan_tchmode_from_cmode() ...................................................................... rsl: rename, fix and refactor lchan_tchmode_from_cmode() In change [1] I added the missing 'default' branch to the 'switch' statement in lchan_tchmode_from_cmode(). This caused massive regressions in ttcn3-bts-test, because osmo-bts started to NACK some RSL CHANnel ACTIVation messages. What caused a lot of regressions in ttcn3-bts-test is actually the missing branch for RSL_CMOD_SPD_SIGN in the 'switch' statement. It was not a problem before [1], because the 'default' branch was not there. I was about to add the missing 'cause' when I realized that this function needs to be reworked first... First of all, lchan_tchmode_from_cmode() does a bit more than just deriving RR (TS 44.018) channel mode from RSL (TS 48.058) channel mode. It additionally stores the 'Speech or data indicator' to the logical channel state, and also changes some global DTXd related flags in 'struct gsm_bts'. Let's use a more precise name. lchan_tchmode_from_cmode() -> rsl_handle_chan_mod_ie() Together with renaming, it becomes logical to have the IE presence check in rsl_handle_chan_mod_ie(), so that we can reduce code duplication in the calling functions a bit. Finally, the main problem is that coding and interpretation of the 6-th octet 'Speech coding algor./data rate + transp ind' depends on the 4-th octet of the Channel Mode IE. We cannot handle all values in one 'switch' statement without proper discrimination: a) If octet 4 indicates Speech, then octet 6 shall be interpreted as the GSM speech coding algorithm (FR, HR, AMR, etc.). b) If octet 4 indicates Signalling, then octet 6 shall be set to '00'O, because this is the only value defined in version 16.0.0 of 3GPP TS 48.058. All other values are reserved. c) If octet 4 indicates Data, then octet 6 shall be interpreted as CSD data rate further discriminated by service transparency. Therefore, we need take both values into account. This can be achieved by mixing them together using the bitwise operators, just like we do in L1SAP code. Change-Id: Iba967f5bd0cc8ad6cd3ccd40cca38b15ffe96b2c Related: [1] I67a70132999be6580a29e6b814763309a6df4ae9 Related: SYS#4895, OS#4941 --- M src/common/rsl.c 1 file changed, 99 insertions(+), 42 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/rsl.c b/src/common/rsl.c index 8488ab7..6884712 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -111,36 +111,108 @@ out[1] = (gtime->t3 << 5) | gtime->t2; } -/* compute lchan->rsl_cmode and lchan->tch_mode from RSL CHAN MODE IE */ -static int lchan_tchmode_from_cmode(struct gsm_lchan *lchan, - const struct rsl_ie_chan_mode *cm) +/* Handle RSL Channel Mode IE (see section 9.3.6) */ +static int rsl_handle_chan_mod_ie(struct gsm_lchan *lchan, + const struct tlv_parsed *tp, + uint8_t *cause) { + const struct rsl_ie_chan_mode *cm; + + if (!TLVP_PRES_LEN(tp, RSL_IE_CHAN_MODE, sizeof(*cm))) { + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE is not present\n"); + *cause = RSL_ERR_MAND_IE_ERROR; + return -ENODEV; + } + + cm = (const struct rsl_ie_chan_mode *) TLVP_VAL(tp, RSL_IE_CHAN_MODE); lchan->rsl_cmode = cm->spd_ind; lchan->ts->trx->bts->dtxd = (cm->dtx_dtu & RSL_CMOD_DTXd) ? true : false; - switch (cm->chan_rate) { - case RSL_CMOD_SP_GSM1: - lchan->tch_mode = GSM48_CMODE_SPEECH_V1; - break; - case RSL_CMOD_SP_GSM2: - lchan->tch_mode = GSM48_CMODE_SPEECH_EFR; - break; - case RSL_CMOD_SP_GSM3: - lchan->tch_mode = GSM48_CMODE_SPEECH_AMR; - break; - case RSL_CMOD_SP_NT_14k5: - lchan->tch_mode = GSM48_CMODE_DATA_14k5; - break; - case RSL_CMOD_SP_NT_12k0: - lchan->tch_mode = GSM48_CMODE_DATA_12k0; - break; - case RSL_CMOD_SP_NT_6k0: - lchan->tch_mode = GSM48_CMODE_DATA_6k0; + /* Octet 5: Channel rate and type */ + switch (cm->chan_rt) { + case RSL_CMOD_CRT_SDCCH: + case RSL_CMOD_CRT_TCH_Bm: + case RSL_CMOD_CRT_TCH_Lm: break; default: + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " + "unknown 'Channel rate and type' value 0x%02x\n", + cm->chan_rate); + *cause = RSL_ERR_IE_CONTENT; return -ENOTSUP; } +#define RSL_CMODE(spd_ind, chan_rate) \ + ((spd_ind << 8) | chan_rate) + + /* Octet 6: Speech coding algorithm/data rate + transparency indicator. + * NOTE: coding of this octet depends on 'Speech or data indicator' */ + switch (RSL_CMODE(cm->spd_ind, cm->chan_rate)) { + /* If octet 4 indicates signalling */ + case RSL_CMODE(RSL_CMOD_SPD_SIGN, 0x00): + /* No resources required, all other values are reserved */ + lchan->tch_mode = GSM48_CMODE_SIGN; + break; + + /* If octet 4 indicates speech */ + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM1): + lchan->tch_mode = GSM48_CMODE_SPEECH_V1; + break; + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM2): + lchan->tch_mode = GSM48_CMODE_SPEECH_EFR; + break; + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM3): + lchan->tch_mode = GSM48_CMODE_SPEECH_AMR; + break; + /* TODO: also handle RSL_CMOD_SP_{GSM4,GSM5,GSM6} */ + + /* If octet 4 indicates non-transparent data */ + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_14k5): + lchan->tch_mode = GSM48_CMODE_DATA_14k5; + break; + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_12k0): + lchan->tch_mode = GSM48_CMODE_DATA_12k0; + break; + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_6k0): + lchan->tch_mode = GSM48_CMODE_DATA_6k0; + break; + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_43k5): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_28k8): + /* TODO: also handle non-transparent asymmetric data rates */ + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " + "unhandled non-transparent CSD data rate 0x%02x\n", + cm->chan_rate & 0x3f); + *cause = RSL_ERR_IE_CONTENT; + return -ENOTSUP; + + /* If octet 4 indicates transparent data */ + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_32000): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_29000): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_14400): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_9600): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_4800): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_2400): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_1200): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_600): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_1200_75): + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " + "unhandled transparent CSD data rate 0x%02x\n", + cm->chan_rate & 0x3f); + *cause = RSL_ERR_IE_CONTENT; + return -ENOTSUP; + + default: + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " + "an unknown/unhandled combination of " + "'Speech or data indicator' 0x%02x and " + "'Speech coding algorithm/data rate' 0x%02x\n", + cm->spd_ind, cm->chan_rate); + *cause = RSL_ERR_IE_CONTENT; + return -ENOPROTOOPT; + } + +#undef RSL_CMODE + return 0; } @@ -1302,10 +1374,9 @@ struct abis_rsl_dchan_hdr *dch = msgb_l2(msg); struct gsm_lchan *lchan = msg->lchan; 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; + uint8_t type, cause; int rc; if (lchan->state != LCHAN_S_NONE) { @@ -1358,15 +1429,8 @@ /* 9.3.6 Channel Mode */ if (type != RSL_ACT_OSMO_PDCH) { - if (!TLVP_PRESENT(&tp, RSL_IE_CHAN_MODE)) { - LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "missing Channel Mode\n"); - return rsl_tx_chan_act_nack(lchan, RSL_ERR_MAND_IE_ERROR); - } - cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE); - if (lchan_tchmode_from_cmode(lchan, cm) != 0) { - LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Unhandled RSL Channel Mode\n"); - return rsl_tx_chan_act_nack(lchan, RSL_ERR_IE_CONTENT); - } + if (rsl_handle_chan_mod_ie(lchan, &tp, &cause) != 0) + return rsl_tx_chan_act_nack(lchan, cause); } /* 9.3.7 Encryption Information */ @@ -1869,22 +1933,15 @@ { struct abis_rsl_dchan_hdr *dch = msgb_l2(msg); struct gsm_lchan *lchan = msg->lchan; - struct rsl_ie_chan_mode *cm; struct tlv_parsed tp; + uint8_t cause; int rc; rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); /* 9.3.6 Channel Mode */ - if (!TLVP_PRESENT(&tp, RSL_IE_CHAN_MODE)) { - LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "missing Channel Mode\n"); - return rsl_tx_mode_modif_nack(lchan, RSL_ERR_MAND_IE_ERROR); - } - cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE); - if (lchan_tchmode_from_cmode(lchan, cm) != 0) { - LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Unhandled RSL Channel Mode\n"); - return rsl_tx_mode_modif_nack(lchan, RSL_ERR_IE_CONTENT); - } + if (rsl_handle_chan_mod_ie(lchan, &tp, &cause) != 0) + return rsl_tx_mode_modif_nack(lchan, cause); if (bts_supports_cm(lchan->ts->trx->bts, ts_pchan(lchan->ts), lchan->tch_mode) != 1) { LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "%s: invalid mode: %s (wrong BSC configuration?)\n", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba967f5bd0cc8ad6cd3ccd40cca38b15ffe96b2c Gerrit-Change-Number: 23791 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 06:07:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:07:17 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add RSL_CMOD_SP_{GSM4, GSM5, GSM6} In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23788 ) Change subject: protocol/gsm_08_58.h: add RSL_CMOD_SP_{GSM4,GSM5,GSM6} ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I40eca759380c8895d7923b2b4259d37a50978160 Gerrit-Change-Number: 23788 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 19 Apr 2021 06:07:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 06:07:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:07:20 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add RSL_CMOD_SP_{GSM4, GSM5, GSM6} In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23788 ) Change subject: protocol/gsm_08_58.h: add RSL_CMOD_SP_{GSM4,GSM5,GSM6} ...................................................................... protocol/gsm_08_58.h: add RSL_CMOD_SP_{GSM4,GSM5,GSM6} The new values are present in 3GPP TS 48.058, V16.0.0 (2020-09): * RSL_CMOD_SP_GSM4 - OFR AMR-WB or OHR AMR-WB, * RSL_CMOD_SP_GSM5 - FR AMR-WB, * RSL_CMOD_SP_GSM6 - OHR AMR. Change-Id: I40eca759380c8895d7923b2b4259d37a50978160 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 3 insertions(+), 0 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 6f974ce..f1d1dec 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -487,6 +487,9 @@ #define RSL_CMOD_SP_GSM1 0x01 #define RSL_CMOD_SP_GSM2 0x11 #define RSL_CMOD_SP_GSM3 0x21 +#define RSL_CMOD_SP_GSM4 0x31 +#define RSL_CMOD_SP_GSM5 0x09 +#define RSL_CMOD_SP_GSM6 0x0d /* non-transparent data */ #define RSL_CMOD_CSD_NT_43k5 0x74 #define RSL_CMOD_CSD_NT_28k8 0x71 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I40eca759380c8895d7923b2b4259d37a50978160 Gerrit-Change-Number: 23788 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 06:07:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:07:38 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add more 'Channel rate and type' values In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23789 ) Change subject: protocol/gsm_08_58.h: add more 'Channel rate and type' values ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0aaea1549e6de01c374d6b46353312e6246078e0 Gerrit-Change-Number: 23789 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 19 Apr 2021 06: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 Apr 19 06:07:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:07:56 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add asymmetric CSD data rates In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23790 ) Change subject: protocol/gsm_08_58.h: add asymmetric CSD data rates ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23790 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icf4c83fa443b8410f4362c119b0a85419036b9cd Gerrit-Change-Number: 23790 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 19 Apr 2021 06:07: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 Apr 19 06:07:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:07:59 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add more 'Channel rate and type' values In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23789 ) Change subject: protocol/gsm_08_58.h: add more 'Channel rate and type' values ...................................................................... protocol/gsm_08_58.h: add more 'Channel rate and type' values The new values are present in 3GPP TS 48.058, V16.0.0 (2020-09). Change-Id: I0aaea1549e6de01c374d6b46353312e6246078e0 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 9 insertions(+), 4 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 f1d1dec..7308f0e 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -479,10 +479,15 @@ RSL_CMOD_SPD_DATA = 0x02, RSL_CMOD_SPD_SIGN = 0x03, }; -#define RSL_CMOD_CRT_SDCCH 0x01 -#define RSL_CMOD_CRT_TCH_Bm 0x08 /* full-rate */ -#define RSL_CMOD_CRT_TCH_Lm 0x09 /* half-rate */ -/* FIXME: More CRT types */ +#define RSL_CMOD_CRT_SDCCH 0x01 +#define RSL_CMOD_CRT_TCH_Bm 0x08 /* full-rate */ +#define RSL_CMOD_CRT_TCH_Lm 0x09 /* half-rate */ +#define RSL_CMOD_CRT_TCH_BI_Bm 0x0a /* full-rate: bi-directional (multislot) */ +#define RSL_CMOD_CRT_TCH_UNI_Bm 0x1a /* full-rate: uni-directional (multislot) */ +#define RSL_CMOD_CRT_TCH_GROUP_Bm 0x18 /* full-rate: group call channel */ +#define RSL_CMOD_CRT_TCH_GROUP_Lm 0x19 /* half-rate: group call channel */ +#define RSL_CMOD_CRT_TCH_BCAST_Bm 0x28 /* full-rate: broadcast call channel */ +#define RSL_CMOD_CRT_TCH_BCAST_Lm 0x29 /* half-rate: broadcast call channel */ /* Speech */ #define RSL_CMOD_SP_GSM1 0x01 #define RSL_CMOD_SP_GSM2 0x11 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0aaea1549e6de01c374d6b46353312e6246078e0 Gerrit-Change-Number: 23789 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 06:07:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:07:59 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add asymmetric CSD data rates In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23790 ) Change subject: protocol/gsm_08_58.h: add asymmetric CSD data rates ...................................................................... protocol/gsm_08_58.h: add asymmetric CSD data rates The new values are present in 3GPP TS 48.058, V16.0.0 (2020-09). Change-Id: Icf4c83fa443b8410f4362c119b0a85419036b9cd --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 7 insertions(+), 0 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 7308f0e..79ddb68 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -495,6 +495,13 @@ #define RSL_CMOD_SP_GSM4 0x31 #define RSL_CMOD_SP_GSM5 0x09 #define RSL_CMOD_SP_GSM6 0x0d +/* non-transparent data (asymmetric) */ +#define RSL_CMOD_CSD_NTA_43k5_14k5 0x61 /* asymmetric 43.5 kbit/s (DL) + 14.5 kbit/s (UL) */ +#define RSL_CMOD_CSD_NTA_29k0_14k5 0x62 /* asymmetric 29.0 kbit/s (DL) + 14.5 kbit/s (UL) */ +#define RSL_CMOD_CSD_NTA_43k5_29k0 0x63 /* asymmetric 43.5 kbit/s (DL) + 29.0 kbit/s (UL) */ +#define RSL_CMOD_CSD_NTA_14k5_43k5 0x69 /* asymmetric 14.5 kbit/s (DL) + 43.5 kbit/s (UL) */ +#define RSL_CMOD_CSD_NTA_14k5_29k0 0x6a /* asymmetric 14.5 kbit/s (DL) + 29.0 kbit/s (UL) */ +#define RSL_CMOD_CSD_NTA_29k0_43k5 0x6b /* asymmetric 29.0 kbit/s (DL) + 43.5 kbit/s (UL) */ /* non-transparent data */ #define RSL_CMOD_CSD_NT_43k5 0x74 #define RSL_CMOD_CSD_NT_28k8 0x71 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23790 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icf4c83fa443b8410f4362c119b0a85419036b9cd Gerrit-Change-Number: 23790 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 06:09:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:09:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23755 ) Change subject: ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I60f669d7c8838d460a14c6604c4375a8d47f5149 Gerrit-Change-Number: 23755 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 19 Apr 2021 06:09: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 Apr 19 06:09:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:09:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23755 ) Change subject: ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU ...................................................................... ns: TC_sns_bss_change_weight_timeout: fix expected SNS_SIZE PDU Allow to work with IPv4 and IPv6 endpoints and only expected known required fields (e.g. NSEI and rst_flag). Related: OS#5036 Change-Id: I60f669d7c8838d460a14c6604c4375a8d47f5149 --- M ns/NS_Tests.ttcn 1 file changed, 10 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 1715b2e..29e5669 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -517,8 +517,16 @@ [] as_rx_alive_tx_ack(); } - f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 8, - num_v4 := 4, num_v6 := omit), 0); + if (nsvc_cfg.provider.ip.address_family == AF_INET) { + /* expect one single SNS-SIZE with RESET flag; 4x v4 EP; no v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, + num_v4 := ?, num_v6 := omit), 0); + } else { + /* expect one single SNS-SIZE with RESET flag; no v4 EP; 4x v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, + num_v4 := omit, num_v6 := ?), 0); + } + setverdict(pass); f_clean_ns_codec(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I60f669d7c8838d460a14c6604c4375a8d47f5149 Gerrit-Change-Number: 23755 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 Mon Apr 19 06:09:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:09:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: TC_sns_bss_change_weight_timeout rework TC to use g_handle_rx_alive In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23756 ) Change subject: ns: TC_sns_bss_change_weight_timeout rework TC to use g_handle_rx_alive ...................................................................... ns: TC_sns_bss_change_weight_timeout rework TC to use g_handle_rx_alive With g_handle_rx_alive the test case doesn't need to use alt{} as f_ns_exp takes care of the NS_ALIVE. Related: OS#5036 Change-Id: I45f4392b556912bf60859f354a5687a44e6beeb1 --- M ns/NS_Tests.ttcn 1 file changed, 4 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 29e5669..f69bbe0 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -469,6 +469,7 @@ } testcase TC_sns_bss_change_weight() runs on RAW_Test_CT { + g_handle_rx_alive := true; f_init_vty(); f_init_ns_codec(mp_nsconfig); f_incoming_sns_size(); @@ -487,6 +488,7 @@ var template PDU_NS rx; var NSVCConfiguration nsvc_cfg; + g_handle_rx_alive := true; f_init_vty(); f_init_ns_codec(mp_nsconfig); f_incoming_sns_size(); @@ -507,14 +509,8 @@ rx := tr_SNS_CHG_WEIGHT(g_nsconfig.nsei, ?, v4 := omit, v6 := v6_elem); } - alt { - [] NSCP[0].receive(rx) { - i := i + 1; - if (i < 3) { - repeat; - } - } - [] as_rx_alive_tx_ack(); + for (i := 0; i < 3; i := i + 1) { + f_ns_exp(rx); } if (nsvc_cfg.provider.ip.address_family == AF_INET) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23756 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I45f4392b556912bf60859f354a5687a44e6beeb1 Gerrit-Change-Number: 23756 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 Apr 19 06:09:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 19 Apr 2021 06:09:47 +0000 Subject: Change in osmo-bts[master]: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23792 ) Change subject: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I125cdaaf5adac0891a964c9834b99eb5a35ce262 Gerrit-Change-Number: 23792 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 19 Apr 2021 06:09:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 08:39:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 08:39:24 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h at 674 PS1, Line 674: int gsm_net_set_system_infos(); int gsm_net_set_system_infos(void) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 08:39:24 +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 Apr 19 08:48:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 08:48:10 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Fix trailing whitespace In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 ) Change subject: BSSAP_Types.ttcn: Fix trailing whitespace ...................................................................... BSSAP_Types.ttcn: Fix trailing whitespace Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 --- M src/BSSAP_Types.ttcn 1 file changed, 397 insertions(+), 397 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve dexter: Looks good to me, approved laforge: Looks good to me, approved diff --git a/src/BSSAP_Types.ttcn b/src/BSSAP_Types.ttcn index f7d91bd..95df5bf 100644 --- a/src/BSSAP_Types.ttcn +++ b/src/BSSAP_Types.ttcn @@ -19,8 +19,8 @@ // This module contains the type definitions and encoding attributes for // Base Station System. The signalling protocol reference model is based // on 48.008 V11.2.0 Figure 1. -// -// ------------------------------ +// +// ------------------------------ // | BSSAP | // | | // | ------------------------- | BSSMAP layer is defined in 48.008 v11.2.0 @@ -31,7 +31,7 @@ // | | Distribution Function | | // |=============================| // | SCCP | -// ------------------------------ +// ------------------------------ import from General_Types all; @@ -50,11 +50,11 @@ // BSSMAP information element definition /////////////////////////////////////////// -// Circuit Identity Code - 48.008 subclause 3.2.2.2 +// Circuit Identity Code - 48.008 subclause 3.2.2.2 type record BSSMAP_IE_CircuitIdentityCode { OCT1 elementIdentifier, // '01'O - OCT1 cicHigh, // CIC = 11 bits of used information + OCT1 cicHigh, // CIC = 11 bits of used information OCT1 cicLow // (last 5 bits not used) } with { variant "PRESENCE (elementIdentifier = '01'O)" } @@ -68,43 +68,43 @@ // Resource Available - 48.008 subclause 3.2.2.4 type record BSSMAP_IE_ResourceAvailable -{ +{ OCT1 elementIdentifier, // '03'O OCT4 band1, OCT4 band2, OCT4 band3, OCT4 band4, - OCT4 band5 + OCT4 band5 } with { variant "PRESENCE (elementIdentifier = '03'O)" } -// Cause - 48.008 subclause 3.2.2.5 +// Cause - 48.008 subclause 3.2.2.5 type record BSSMAP_IE_Cause { OCT1 elementIdentifier, // '04'O - INT1 lengthIndicator, + INT1 lengthIndicator, BIT7 causeValue, BIT1 extensionCauseValue, OCT1 spare1 optional } with { variant "PRESENCE (elementIdentifier = '04'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (causeValue,extensionCauseValue,spare1)"; variant (spare1) "PRESENCE(extensionCauseValue = '1'B)"} -// IMSI - 48.008 subclause 3.2.2.6 +// IMSI - 48.008 subclause 3.2.2.6 type record BSSMAP_IE_IMSI { OCT1 elementIdentifier, // '08'O - INT1 lengthIndicator, + INT1 lengthIndicator, BIT3 typeOfIdentity, - BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits + BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits HEX5_16 digits // if nr of digits is even, the last digit: '1111'B } with { variant "PRESENCE (elementIdentifier = '08'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)"; variant "PADDING(yes),PADDING_PATTERN('1'B)"} -// TMSI - 48.008 subclause 3.2.2.7 +// TMSI - 48.008 subclause 3.2.2.7 type record BSSMAP_IE_TMSI { OCT1 elementIdentifier, // '09'O @@ -114,7 +114,7 @@ variant (lengthIndicator) "LENGTHTO (tmsiOctets)"} -// Number Of MSs - 48.008 subclause 3.2.2.8 +// Number Of MSs - 48.008 subclause 3.2.2.8 type record BSSMAP_IE_NumberOfMSs { OCT1 elementIdentifier, // '0E'O @@ -122,7 +122,7 @@ } -// Layer 3 Header Info - 48.008 subclause 3.2.2.9 +// Layer 3 Header Info - 48.008 subclause 3.2.2.9 type record BSSMAP_IE_Layer3HeaderInfo { OCT1 elementIdentifier, //'07'O @@ -135,45 +135,45 @@ variant (lengthIndicator) "LENGTHTO (pd, spare1_4, ti, spare2_4)" } -// Encryption Information - 48.008 subclause 3.2.2.10 +// Encryption Information - 48.008 subclause 3.2.2.10 type record BSSMAP_IE_EncryptionInformation { OCT1 elementIdentifier, // '0A'O INT1 lengthIndicator, // 1..9 - OCT1 permittedAlgorithms,// '1'B encryption no + OCT1 permittedAlgorithms,// '1'B encryption no // '0' B GSM A5/1 not useable - // '1' B GSM A5/useable 1 + // '1' B GSM A5/useable 1 // '0' B GSM A5/2 not useable - // '1' B GSM A5/useable 2 + // '1' B GSM A5/useable 2 // '0' B GSM A5/3 not useable - // '1' B GSM A5/useable 3 + // '1' B GSM A5/useable 3 // '0' B GSM A5/4 not useable - // '1' B GSM A5/useable 4 - // '0' B GSM A5/5 useable not - // '1' B GSM A5/useable 5 - // '0' B GSM A5/6 useable not - // '1' B GSM A5/useable 6 - // '0' B GSM A5/7 useable not - // '1' B GSM A5/useable 7 + // '1' B GSM A5/useable 4 + // '0' B GSM A5/5 useable not + // '1' B GSM A5/useable 5 + // '0' B GSM A5/6 useable not + // '1' B GSM A5/useable 6 + // '0' B GSM A5/7 useable not + // '1' B GSM A5/useable 7 OCT8 key optional } with { variant "PRESENCE (elementIdentifier = '0A'O)" variant (lengthIndicator) "LENGTHTO (permittedAlgorithms, key)" } -// Channel Type - 48.008 subclause 3.2.2.11 +// Channel Type - 48.008 subclause 3.2.2.11 type record BSSMAP_IE_ChannelType { OCT1 elementIdentifier, //'0B'O INT1 lengthIndicator, // 3..8 BIT4 speechOrDataIndicator, //'0001'B Speech,'0010'B Data '0011'B Sign BIT4 spare1_4, // '0000'B - OCT1 channelRateAndType, // + OCT1 channelRateAndType, // octetstring speechId_DataIndicator } with {variant (lengthIndicator) "LENGTHTO (speechOrDataIndicator, spare1_4, channelRateAndType, speechId_DataIndicator)" } -// Periodicity - 48.008 subclause 3.2.2.12 +// Periodicity - 48.008 subclause 3.2.2.12 type record BSSMAP_IE_Periodicity { OCT1 elementIdentifier, //'0C'O @@ -181,7 +181,7 @@ } -// Extended Resource Indicator - 48.008 subclause 3.2.2.13 +// Extended Resource Indicator - 48.008 subclause 3.2.2.13 type record BSSMAP_IE_ExtendedResourceInd { OCT1 elementIdentifier, //'0D'O @@ -191,7 +191,7 @@ } with { variant "PRESENCE (elementIdentifier = '0D'O)" } -// Total Resource Accessible - 48.008 subclause 3.2.2.14 +// Total Resource Accessible - 48.008 subclause 3.2.2.14 type record BSSMAP_IE_TotalResourceAccessible { OCT1 elementIdentifier, //'22'O @@ -221,7 +221,7 @@ type record BSSMAP_IE_LSAIdentifierList { OCT1 elementIdentifier, //'3C'O - INT1 lengthIndicator, + INT1 lengthIndicator, BIT1 EP, BIT7 spare, BSSMAP_FIELD_LSAIdList lSAIDlist @@ -230,7 +230,7 @@ type record of BSSMAP_FIELD_LSAId BSSMAP_FIELD_LSAIdList -// Cell Identifier - 48.008 subclause 3.2.2.17 +// Cell Identifier - 48.008 subclause 3.2.2.17 type record BSSMAP_IE_CellIdentifier { OCT1 elementIdentifier, // '05'O @@ -242,19 +242,19 @@ variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentification)"; variant (cellIdentification) "CROSSTAG( - cI_CGI, cellIdentifierDiscriminator='0000'B; - cI_LAC_CI, cellIdentifierDiscriminator='0001'B; - cI_CI, cellIdentifierDiscriminator='0010'B; - cI_noCell, cellIdentifierDiscriminator='0011'B; + cI_CGI, cellIdentifierDiscriminator='0000'B; + cI_LAC_CI, cellIdentifierDiscriminator='0001'B; + cI_CI, cellIdentifierDiscriminator='0010'B; + cI_noCell, cellIdentifierDiscriminator='0011'B; cI_PLMN_LAC_RNC, cellIdentifierDiscriminator='1000'B; - cI_RNC, cellIdentifierDiscriminator='1001'B; + cI_RNC, cellIdentifierDiscriminator='1001'B; cI_LAC_RNC, cellIdentifierDiscriminator='1010'B; cI_SAI, cellIdentifierDiscriminator='1011'B; - ci_LAC_RNC_CI, cellIdentifierDiscriminator='1100'B; + ci_LAC_RNC_CI, cellIdentifierDiscriminator='1100'B; )"} type union BSSMAP_FIELD_CellIdentification -{ +{ BSSMAP_FIELD_CellIdentification_CGI cI_CGI, // discriminator = '0000'B BSSMAP_FIELD_CellIdentification_LAC_CI cI_LAC_CI, // discriminator = '0001'B OCT2 cI_CI, // discriminator = '0010'B @@ -268,60 +268,60 @@ type record BSSMAP_FIELD_CellIdentification_CGI { - OCT3 mcc_mnc, + OCT3 mcc_mnc, OCT2 lac, - OCT2 ci + OCT2 ci } type record BSSMAP_FIELD_CellIdentification_LAC_CI { OCT2 lac, - OCT2 ci + OCT2 ci } type record BSSMAP_FIELD_CellIdentification_LAI { - OCT3 mcc_mnc, - OCT2 lac + OCT3 mcc_mnc, + OCT2 lac } type record BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC { - OCT3 mcc_mnc, + OCT3 mcc_mnc, OCT2 lac, OCT2 rncId -} +} type record BSSMAP_FIELD_CellIdentification_LAC_RNC { OCT2 lac, - OCT2 rncId + OCT2 rncId } type record BSSMAP_FIELD_CellIdentification_SAI { - OCT3 mcc_mnc, + OCT3 mcc_mnc, OCT2 lac, - OCT2 sac + OCT2 sac } type record BSSMAP_FIELD_LAC_RNC_CI { - OCT3 mcc_mnc, + OCT3 mcc_mnc, OCT2 lac, - OCT2 rncId, - OCT2 ci + OCT2 rncId, + OCT2 ci } -// Cell Identifier List - 48.008 subclause 3.2.2.27 +// Cell Identifier List - 48.008 subclause 3.2.2.27 type record BSSMAP_IE_CellIdentifierList { OCT1 elementIdentifier, // '1A'O INT1 lengthIndicator, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare1_4, // '0000'B - BSSMAP_FIELD_CellIdentificationList cellIdentificationList + BSSMAP_FIELD_CellIdentificationList cellIdentificationList } with { variant "PRESENCE (elementIdentifier = '1A'O)" variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationList)"; @@ -337,7 +337,7 @@ cIl_RNC, cellIdentifierDiscriminator='1001'B; cIl_LAC_RNC, cellIdentifierDiscriminator='1010'B;)"} -type union BSSMAP_FIELD_CellIdentificationList { +type union BSSMAP_FIELD_CellIdentificationList { BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. = '0000'B BSSMAP_FIELD_CellIdentificationList_LAC_CI cIl_LAC_CI,// discr. = '0001'B RecordOfOCT2 cIl_CI, // discr. = '0010'B @@ -354,7 +354,7 @@ type record of OCT2 RecordOfOCT2 -type record of BSSMAP_FIELD_CellIdentification_CGI +type record of BSSMAP_FIELD_CellIdentification_CGI BSSMAP_FIELD_CellIdentificationList_CGI type record of BSSMAP_FIELD_CellIdentification_LAC_CI @@ -366,10 +366,10 @@ type record of BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC BSSMAP_FIELD_CellIdentificationList_PLMN_LAC_RNC -type record of BSSMAP_FIELD_CellIdentification_LAC_RNC +type record of BSSMAP_FIELD_CellIdentification_LAC_RNC BSSMAP_FIELD_CellIdentificationList_LAC_RNC -type record of BSSMAP_FIELD_CellIdentification_SAI +type record of BSSMAP_FIELD_CellIdentification_SAI BSSMAP_FIELD_CellIdentificationList_SAI // 3.2.2.27a Cell Identifier List Segment @@ -377,21 +377,21 @@ { OCT1 elementIdentifier, // '6D'O INT1 lengthIndicator, - BIT4 sequenceNumber, + BIT4 sequenceNumber, BIT4 sequenceLength, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare, - BSSMAP_FIELD_CellIdentificationListSegment cellIdentificationListSegment + BSSMAP_FIELD_CellIdentificationListSegment cellIdentificationListSegment } with { variant "PRESENCE (elementIdentifier = '6D'O)" variant (lengthIndicator) "LENGTHTO(sequenceNumber, sequenceLength, cellIdentifierDiscriminator, spare, cellIdentificationListSegment)"; variant (cellIdentificationListSegment) "CROSSTAG( - cIl_CGI, cellIdentifierDiscriminator='0000'B; - cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; - cIl_CI, cellIdentifierDiscriminator='0010'B; - cIl_noCell, cellIdentifierDiscriminator='0011'B; - cIl_LAI, cellIdentifierDiscriminator='0100'B; - cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_CGI, cellIdentifierDiscriminator='0000'B; + cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_noCell, cellIdentifierDiscriminator='0011'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; cIl_allInBSS, cellIdentifierDiscriminator='0110'B; cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} @@ -401,23 +401,23 @@ { BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. ='0000'B; BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment cIl_LAC_CI, // discr. ='0001'B - BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment cIl_CI, // discr. ='0010'B; - OCT0 cIl_noCell, // discr. ='0011'B; + BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment cIl_CI, // discr. ='0010'B; + OCT0 cIl_noCell, // discr. ='0011'B; BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. ='0100'B; RecordOfOCT2 cIl_LAC, // discr. ='0101'B; OCT0 cIl_allInBSS, // discr. ='0101'B; - RecordOfOCT3 cIl_MCC_MNC // discr. ='0111'B; + RecordOfOCT3 cIl_MCC_MNC // discr. ='0111'B; } type record BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment { - OCT3 mcc_mnc, + OCT3 mcc_mnc, BSSMAP_FIELD_CellIdentificationList_LAC_CI lac_ci } type record BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment { - OCT3 mcc_mnc, + OCT3 mcc_mnc, OCT2 lac, RecordOfOCT2 ci } @@ -431,95 +431,95 @@ { OCT1 elementIdentifier, // '71'O INT1 lengthIndicator, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare1_4, // '0000'B - BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListEstCells + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListEstCells } with { variant "PRESENCE (elementIdentifier = '71'O)" variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListEstCells)"; variant (cellIdentificationListEstCells) "CROSSTAG( cIl_CGI, cellIdentifierDiscriminator='0000'B; cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; - cIl_CI, cellIdentifierDiscriminator='0010'B; - cIl_LAI, cellIdentifierDiscriminator='0100'B; - cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; cIl_allInBSS, cellIdentifierDiscriminator='0110'B; - cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} - - + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + + type union BSSMAP_FIELD_CellIdentificationListEstablishment -{ +{ BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. = '0000'B BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment cIl_LAC_CI, // discr. = '0001'B; BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment cIl_CI, // discr. = '0010'B; - BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. = '0100'B; - RecordOfOCT2 cIl_LAC, // discr. = '0101'B; + BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. = '0100'B; + RecordOfOCT2 cIl_LAC, // discr. = '0101'B; OCT0 cIl_allInBSS, // discr. = '0110'B; RecordOfOCT3 cIl_MCC_MNC // discr. = '0111'B; } - -// 3.2.2.27c + +// 3.2.2.27c type record BSSMAP_IE_CellIdentifierListSegmentCellsToEst { OCT1 elementIdentifier, // '73'O INT1 lengthIndicator, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare1_4, // '0000'B - BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListCellsToEst + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListCellsToEst } with { variant "PRESENCE (elementIdentifier = '72'O)" variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListCellsToEst)"; variant (cellIdentificationListCellsToEst) "CROSSTAG( cIl_CGI, cellIdentifierDiscriminator='0000'B; cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; - cIl_CI, cellIdentifierDiscriminator='0010'B; - cIl_LAI, cellIdentifierDiscriminator='0100'B; - cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; cIl_allInBSS, cellIdentifierDiscriminator='0110'B; - cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} - -// 3.2.2.27e + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + +// 3.2.2.27e type record BSSMAP_IE_CellIdentifierListSegmentReleasedCellsNoUserPresent { OCT1 elementIdentifier, // '74'O INT1 lengthIndicator, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare1_4, // '0000'B - BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListReleasedCellsNoUserPresent + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListReleasedCellsNoUserPresent } with { variant "PRESENCE (elementIdentifier = '74'O)" variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListReleasedCellsNoUserPresent)"; variant (cellIdentificationListReleasedCellsNoUserPresent) "CROSSTAG( cIl_CGI, cellIdentifierDiscriminator='0000'B; cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; - cIl_CI, cellIdentifierDiscriminator='0010'B; - cIl_LAI, cellIdentifierDiscriminator='0100'B; - cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; cIl_allInBSS, cellIdentifierDiscriminator='0110'B; - cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} - - // 3.2.2.27f + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + + // 3.2.2.27f type record BSSMAP_IE_CellIdentifierListSegmentNotEstablishedCellsNoEstPossible { OCT1 elementIdentifier, // '73'O INT1 lengthIndicator, - BIT4 cellIdentifierDiscriminator, + BIT4 cellIdentifierDiscriminator, BIT4 spare1_4, // '0000'B - BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListNotEstablishedCellsNoEstPossible + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListNotEstablishedCellsNoEstPossible } with { variant "PRESENCE (elementIdentifier = '73'O)" variant (lengthIndicator) "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListNotEstablishedCellsNoEstPossible)"; variant (cellIdentificationListNotEstablishedCellsNoEstPossible) "CROSSTAG( cIl_CGI, cellIdentifierDiscriminator='0000'B; cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; - cIl_CI, cellIdentifierDiscriminator='0010'B; - cIl_LAI, cellIdentifierDiscriminator='0100'B; - cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; cIl_allInBSS, cellIdentifierDiscriminator='0110'B; - cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} - - -// Priority - 48.008 subclause 3.2.2.18 + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + + +// Priority - 48.008 subclause 3.2.2.18 type record BSSMAP_IE_Priority { OCT1 elementIdentifier, //'06'O @@ -527,18 +527,18 @@ BIT1 pvi, // '0'B connection canNOT be preempted by other allocation // '1'B connection might be preempted by other allocation BIT1 qa, // '0'B queuing not allowed - '1'B queuing allowed - BIT4 priorityLevel, // '0000'B spare - // '0001'B priority 1 level (highest) - // '1110'B priority 14 level (lowest) - // '1111'B priority used not - BIT1 pci, // '0'B allocation canNOT preempt connection other - // '1'B allocation might preempt other connection + BIT4 priorityLevel, // '0000'B spare + // '0001'B priority 1 level (highest) + // '1110'B priority 14 level (lowest) + // '1111'B priority used not + BIT1 pci, // '0'B allocation canNOT preempt connection other + // '1'B allocation might preempt other connection BIT1 spare1_1 // '0'B } with { variant "PRESENCE (elementIdentifier = '06'O)" variant(lengthIndicator) "LENGTHTO(pvi,qa,priorityLevel,pci,spare1_1)" } -// Classmark Information Type 2 - 48.008 subclause 3.2.2.19 +// Classmark Information Type 2 - 48.008 subclause 3.2.2.19 type record BSSMAP_IE_ClassmarkInformationType2 { OCT1 elementIdentifier, //'12'O @@ -546,31 +546,31 @@ BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS) // '001'B class2 (for GSM+DCS+PCS) // '010'B class3 (for GSM+DCS+PCS) - // '011'class4 B (only for GSM) - // '100'class5 B (only for GSM) + // '011'class4 B (only for GSM) + // '100'class5 B (only for GSM) BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B) BIT1 esind,//controlled early classmark sending implemented ('1'B) or not ('0'B) BIT2 revisionLevel, // '00'B reserved for phase1 (GSM+DCS) - // '00'B reserved (PCS) + // '00'B reserved (PCS) // '01'B used by phase2 MSs (GSM+DCS) - // '01'B used by PCS1900 MSs phase1 (PCS) + // '01'B used by PCS1900 MSs phase1 (PCS) BIT1 spare1_1, // '0'B BIT1 fc, // MS' support of E/R_GSM ('1'B) or not ('0'B) BIT1 vgcs, // VGCS capability or notification wanted ('1'B) or not ('0'B) BIT1 vbs, // VBS capability or notification wanted ('1'B) or not ('0'B) - BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B) + BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B) BIT2 ss_ScreenIndicator, // '00'B default value of phase1 (GSM+DCS) - // '00'reserved B (PCS) - // '01'B capability of notation ellipsis + // '00'reserved B (PCS) + // '01'B capability of notation ellipsis // '10'B for future use - // '11'B for use future + // '11'B for use future BIT1 ps_Capability, // ignored, if received BIT1 spare2_1, // '0'B BSSMAP_FIELD_ClassmarkInformationType2_oct5 classmarkInformationType2_oct5 } with { variant "PRESENCE (elementIdentifier = '12'O)"; variant (lengthIndicator) "LENGTHTO (rf_PowerCapability, a5_1, esind, revisionLevel, spare1_1, fc, vgcs, vbs, sm_Capability, - ss_ScreenIndicator, ps_Capability, spare2_1, + ss_ScreenIndicator, ps_Capability, spare2_1, classmarkInformationType2_oct5)" } // Helper type for BSSMAP Applib @@ -579,24 +579,24 @@ BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS) // '001'B class2 (for GSM+DCS+PCS) // '010'B class3 (for GSM+DCS+PCS) - // '011'class4 B (only for GSM) - // '100'class5 B (only for GSM) + // '011'class4 B (only for GSM) + // '100'class5 B (only for GSM) BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B) BIT1 esind,//controlled early classmark sending implemented ('1'B) or not ('0'B) BIT2 revisionLevel, // '00'B reserved for phase1 (GSM+DCS) - // '00'B reserved (PCS) + // '00'B reserved (PCS) // '01'B used by phase2 MSs (GSM+DCS) - // '01'B used by PCS1900 MSs phase1 (PCS) + // '01'B used by PCS1900 MSs phase1 (PCS) BIT1 spare1_1, // '0'B BIT1 fc, // MS' support of E/R_GSM ('1'B) or not ('0'B) BIT1 vgcs, // VGCS capability or notification wanted ('1'B) or not ('0'B) BIT1 vbs, // VBS capability or notification wanted ('1'B) or not ('0'B) - BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B) + BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B) BIT2 ss_ScreenIndicator, // '00'B default value of phase1 (GSM+DCS) - // '00'reserved B (PCS) - // '01'B capability of notation ellipsis + // '00'reserved B (PCS) + // '01'B capability of notation ellipsis // '10'B for future use - // '11'B for use future + // '11'B for use future BIT1 ps_Capability, // ignored, if received BIT1 spare2_1, // '0'B BSSMAP_FIELD_ClassmarkInformationType2_oct5 classmarkInformationType2_oct5 @@ -604,8 +604,8 @@ type record BSSMAP_FIELD_ClassmarkInformationType2_oct5 { - BIT1 a5_2,//encryption algorithm A5/2 available ('0'B) or not ('1'B) - BIT1 a5_3,//encryption algorithm A5/3 available ('0'B) or not ('1'B) + BIT1 a5_2,//encryption algorithm A5/2 available ('0'B) or not ('1'B) + BIT1 a5_3,//encryption algorithm A5/3 available ('0'B) or not ('1'B) BIT1 cmsp,//"Network initiated MO CM connectionrequest" not supported ('0'B) //or supported for at least one CM protocol ('1'B) BIT1 solsa,// The ME support SoLSA ('1'B) or not ('0'B) @@ -638,7 +638,7 @@ } with { variant "PRESENCE (elementIdentifier = '14'O)" } -// RR Cause - 48.008 subclause 3.2.2.22 +// RR Cause - 48.008 subclause 3.2.2.22 type record BSSMAP_IE_RR_Cause { OCT1 elementIdentifier, // '15'O @@ -646,26 +646,26 @@ } with { variant "PRESENCE (elementIdentifier = '15'O)" } -// LSA Information - 48.008 subclause 3.2.2.23 +// LSA Information - 48.008 subclause 3.2.2.23 type record BSSMAP_IE_LSAInformation { OCT1 elementIdentifier, //'3D'O INT1 lengthIndicator, BIT1 lSAonly, - BIT7 spare, - BSSMAP_FIELD_LSAIdAttrib_List lSAIdAttrib_List + BIT7 spare, + BSSMAP_FIELD_LSAIdAttrib_List lSAIdAttrib_List } with { variant "PRESENCE (elementIdentifier = '3D'O)" variant (lengthIndicator) "LENGTHTO (lSAonly,spare,lSAIdAttrib_List)" } - -type record BSSMAP_FIELD_LSAIdAttrib + +type record BSSMAP_FIELD_LSAIdAttrib { BIT4 priority, BIT1 pref, BIT1 act, BIT2 spare -} - -type record of BSSMAP_FIELD_LSAIdAttrib BSSMAP_FIELD_LSAIdAttrib_List +} + +type record of BSSMAP_FIELD_LSAIdAttrib BSSMAP_FIELD_LSAIdAttrib_List // Layer 3 Information - 48.008 subclause 3.2.2.24 @@ -681,27 +681,27 @@ type record BSSMAP_IE_DLCI { OCT1 elementIdentifier, // '18'O - BIT3 sapiValue, // '011'O Short Message Signalling Service + BIT3 sapiValue, // '011'O Short Message Signalling Service BIT3 spare, BIT1 c1, - BIT1 c2 + BIT1 c2 } -// Downlink DTX Flag - 48.008 subclause 3.2.2.26 +// Downlink DTX Flag - 48.008 subclause 3.2.2.26 type record BSSMAP_IE_DownLinkDTXFlag { OCT1 elementIdentifier, // '19'O - BIT1 dtx, // DTX is disabled ('0'B) or enabled ('1'B) to downlink + BIT1 dtx, // DTX is disabled ('0'B) or enabled ('1'B) to downlink BIT7 spare1_7 // '0000000'B } with { variant "PRESENCE (elementIdentifier = '19'O)" } -// Cell Identifier List - 48.008 subclause 3.2.2.27 +// Cell Identifier List - 48.008 subclause 3.2.2.27 // See above under Cell Identifier -// Response Request - 48.008 subclause 3.2.2.28 +// Response Request - 48.008 subclause 3.2.2.28 type record BSSMAP_IE_ResponseRequest { OCT1 elementIdentifier // '1B'O @@ -717,33 +717,33 @@ } -// Classmark Information Type 1 - 48.008 subclause 3.2.2.30 +// Classmark Information Type 1 - 48.008 subclause 3.2.2.30 type record BSSMAP_IE_ClassmarkInformationType1 { OCT1 elementIdentifier, // '1D'O BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS) // '001'B class2 (for GSM+DCS+PCS) // '010'B class3 (for GSM+DCS+PCS) - // '011'class4 B (only for GSM) - // '100'class5 B (only for GSM) + // '011'class4 B (only for GSM) + // '100'class5 B (only for GSM) BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B) BIT1 esind, //controlled early classmark sending implemented (1) or not (0) BIT2 revisionLevel, BIT1 spare1_1 // '0'B } with { variant "PRESENCE(elementIdentifier = '1D'O)" } -// Circuit Identity Code List - 48.008 subclause 3.2.2.31 +// Circuit Identity Code List - 48.008 subclause 3.2.2.31 type record BSSMAP_IE_CircuitIdentityCodeList { OCT1 elementIdentifier, // '1E'O INT1 lengthIndicator, OCT1 range, // A number in binary representation ranging from 2 to 255 - OCTN status // status data of lengthIndicator 1_32 + OCTN status // status data of lengthIndicator 1_32 } with { variant "PRESENCE(elementIdentifier = '1E'O)" variant (lengthIndicator) "LENGTHTO (range, status)" } ; -// Diagnostics - 48.008 subclause 3.2.2.32 +// Diagnostics - 48.008 subclause 3.2.2.32 type record BSSMAP_IE_Diagnostics { OCT1 elementIdentifier, // '1F'O @@ -751,26 +751,26 @@ OCT1 errorLocation, // First octet of Error pointer BIT4 bitPointer, BIT4 spare, - OCTN messageReceived // The errorneous message -} with {variant (lengthIndicator) + OCTN messageReceived // The errorneous message +} with {variant (lengthIndicator) "LENGTHTO (errorLocation, bitPointer, spare, messageReceived)" } ; -// Chosen Channel - 48.008 subclause 3.2.2.33 +// Chosen Channel - 48.008 subclause 3.2.2.33 type record BSSMAP_IE_ChosenChannel { OCT1 elementIdentifier, // '21'O - BIT4 channel, - BIT4 channelMode + BIT4 channel, + BIT4 channelMode } with { variant "PRESENCE (elementIdentifier = '21'O)" } -// Cipher Response Mode - 48.008 subclause 3.2.2.34 +// Cipher Response Mode - 48.008 subclause 3.2.2.34 type record BSSMAP_IE_CipherResponseMode { OCT1 elementIdentifier, // '23'O BIT1 cipherResponseModeInfo,//IMEISV must be included by MS ('0') or not (1) - BIT7 spare1_7 // '0000000'B + BIT7 spare1_7 // '0000000'B } with { variant "PRESENCE (elementIdentifier = '23'O)" } @@ -784,50 +784,50 @@ variant (lengthIndicator) "LENGTHTO (layer3MsgConents)"} -// Channel Needed - 48.008 subclause 3.2.2.36 +// Channel Needed - 48.008 subclause 3.2.2.36 type record BSSMAP_IE_ChannelNeeded { OCT1 elementIdentifier, // '24'O BIT2 channel, //00:any, 01:SDCCH, 10:Full TCH, 11:Dual TCH - BIT6 spare + BIT6 spare } with { variant "PRESENCE (elementIdentifier = '24'O)" } -// Trace Type - 48.008 subclause 3.2.2.37 +// Trace Type - 48.008 subclause 3.2.2.37 type record BSSMAP_IE_TraceType { OCT1 elementIdentifier, // '25'O - BIT2 e,// Event Invoking + BIT2 e,// Event Invoking // '00'B: Mobile Originated Call, Mobile Call Terminated, // Short Message Service Mobile Originated, Short - // Message Service Mobile Terminated, Independent Call + // Message Service Mobile Terminated, Independent Call // Supplementary Services, Updates Location, - // IMSI attach, detach IMSI + // IMSI attach, detach IMSI // '01'B: Mobile Originated Call, Mobile Call Terminated, // Short Message Service Mobile Originated, Short - // Message Service Mobile Terminated, Independent Call + // Message Service Mobile Terminated, Independent Call // Supplementary Services only - // '10'B: Location Updates, IMSI attach, IMSI only detach - // '11'B: Operator definable - BIT2 d,// MSC Type Record - // '00'B: Basic - // '01'B: Detailed (Optional) - // '00'B: Spare - // '00'B: No Trace MSC - BIT2 c,// BSS Type Record - // '00'B: Basic + // '10'B: Location Updates, IMSI attach, IMSI only detach + // '11'B: Operator definable + BIT2 d,// MSC Type Record + // '00'B: Basic + // '01'B: Detailed (Optional) + // '00'B: Spare + // '00'B: No Trace MSC + BIT2 c,// BSS Type Record + // '00'B: Basic // '01'B: Handover // '00'B: Radio - // '00'B: No Trace BSS - BIT1 b,// For expansion future + // '00'B: No Trace BSS + BIT1 b,// For expansion future // Set to '0'B BIT1 a // Priority Indication - // '0'B: Priority No + // '0'B: Priority No // '1'B: Priority } -// Trigger ID - 48.008 subclause 3.2.2.38 +// Trigger ID - 48.008 subclause 3.2.2.38 type record BSSMAP_IE_TriggerId { OCT1 elementIdentifier, //'26'O @@ -841,12 +841,12 @@ type record BSSMAP_IE_TraceReference { OCT1 elementIdentifier, // '27'O - OCT1 msb_TraceReference, // the most significant bit of trace reference - OCT1 lsb_TraceReference // the least significant bit of trace reference + OCT1 msb_TraceReference, // the most significant bit of trace reference + OCT1 lsb_TraceReference // the least significant bit of trace reference } with { variant "PRESENCE (elementIdentifier = '27'O)" } -// Transaction ID - 48.008 subclause 3.2.2.40 +// Transaction ID - 48.008 subclause 3.2.2.40 type record BSSMAP_IE_TransactionId { OCT1 elementIdentifier, //'28'O @@ -856,41 +856,41 @@ variant (lengthIndicator) "LENGTHTO (transactionNumber)" } -// Mobil Identity - 48.008 subclause 3.2.2.41 -type record BSSMAP_IE_MobileIdentity +// Mobil Identity - 48.008 subclause 3.2.2.41 +type record BSSMAP_IE_MobileIdentity { OCT1 elementIdentifier, // '29'O - INT1 lengthIndicator, + INT1 lengthIndicator, BIT3 typeOfIdentity, - BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits + BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits HEX5_16 digits // if nr of digits is even, the last digit: '1111'B } with { variant "PRESENCE (elementIdentifier = '29'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)"; variant "PADDING(yes),PADDING_PATTERN('1'B)"} -// OMCID - 48.008 subclause 3.2.2.42 +// OMCID - 48.008 subclause 3.2.2.42 type record BSSMAP_IE_OMCId { OCT1 elementIdentifier, // '2A'O - INT1 lengthIndicator, - BIT4 numberingPlanind, // '0000'B unknown - // '0001'B ISDN/Telephony Numbering Plan (Rec CCITT E.164) - // '0011'B data numbering plan (CCITT Rec X.121) - // '0100'B telex numbering plan (CCITT Rec F.69) - // '0110'B land mobile numbering plan (CCITT Rec E.212) - // '1000'B national numbering plan + INT1 lengthIndicator, + BIT4 numberingPlanind, // '0000'B unknown + // '0001'B ISDN/Telephony Numbering Plan (Rec CCITT E.164) + // '0011'B data numbering plan (CCITT Rec X.121) + // '0100'B telex numbering plan (CCITT Rec F.69) + // '0110'B land mobile numbering plan (CCITT Rec E.212) + // '1000'B national numbering plan // '1001'B private numbering plan - // All other values are reserved - BIT3 natureOfAddress, // '000'B unknown + // All other values are reserved + BIT3 natureOfAddress, // '000'B unknown // '001'B international number - // '010'B national significant number + // '010'B national significant number // '011'B network specific number - // '100'B subscriber number + // '100'B subscriber number // '110'B abbreviated number - // All other values are reserved - BIT1 ext, + // All other values are reserved + BIT1 ext, OCTN digits// The digits are encoded TBCD (digit 0000 _ 1001 (0_9), // 1010 = '*', 1011 = '#', 1100 = 'A', 1101 = 'B', 1110 = 'C'). // If the number of identity digits is odd bits then bit 5-8 @@ -900,7 +900,7 @@ ext, digits)"} -// Forward Indicator - 48.008 subclause 3.2.2.43 +// Forward Indicator - 48.008 subclause 3.2.2.43 type record BSSMAP_IE_ForwardIndicator { OCT1 elementIdentifier, //'2B'O @@ -909,7 +909,7 @@ } with { variant "PRESENCE (elementIdentifier = '2B'O)" } -// Choosen Encryption Algorithm - 48.008 subclause 3.2.2.44 +// Choosen Encryption Algorithm - 48.008 subclause 3.2.2.44 type record BSSMAP_IE_ChosenEncryptionAlgorithm { OCT1 elementIdentifier, // '2C'O @@ -920,11 +920,11 @@ // '00000101'B A5/4 // '00000110'B A5/5 // '00000111'B A5/6 - // '00001000'B A5/7 + // '00001000'B A5/7 } with { variant "PRESENCE (elementIdentifier = '2C'O)" } -// Circuit Pool - 48.008 subclause 3.2.2.45 +// Circuit Pool - 48.008 subclause 3.2.2.45 type record BSSMAP_IE_CircuitPool { OCT1 elementIdentifier, // '2D'O @@ -932,7 +932,7 @@ } with { variant "PRESENCE (elementIdentifier = '2D'O)" } -// Circuit Pool List - 48.008 subclause 3.2.2.46 +// Circuit Pool List - 48.008 subclause 3.2.2.46 type record BSSMAP_IE_CircuitPoolList { OCT1 elementIdentifier, // '2E'O @@ -959,7 +959,7 @@ } with {variant "PRESENCE (elementIdentifier = '30'O)" variant (lengthIndicator) "LENGTHTO (resourceList)" } -type record of BSSMAP_FIELD_Resource +type record of BSSMAP_FIELD_Resource BSSMAP_FIELD_ResourceList type record BSSMAP_FIELD_Resource @@ -971,7 +971,7 @@ } with {variant (nrOfChannels) "EXTENSION_BIT(reverse)"} -// Current Channel Type 1 - 48.008 subclause 3.2.2.49 +// Current Channel Type 1 - 48.008 subclause 3.2.2.49 type record BSSMAP_IE_CurrentChannelType1 { OCT1 elementIdentifier, // '31'O @@ -988,7 +988,7 @@ BIT6 spare2 // '000000'B } with { variant "PRESENCE (elementIdentifier = '32'O)" } -// Speech Version - 48.008 subclause 3.2.2.51 +// Speech Version - 48.008 subclause 3.2.2.51 type record BSSMAP_IE_SpeechVersion { OCT1 elementIdentifier, // '40'O @@ -1002,7 +1002,7 @@ } with { variant "PRESENCE (elementIdentifier = '40'O)" } -// Assignment Requirement - 48.008 subclause 3.2.2.52 +// Assignment Requirement - 48.008 subclause 3.2.2.52 type record BSSMAP_IE_AssignmentRequirement { OCT1 elementIdentifier, // '33'O @@ -1017,7 +1017,7 @@ } with { variant "PRESENCE (elementIdentifier = '35'O)" } -// Group Call Reference - 48.008 subclause 3.2.2.55 +// Group Call Reference - 48.008 subclause 3.2.2.55 type record BSSMAP_IE_GroupCallReference { OCT1 elementIdentifier, // '37'O @@ -1031,13 +1031,13 @@ type record BSSMAP_IE_EMLPP_Priority { OCT1 elementIdentifier,// '38'O - BIT3 callPriority, // '000'B no priority applied + BIT3 callPriority, // '000'B no priority applied // '001'B call priority level 4 - // '010'B call priority 3 level + // '010'B call priority 3 level // '011'B call priority level 2 - // '100'B call priority 1 level + // '100'B call priority 1 level // '101'B call priority level 0 - // '110'B call priority B level + // '110'B call priority B level // '111'B call priority level A BIT5 spare1_5 // '00000'B } with { variant "PRESENCE (elementIdentifier = '38'O)" } @@ -1073,21 +1073,21 @@ BIT1 vCI, //Vertical Coordinate Indicator: VC requested ('1'B) or not ('0'B) BIT1 vEL, // report velocity if available (1) or not(0) BIT6 spare_1_6, // '0000000'B - BIT7 horizontalAccuracy, // Accuracy Horizontal (HA) + BIT7 horizontalAccuracy, // Accuracy Horizontal (HA) BIT1 hAI, // Horizontal Accuracy Indicator HA is specified (1) or not (0) - BIT7 verticalAccuracy, // Accuracy Vertical (VA) + BIT7 verticalAccuracy, // Accuracy Vertical (VA) BIT1 vAI, // Vertical Accuracy Indicator VA is specified (1) or not (0) BIT6 spare_2_6, // '000000'B BIT2 rTC // '00'B Response Time is not specified - // '01'B delay Low + // '01'B delay Low // '10'B Delay tolerant - // '11'B Reserved + // '11'B Reserved } with { variant "PRESENCE (elementIdentifier = '3E'O)" variant (lengthIndicator) "LENGTHTO (vCI, vEL, spare_1_6, horizontalAccuracy, hAI, verticalAccuracy, vAI, spare_2_6, rTC)"} -// LSA Access Control Suppression - 48.008 subclause 3.2.2.61 +// LSA Access Control Suppression - 48.008 subclause 3.2.2.61 type record BSSMAP_IE_LSAAccessControlSuppression { OCT1 elementIdentifier, //'3F'O @@ -1096,54 +1096,54 @@ } with { variant "PRESENCE (elementIdentifier = '3F'O)" } -// LCS Priority - 48.008 subclause 3.2.2.62 +// LCS Priority - 48.008 subclause 3.2.2.62 type record BSSMAP_IE_LCSPriority { OCT1 elementIdentifier,// '43'O - INT1 lengthIndicator, + INT1 lengthIndicator, OCT1 priority // see "another FS" TS 29.002 for more detail } with { variant "PRESENCE (elementIdentifier = '43'O)" variant (lengthIndicator) "LENGTHTO (priority)"} -// Location Type - 48.008 subclause 3.2.2.63 +// Location Type - 48.008 subclause 3.2.2.63 type record BSSMAP_IE_LocationType { OCT1 elementIdentifier, // '44'O - INT1 lengthIndicator, // 1 or 2 - OCT1 locationInformation,// '00000000'B current location geographic + INT1 lengthIndicator, // 1 or 2 + OCT1 locationInformation,// '00000000'B current location geographic // '00000001'B loc assistance info for target MS // '00000010'B deciphering keys for broadcast - // assistance data for MS target + // assistance data for MS target // all other values are reserved OCT1 positioningMethod optional // '00000000'B reserved - // '00000001'B Mobile E_OTD Assisted + // '00000001'B Mobile E_OTD Assisted // '00000010'B Mobile Based E_OTD - // '00000011'B GPS Assisted + // '00000011'B GPS Assisted // all other values are reserved } with {variant (lengthIndicator) "LENGTHTO (locationInformation, positioningMethod)"} -// Location Estimate - 48.008 subclause 3.2.2.64 +// Location Estimate - 48.008 subclause 3.2.2.64 type record BSSMAP_IE_LocationEstimate { OCT1 elementIdentifier, // '45'O - INT1 lengthIndicator, // 1_22 on A_interface, 1_93 E_interface on - OCTN geographicLocation + INT1 lengthIndicator, // 1_22 on A_interface, 1_93 E_interface on + OCTN geographicLocation } with { variant "PRESENCE (elementIdentifier = '45'O)" variant (lengthIndicator) "LENGTHTO (geographicLocation)"} -// Positioning Data - 48.008 subclause 3.2.2.65 +// Positioning Data - 48.008 subclause 3.2.2.65 type record BSSMAP_IE_PositioningData { OCT1 elementIdentifier, // '46'O - INT1 lengthIndicator, // 2_11 - BIT4 positioningDataDescriminator, // '0000'B indicates usage of each + INT1 lengthIndicator, // 2_11 + BIT4 positioningDataDescriminator, // '0000'B indicates usage of each // positioning data method, // that was attempted - // all other values reserved are + // all other values reserved are BIT4 spare_1_4, // '0000'B BSSMAP_FIELD_PositioningMethods positioningMethod // of lengthIndicator 1_10 } with { variant "PRESENCE (elementIdentifier = '46'O)" @@ -1151,45 +1151,45 @@ type record BSSMAP_FIELD_PositioningMethod { - BIT3 usage, // '000'B unsuccesful attempt due to failure or interruption + BIT3 usage, // '000'B unsuccesful attempt due to failure or interruption // '001'B succesful attempt, results not used to generate location // '010'B succesful attempt, results used to verify but not generate location // '011'B succesful attempt, results used to generate location // '100'B succesful attempt, MS supports multiple based positioning methods BIT5 positioningMethod // '00000'B Timing Advance // '00001'B TOA - // '00010'B AOA + // '00010'B AOA // '00011'B Mobile EOTD Assisted // '00100'B Mobile Based E_OTD // '00101'B Mobile GPS Assisted // '00110'B Mobile Based GPS // '00111'B GPS Conventional - // '01000'B _ '01111'B reserved for GSM + // '01000'B _ '01111'B reserved for GSM // '10000'B _ '11111'B reserved for network // specific positioning methods } -type record of BSSMAP_FIELD_PositioningMethod BSSMAP_FIELD_PositioningMethods +type record of BSSMAP_FIELD_PositioningMethod BSSMAP_FIELD_PositioningMethods -// LCS Cause - 48.008 subclause 3.2.2.66 +// LCS Cause - 48.008 subclause 3.2.2.66 type record BSSMAP_IE_LCSCause { OCT1 elementIdentifier, // '47'O - INT1 lengthIndicator, // 1 (_> diagnosticValue invalid) 2 or - BIT8 causeValue, // '00000000'BUnspecified + INT1 lengthIndicator, // 1 (_> diagnosticValue invalid) 2 or + BIT8 causeValue, // '00000000'BUnspecified // '00000001'B System Failure - // '00000010'B Error Protocol + // '00000010'B Error Protocol // '00000011'B Data missing in position request // '00000100'B unexpected data value in request position // '00000101'B Position method failure - // '00000110'B Target unreachable MS + // '00000110'B Target unreachable MS // '00000111'B Location request aborted - // '00001000'B Facility supported not + // '00001000'B Facility supported not // '00001001'B intra_BSC_HO ongoing - // '00001010'B complete intra_BSC_HO + // '00001010'B complete intra_BSC_HO // '00001011'B congestion - // all other values reserved are + // all other values reserved are OCT1 diagnosticValue optional } with { variant "PRESENCE (elementIdentifier = '47'O)" variant (lengthIndicator) "LENGTHTO (causeValue, diagnosticValue)"} @@ -1199,19 +1199,19 @@ type record BSSMAP_IE_LCSClientType { OCT1 elementIdentifier, // '48'O - INT1 lengthIndicator, // 1 + INT1 lengthIndicator, // 1 BIT4 subtype, // all values unspecified/reserved except for: // category = PLMN Operator: // '0000'B Unspecified // '0001'B Boradcast Service // '0010'B O&M - // '0011'B Statistics Anonymous + // '0011'B Statistics Anonymous // '0100'B Target MS Service Support - // all other values reserved are + // all other values reserved are BIT4 category // '0000'B Value added client - // '0010'B Operator PLMN + // '0010'B Operator PLMN // '0011'B Emergency Services - // '0100'B Lawful Services Intercept + // '0100'B Lawful Services Intercept // all other values are reserved } with { variant "PRESENCE (elementIdentifier = '48'O)" variant (lengthIndicator) "LENGTHTO (subtype, category)"} @@ -1222,42 +1222,42 @@ { OCT1 elementIdentifier, //'49'O LIN2_BO_LAST lengthIndicator, - BIT7 protocolID optional, // '0000000'reserved B - // '0000001'BSSLAP B (the only currently supported) - // '0000010'LLP B + BIT7 protocolID optional, // '0000000'reserved B + // '0000001'BSSLAP B (the only currently supported) + // '0000010'LLP B // '0000011'B SMLCPP - BIT1 spare_1_1 optional, // '0'B + BIT1 spare_1_1 optional, // '0'B octetstring embeddedMessage optional // of length: 5_25 } with { variant "PRESENCE (elementIdentifier = '49'O)" variant (lengthIndicator) "LENGTHTO (protocolID,spare_1_1,embeddedMessage)"} -// Network Element Identity - 48.008 subclause 3.2.2.69 +// Network Element Identity - 48.008 subclause 3.2.2.69 type record BSSMAP_IE_NetworkElementIdentity { OCT1 elementIdentifier, //'4A'O INT1 lengthIndicator, BIT4 iDDiscriminator, BIT4 spare, - OCTN networkElementIdentity // Network Element Identity + OCTN networkElementIdentity // Network Element Identity } with {variant (lengthIndicator) "LENGTHTO (iDDiscriminator,spare,networkElementIdentity)"} -// GPS Assistant Data - 48.008 subclause 3.2.2.70 +// GPS Assistant Data - 48.008 subclause 3.2.2.70 type record BSSMAP_IE_GPSAssistanceData { OCT1 elementIdentifier, //'4B'O INT1 lengthIndicator, // 1_38 OCT1 a_to_h, OCT1 i_to_p, - OCTN satellite_related_data // Satellite related data + OCTN satellite_related_data // Satellite related data } with { variant "PRESENCE (elementIdentifier = '4B'O)" variant (lengthIndicator) "LENGTHTO (satellite_related_data,a_to_h,i_to_p)"} -// Deciphering Key - 48.008 subclause 3.2.2.71 +// Deciphering Key - 48.008 subclause 3.2.2.71 type record BSSMAP_IE_DecipheringKeys { OCT1 elementIdentifier, // '4C'O @@ -1266,31 +1266,31 @@ BIT56 currentdecipheringKeyValue, BIT56 nextdecipheringKeyValue optional } with { variant "PRESENCE (elementIdentifier = '4C'O)" - variant (lengthIndicator) "LENGTHTO (cipheringKeyFlag, + variant (lengthIndicator) "LENGTHTO (cipheringKeyFlag, currentdecipheringKeyValue, nextdecipheringKeyValue)"} -// Return Error Request - 48.008 subclause 3.2.2.72 +// Return Error Request - 48.008 subclause 3.2.2.72 type record BSSMAP_IE_ReturnErrorRequest { OCT1 elementIdentifier, //'4D'O INT1 lengthIndicator, - OCT1 returnErrorType // Return Error Request + OCT1 returnErrorType // Return Error Request } with { variant "PRESENCE (elementIdentifier = '4D'O)" variant (lengthIndicator) "LENGTHTO (returnErrorType)"} -// Return Error Cause - 48.008 subclause 3.2.2.73 +// Return Error Cause - 48.008 subclause 3.2.2.73 type record BSSMAP_IE_ReturnErrorCause { OCT1 elementIdentifier, //'4E'O INT1 lengthIndicator, - OCT1 returnErrorCause // Return Error Cause + OCT1 returnErrorCause // Return Error Cause } with { variant "PRESENCE (elementIdentifier = '4E'O)" variant (lengthIndicator) "LENGTHTO (returnErrorCause)"} -// Segmentation - 48.008 subclause 3.2.2.74 +// Segmentation - 48.008 subclause 3.2.2.74 type record BSSMAP_IE_Segmentation { OCT1 elementIdentifier, //'4F'O @@ -1304,11 +1304,11 @@ "LENGTHTO (segmentationNumber,segmentationBit,spare,messageID)"} -// Service Handover - 48.008 subclause 3.2.2.75 +// Service Handover - 48.008 subclause 3.2.2.75 type record BSSMAP_IE_ServiceHandover { OCT1 elementIdentifier, //'50'O - INT1 lengthIndicator, + INT1 lengthIndicator, BIT3 serviceHandoverInfo, BIT5 spare } with { variant "PRESENCE (elementIdentifier = '50'O)" @@ -1324,7 +1324,7 @@ } with { variant (lengthIndicator) "LENGTHTO (informationcontainer)" } -// GERAN Classmark - 48.008 subclause 3.2.2.78 +// GERAN Classmark - 48.008 subclause 3.2.2.78 type record BSSMAP_IE_GERANClassmark { OCT1 elementIdentifier, //'53'O @@ -1342,11 +1342,11 @@ OCT1 codecType, BIT3 maxNrofTCH, BIT5 allowedRadioIFRates -} with {variant (lengthIndicator) +} with {variant (lengthIndicator) "LENGTHTO (codecType, maxNrofTCH, allowedRadioIFRates)" } -// New BSS to Old BSS Information - 48.008 subclause 3.2.2.80 +// New BSS to Old BSS Information - 48.008 subclause 3.2.2.80 type record BSSMAP_IE_NewBSSToOldBSSInfo { OCT1 elementIdentifier, //'61'O @@ -1356,7 +1356,7 @@ variant (lengthIndicator) "LENGTHTO (newBSSToOldBSSIE)" } -// Inter-System Information - 48.008 subclause 3.2.2.81 +// Inter-System Information - 48.008 subclause 3.2.2.81 type record BSSMAP_IE_InterSystemInfo { OCT1 elementIdentifier, //'63'O @@ -1366,7 +1366,7 @@ variant (lengthIndicator) "LENGTHTO (interSystemInfoTranspCont)" } -// SNA Access Information - 48.008 subclause 3.2.2.82 +// SNA Access Information - 48.008 subclause 3.2.2.82 type record BSSMAP_IE_SNAAccessInfo { OCT1 elementIdentifier, //'64'O @@ -1380,7 +1380,7 @@ type record AuthorisedPLMN { INT1 lengthIndicator, - OCT3 mcc_mnc, + OCT3 mcc_mnc, RecordOfOCT2 authorisedSNA optional } with { variant (lengthIndicator) "LENGTHTO (mcc_mnc,authorisedSNA)" } @@ -1397,7 +1397,7 @@ BIT4 spare, BIT4 VSTK_RAND_5 } with { variant "PRESENCE (elementIdentifier = '65'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (VSTK_RAND_1, VSTK_RAND_2, VSTK_RAND_3, VSTK_RAND_4, spare, VSTK_RAND_5)"} @@ -1417,10 +1417,10 @@ OCT1 elementIdentifier, // '67' INT1 lengthIndicator, BIT1 VGCS_or_VBS, // 0: not a member of any VGCS/VBS-group - BIT2 pagingCause, + BIT2 pagingCause, BIT5 spare } with { variant "PRESENCE (elementIdentifier = '67'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (VGCS_or_VBS, pagingCause, spare)"} @@ -1430,10 +1430,10 @@ OCT1 elementIdentifier, // '68' INT1 lengthIndicator, BIT3 typeOfIdentity, - BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits + BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits HEX5_16 digits // if nr of digits is even, the last digit: '1111'B } with { variant "PRESENCE (elementIdentifier = '68'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)"; variant "PADDING(yes),PADDING_PATTERN('1'B)"} @@ -1465,7 +1465,7 @@ "LENGTHTO (TP_Ind, AS_Ind, BSS_Res, tCP, spare)"} -// Talker Priority - 48.008 subclause 3.2.2.89 +// Talker Priority - 48.008 subclause 3.2.2.89 type record BSSMAP_IE_TalkerPriority { OCT1 elementIdentifier, // '6A'O @@ -1494,7 +1494,7 @@ BIT5 spare, OCT17 talkerIdentity } with { variant "PRESENCE (elementIdentifier = '6C'O)" - variant (lengthIndicator) + variant (lengthIndicator) "LENGTHTO (fillerBits, spare, talkerIdentity)"} @@ -1506,7 +1506,7 @@ OCT1 elementIdentifier, // '6E' INT1 lengthIndicator, OCT248 SMS -} with {variant (lengthIndicator) +} with {variant (lengthIndicator) "LENGTHTO (SMS)"} @@ -1520,7 +1520,7 @@ BIT2 RR_mode // 0 0: dedicated mode (i.e. dedicated channel) // 0 1: group transmit mode (i.e. voice group channel) // Other values are reserved for future use. -} with {variant (lengthIndicator) +} with {variant (lengthIndicator) "LENGTHTO (spare, groupCipherKeyNumber, RR_mode)"} @@ -1529,30 +1529,30 @@ { OCT1 elementIdentifier, // '70' INT1 lengthIndicator, - BIT3 status, + BIT3 status, BIT5 spare } with { variant "PRESENCE (elementIdentifier = '70'O)" variant (lengthIndicator) "LENGTHTO (status, spare)"} - - -// 3.2.2.95 GANSS Assistance Data -type record BSSMAP_IE_GANSS_AssistanceData -{ - OCT1 elementIdentifier, //'75' - INT1 lengthIndicator, - OCTN gANSS_AssistanceDataInfo // 49.031 Section 10.31 -} with { variant "PRESENCE (elementIdentifier = '75'O)" - variant (lengthIndicator) "LENGTHTO (gANSS_AssistanceDataInfo)"} - -// 3.2.2.96 GANSS Positioning Data -type record BSSMAP_IE_GANSS_PositioningData -{ - OCT1 elementIdentifier, // '76' + +// 3.2.2.95 GANSS Assistance Data +type record BSSMAP_IE_GANSS_AssistanceData +{ + OCT1 elementIdentifier, //'75' INT1 lengthIndicator, - GANSS_PositioningData gANSS_PositioningDataInfo + OCTN gANSS_AssistanceDataInfo // 49.031 Section 10.31 +} with { variant "PRESENCE (elementIdentifier = '75'O)" + variant (lengthIndicator) "LENGTHTO (gANSS_AssistanceDataInfo)"} + + +// 3.2.2.96 GANSS Positioning Data +type record BSSMAP_IE_GANSS_PositioningData +{ + OCT1 elementIdentifier, // '76' + INT1 lengthIndicator, + GANSS_PositioningData gANSS_PositioningDataInfo } with { variant "PRESENCE (elementIdentifier = '76'O)" - variant (lengthIndicator) "LENGTHTO (gANSS_PositioningDataInfo)"} + variant (lengthIndicator) "LENGTHTO (gANSS_PositioningDataInfo)"} type record GANSS_PositioningData // 49.031 Section 10.32 { @@ -1569,7 +1569,7 @@ INT1 lengthIndicator, GANSS_LocationType gANSS_LocationTypeInfo } with { variant "PRESENCE (elementIdentifier = '77'O)" - variant (lengthIndicator) "LENGTHTO (gANSS_LocationTypeInfo)"} + variant (lengthIndicator) "LENGTHTO (gANSS_LocationTypeInfo)"} type record GANSS_LocationType // 49.031 Section 10.33 { @@ -1582,31 +1582,31 @@ } -// 3.2.2.98 Application data +// 3.2.2.98 Application data type record BSSMAP_IE_ApplicationData { OCT1 elementIdentifier, // '78' INT1 lengthIndicator, OCT9 applicationDataInfo // "implementation-specific" according to 44.018 v8.7.0 Section 10.5.2.72 } with { variant "PRESENCE (elementIdentifier = '78'O)" - variant (lengthIndicator) "LENGTHTO (applicationDataInfo)"} + variant (lengthIndicator) "LENGTHTO (applicationDataInfo)"} // 3.2.2.99 Data Identity type record BSSMAP_IE_DataIdentity { - OCT1 elementIdentifier, // '79' - INT1 lengthIndicator, + OCT1 elementIdentifier, // '79' + INT1 lengthIndicator, DataIdentity dataIdentityInfo } with { variant "PRESENCE (elementIdentifier = '79'O)" - variant (lengthIndicator) "LENGTHTO (dataIdentityInfo)"} + variant (lengthIndicator) "LENGTHTO (dataIdentityInfo)"} - -type record DataIdentity // 44.018 v8.7.0 Section 10.5.2.73 + +type record DataIdentity // 44.018 v8.7.0 Section 10.5.2.73 { BIT1 aI, BIT4 dI, - BIT3 dP + BIT3 dP } @@ -1618,7 +1618,7 @@ BIT1 bT_Ind, BIT7 spare } with { variant "PRESENCE (elementIdentifier = '7A'O)" - variant (lengthIndicator) "LENGTHTO (bT_Ind, spare)"} + variant (lengthIndicator) "LENGTHTO (bT_Ind, spare)"} // 3.2.2.101 MSISDN @@ -1626,11 +1626,11 @@ { OCT1 elementIdentifier, // '7B' INT1 lengthIndicator, - octetstring msisdn + octetstring msisdn } with { variant "PRESENCE (elementIdentifier = '7B'O)" - variant (lengthIndicator) "LENGTHTO (msisdn)"} - - + variant (lengthIndicator) "LENGTHTO (msisdn)"} + + // 3.2.2.102 AoIP Transport Layer Address type record BSSMAP_IE_AoIP_TransportLayerAddress { @@ -1638,7 +1638,7 @@ INT1 lengthIndicator, BSSMAP_FIELD_IPAddress ipAddress, LIN2_BO_LAST uDPPortValue -} with { +} with { variant "PRESENCE (elementIdentifier = '7C'O)"; variant (lengthIndicator) "LENGTHTO (ipAddress, uDPPortValue)"; variant (ipAddress) "CROSSTAG(ipv4,lengthIndicator = 6; @@ -1674,16 +1674,16 @@ OCT1 extendedCodecType optional, BIT8 s0_7 optional, BIT8 s8_15 optional -} with { +} with { variant (extendedCodecType) "PRESENCE (codecType = CodecExtension)"; - variant (s0_7) "PRESENCE (codecType = FR_AMR, + variant (s0_7) "PRESENCE (codecType = FR_AMR, codecType = HR_AMR, codecType = FR_AMR_WB, codecType = OHR_AMR, codecType = OFR_AMR_WB, codecType = OHR_AMR_WB, extendedCodecType = 'FD'O)"; - variant (s8_15) "PRESENCE (codecType = FR_AMR, + variant (s8_15) "PRESENCE (codecType = FR_AMR, codecType = HR_AMR, codecType = OHR_AMR)"; } @@ -1725,7 +1725,7 @@ { OCT1 elementIdentifier, // '80' INT1 lengthIndicator, - OCT4List callIdentifierListInfo length (1..62) + OCT4List callIdentifierListInfo length (1..62) } with { variant "PRESENCE (elementIdentifier = '80'O)"; variant (lengthIndicator) "LENGTHTO (callIdentifierListInfo)"} @@ -1736,14 +1736,14 @@ BIT1 rTD, BIT1 rIP, BIT6 spare -} with { variant "PRESENCE (elementIdentifier = '81'O)";} +} with { variant "PRESENCE (elementIdentifier = '81'O)";} //3.2.2.109 KC128 type record BSSMAP_IE_KC128 { OCT1 elementIdentifier, // '83' - OCT16 kC128_Value + OCT16 kC128_Value } with { variant "PRESENCE (elementIdentifier = '83'O)";} @@ -1771,7 +1771,7 @@ type record BSSMAP_IE_RerouteRejectCause { OCT1 elementIdentifier, //86 - OCT1 rerouteRejectCauseValue + OCT1 rerouteRejectCauseValue } with { variant "PRESENCE (elementIdentifier = '86'O)";} @@ -1805,15 +1805,15 @@ type record GlobalCallReferenceValue { INT1 networkIDLengthIndicator, - octetstring networkID length (3..5), - INT1 nodeIDLengthIndicator, + octetstring networkID length (3..5), + INT1 nodeIDLengthIndicator, OCT2 nodeID, - INT1 callReferenceIDLengthIndicator, - OCT5 callReferenceID -} with { + INT1 callReferenceIDLengthIndicator, + OCT5 callReferenceID +} with { variant (networkIDLengthIndicator) "LENGTHTO (networkID)" - variant (nodeIDLengthIndicator) "LENGTHTO (nodeID)" - variant (callReferenceIDLengthIndicator) "LENGTHTO (callReferenceID )" + variant (nodeIDLengthIndicator) "LENGTHTO (nodeID)" + variant (callReferenceIDLengthIndicator) "LENGTHTO (callReferenceID )" } @@ -1821,7 +1821,7 @@ type record BSSMAP_IE_LCLS_Configuration { OCT1 elementIdentifier, //8A - BIT4 lCLS_ConfigurationValue, + BIT4 lCLS_ConfigurationValue, BIT4 spare } with { variant "PRESENCE (elementIdentifier = '8A'O)";} @@ -1835,8 +1835,8 @@ } with { variant "PRESENCE (elementIdentifier = '8B'O)";} -//3.2.2.118 LCLS Correlation Not Needed -type record BSSMAP_IE_LCLS_CorrelationNotNeeded +//3.2.2.118 LCLS Correlation Not Needed +type record BSSMAP_IE_LCLS_CorrelationNotNeeded { OCT1 elementIdentifier //8C } with { variant "PRESENCE (elementIdentifier = '8C'O)";} @@ -1847,7 +1847,7 @@ { OCT1 elementIdentifier, //8D BIT4 lCLS_BSS_StatusValue, - BIT4 spare + BIT4 spare } with { variant "PRESENCE (elementIdentifier = '8D'O)";} @@ -1867,7 +1867,7 @@ /////////////////////////////////////////////////////// // Used in HANDOVER REQUEST message -type union BSSMAP_IE_ClassmarkInformationType +type union BSSMAP_IE_ClassmarkInformationType { BSSMAP_IE_ClassmarkInformationType1 classmarkInformationType1, BSSMAP_IE_ClassmarkInformationType2 classmarkInformationType2 @@ -1878,7 +1878,7 @@ // BSSMAP message definition /////////////////////////////////////////// -// ASSIGNMENT REQUEST - 48.008 subclause 3.2.1.1 +// ASSIGNMENT REQUEST - 48.008 subclause 3.2.1.1 type record PDU_BSSMAP_AssignmentRequest { OCT1 messageType, // '01'O @@ -1907,7 +1907,7 @@ } with { variant "PRESENCE (messageType = '01'O)" } -// ASSIGNMENT COMPLETE - 48.008 subclause 3.2.1.2 +// ASSIGNMENT COMPLETE - 48.008 subclause 3.2.1.2 type record PDU_BSSMAP_AssignmentComplete { OCT1 messageType, // '02'O @@ -1938,11 +1938,11 @@ BSSMAP_IE_SpeechCodecList codecList optional } with { variant "PRESENCE (messageType = '03'O)" } -// BLOCK - 48.008 subclause 3.2.1.4 +// BLOCK - 48.008 subclause 3.2.1.4 type record PDU_BSSMAP_Block { OCT1 messageType, // H'40 - BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, BSSMAP_IE_Cause cause, BSSMAP_IE_ConnectionReleaseRequested connectionReleaseRequested optional } with { variant "PRESENCE (messageType = '40'O)" } @@ -1952,7 +1952,7 @@ type record PDU_BSSMAP_BlockingAck { OCT1 messageType, // H'41 - BSSMAP_IE_CircuitIdentityCode circuitIdentityCode + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode } with { variant "PRESENCE (messageType = '41'O)" } @@ -2004,18 +2004,18 @@ BSSMAP_IE_TalkerPriority talkerPriority optional, BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, BSSMAP_IE_SpeechCodecList codecList optional, - BSSMAP_IE_CallIdentifier callIdentifier optional, + BSSMAP_IE_CallIdentifier callIdentifier optional, BSSMAP_IE_KC128 kC128 optional, BSSMAP_IE_GlobalCallReference globalCallReference optional, BSSMAP_IE_LCLS_Configuration lCLS_Configuration optional, - BSSMAP_IE_LCLS_ConnectionStatusControl connectionStatusControl optional + BSSMAP_IE_LCLS_ConnectionStatusControl connectionStatusControl optional } with { variant "PRESENCE (messageType = '10'O)" variant "TAG ( sourceToTargetRNCTransparentInfo, elementIdentifier = '51'O; sourceToTargetRNCTransparentInfoCDMA, elementIdentifier = '52'O)"} -// HANDOVER REQUIRED - 48.008 subclause 3.2.1.9 +// HANDOVER REQUIRED - 48.008 subclause 3.2.1.9 type record PDU_BSSMAP_HandoverRequired { OCT1 messageType, // '11'O @@ -2124,7 +2124,7 @@ BSSMAP_IE_NewBSSToOldBSSInfo newBSSToOldBSSInfo optional, BSSMAP_IE_InterSystemInfo interSystemInformation optional, BSSMAP_IE_TalkerPriority talkerPriority optional, - BSSMAP_IE_SpeechCodecList codecList optional + BSSMAP_IE_SpeechCodecList codecList optional } with { variant "PRESENCE (messageType = '16'O)" } @@ -2162,11 +2162,11 @@ } with { variant "PRESENCE (messageType = '52'O)" } -// CLEAR REQUEST - 48.008 subclause 3.2.1.20 +// CLEAR REQUEST - 48.008 subclause 3.2.1.20 type record PDU_BSSMAP_ClearRequest { OCT1 messageType, // H'22 - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '22'O)" } @@ -2233,7 +2233,7 @@ type record PDU_BSSMAP_MSCInvokeTrace { OCT1 messageType, // H'36 - BSSMAP_IE_TraceType traceType, + BSSMAP_IE_TraceType traceType, BSSMAP_IE_TriggerId triggerId optional, BSSMAP_IE_TraceReference traceReference, BSSMAP_IE_TransactionId transactionId optional, @@ -2246,7 +2246,7 @@ type record PDU_BSSMAP_BSSInvokeTrace { OCT1 messageType, // H'37 - BSSMAP_IE_TraceType traceType, + BSSMAP_IE_TraceType traceType, BSSMAP_IE_ForwardIndicator forwardIndicator optional, BSSMAP_IE_TriggerId triggerId optional, BSSMAP_IE_TraceReference traceReference, @@ -2264,18 +2264,18 @@ BSSMAP_IE_TalkerPriority talkerPriority optional } with { variant "PRESENCE (messageType = '54'O)" } -// CIPHER MODE COMMAND - 48.008 subclause 3.2.1.30 +// CIPHER MODE COMMAND - 48.008 subclause 3.2.1.30 type record PDU_BSSMAP_CipherModeCommand { OCT1 messageType, // '53'O BSSMAP_IE_Layer3HeaderInfo layer3HeaderInfo optional, BSSMAP_IE_EncryptionInformation encryptionInformation, BSSMAP_IE_CipherResponseMode cipherResponseMode optional, - BSSMAP_IE_KC128 kC128 optional + BSSMAP_IE_KC128 kC128 optional } with { variant "PRESENCE (messageType = '53'O)" } -// CIPHER MODE COMPLETE - 48.008 subclause 3.2.1.31 +// CIPHER MODE COMPLETE - 48.008 subclause 3.2.1.31 type record PDU_BSSMAP_CipherModeComplete { OCT1 messageType, // '55'O @@ -2312,7 +2312,7 @@ { OCT1 messageType, // H'25 BSSMAP_IE_DLCI dLCI, - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '25'O)" } @@ -2330,7 +2330,7 @@ { OCT1 messageType, // H'34 BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '34'O)" } @@ -2338,7 +2338,7 @@ type record PDU_BSSMAP_ResetCircuitAck { OCT1 messageType, // H'35 - BSSMAP_IE_CircuitIdentityCode circuitIdentityCode + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode } with { variant "PRESENCE (messageType = '35'O)" } @@ -2350,31 +2350,31 @@ } with { variant "PRESENCE (messageType = '1B'O)" } -// CIRCUIT GROUP BLOCK - 48.008 subclause 3.2.1.41 +// CIRCUIT GROUP BLOCK - 48.008 subclause 3.2.1.41 type record PDU_BSSMAP_CircuitGroupBlock { OCT1 messageType, // H'44 BSSMAP_IE_Cause cause, BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, - BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList } with { variant "PRESENCE (messageType = '44'O)" } -// CIRCUIT GROUP BLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.42 +// CIRCUIT GROUP BLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.42 type record PDU_BSSMAP_CircuitGroupBlockingAck { OCT1 messageType, // H'45 BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, - BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList } with { variant "PRESENCE (messageType = '45'O)" } -// CIRCUIT GROUP UNBLOCK - 48.008 subclause 3.2.1.43 +// CIRCUIT GROUP UNBLOCK - 48.008 subclause 3.2.1.43 type record PDU_BSSMAP_CircuitGroupUnblock { OCT1 messageType, // H'46 BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, - BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList } with { variant "PRESENCE (messageType = '46'O)" } @@ -2383,7 +2383,7 @@ { OCT1 messageType, // H'47 BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, - BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList } with { variant "PRESENCE (messageType = '47'O)" } @@ -2412,11 +2412,11 @@ } with { variant "PRESENCE (messageType = '48'O)" } -// CIPHER MODE REJECT - 48.008 subclause 3.2.1.48 +// CIPHER MODE REJECT - 48.008 subclause 3.2.1.48 type record PDU_BSSMAP_CipherModeReject { OCT1 messageType, // H'59 - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '59'O)" } @@ -2428,7 +2428,7 @@ BSSMAP_IE_CellIdentifier cellIdentifier, BSSMAP_IE_CellIdentifierList cellIdentifierList, BSSMAP_IE_ResourceSituation resourceSitation optional, - BSSMAP_IE_Cause cause optional + BSSMAP_IE_Cause cause optional } with { variant "PRESENCE (messageType = '5A'O)" } @@ -2453,7 +2453,7 @@ type record PDU_BSSMAP_VGCS_VBSSetupRefuse { OCT1 messageType, // H'06 - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '06'O)" } @@ -2538,8 +2538,8 @@ // UPLINK APPLICATION DATA - 48.008 subclause 3.2.1.59a type record PDU_BSSMAP_UplinkApplicationData { - OCT1 messageType, - BSSMAP_IE_CellIdentifier cellIdentifier, + OCT1 messageType, + BSSMAP_IE_CellIdentifier cellIdentifier, BSSMAP_IE_Layer3Information layer3Information, BSSMAP_IE_ApplicationDataInformation applicationDataInformation } with { variant "PRESENCE (messageType = '63'O)" } @@ -2569,7 +2569,7 @@ type record PDU_BSSMAP_UplinkReleaseCommand { OCT1 messageType, // H'4C - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '4C'O)" } @@ -2605,7 +2605,7 @@ type record PDU_BSSMAP_ChangeCircuit { OCT1 messageType, // H'4E - BSSMAP_IE_Cause cause + BSSMAP_IE_Cause cause } with { variant "PRESENCE (messageType = '4E'O)" } @@ -2613,7 +2613,7 @@ type record PDU_BSSMAP_ChangeCircuitAck { OCT1 messageType, // H'4F - BSSMAP_IE_CircuitIdentityCode circuitIdentity + BSSMAP_IE_CircuitIdentityCode circuitIdentity } with { variant "PRESENCE (messageType = '4F'O)" } @@ -2731,9 +2731,9 @@ // 3.2.1.80 VGCS/VBS ASSIGNMENT STATUS type record PDU_BSSMAP_VGCS_VBS_AssignmentStatus { - OCT1 messageType, // '3B'O + OCT1 messageType, // '3B'O BSSMAP_IE_CellIdentifierListSegmentEstCells cellIdentifierListForEstablishedCells optional, - BSSMAP_IE_CellIdentifierListSegmentCellsToEst cellIdentifierListForCellsToEstablish optional, + BSSMAP_IE_CellIdentifierListSegmentCellsToEst cellIdentifierListForCellsToEstablish optional, BSSMAP_IE_CellIdentifierListSegmentReleasedCellsNoUserPresent cellIdentifierListSegmentReleasedCellsNoUserPresent optional, BSSMAP_IE_CellIdentifierListSegmentNotEstablishedCellsNoEstPossible cellIdentifierListSegmentNotEstablishedCellsNoEstPossible optional, BSSMAP_IE_VGCS_VBS_CellStatus vGCS_VBS_CellStatus optional @@ -2765,16 +2765,16 @@ BSSMAP_IE_Cause cause, BSSMAP_IE_CellIdentifier cellIdentifier, BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, - BSSMAP_IE_SpeechCodecList codecList + BSSMAP_IE_SpeechCodecList codecList } with { variant "PRESENCE (messageType = '70'O)" } // 3.2.1.84 INTERNAL HANDOVER REQUIRED REJECT type record PDU_BSSMAP_InternalHandoverRequiredReject { - OCT1 messageType, // '71' + OCT1 messageType, // '71' BSSMAP_IE_Cause cause, - BSSMAP_IE_SpeechCodecList codecList optional + BSSMAP_IE_SpeechCodecList codecList optional } with { variant "PRESENCE (messageType = '71'O)" } @@ -2784,10 +2784,10 @@ OCT1 messageType, // '72' BSSMAP_IE_SpeechCodec speechCodec, BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional, - BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, - BSSMAP_IE_CallIdentifier callIdentifier optional, + BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, + BSSMAP_IE_CallIdentifier callIdentifier optional, BSSMAP_IE_DownLinkDTXFlag downLinkDTX_Flag optional, - BSSMAP_IE_LCLS_ConnectionStatusControl lCLS_ConnectionStatusControl optional + BSSMAP_IE_LCLS_ConnectionStatusControl lCLS_ConnectionStatusControl optional } with { variant "PRESENCE (messageType = '72'O)" } // 3.2.1.86 INTERNAL HANDOVER ENQUIRY @@ -2803,7 +2803,7 @@ { OCT1 messageType, //'3D' BSSMAP_IE_Cause cause, - BSSMAP_IE_CallIdentifierList callIdentifierList + BSSMAP_IE_CallIdentifierList callIdentifierList } with { variant "PRESENCE (messageType = '3D'O)" } @@ -2811,7 +2811,7 @@ type record PDU_BSSMAP_ResetIPResourceAck { OCT1 messageType, //'3E' - BSSMAP_IE_CallIdentifierList callIdentifierList + BSSMAP_IE_CallIdentifierList callIdentifierList } with { variant "PRESENCE (messageType = '3E'O)" } @@ -2819,18 +2819,18 @@ type record PDU_BSSMAP_RerouteCommand { OCT1 messageType, //'78' - BSSMAP_IE_Layer3Information initialLayer3Information, + BSSMAP_IE_Layer3Information initialLayer3Information, BSSMAP_IE_RerouteRejectCause rerouteRejectCause, BSSMAP_IE_Layer3Information layer3Information optional, BSSMAP_IE_SendSequenceNumber sendSequenceNumber optional, - BSSMAP_IE_IMSI iMSI optional + BSSMAP_IE_IMSI iMSI optional } with { variant "PRESENCE (messageType = '78'O)" } // 3.2.1.90 REROUTE COMPLETE type record PDU_BSSMAP_RerouteComplete { OCT1 messageType, //'79' - BSSMAP_IE_RerouteCompleteOutcome rerouteCompleteOutcome + BSSMAP_IE_RerouteCompleteOutcome rerouteCompleteOutcome } with { variant "PRESENCE (messageType = '79'O)" } // 3.2.1.91 LCLS CONNECT CONTROL @@ -2845,7 +2845,7 @@ type record PDU_BSSMAP_LCLS_ConnectControlAck { OCT1 messageType, //'75' - BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status + BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status } with { variant "PRESENCE (messageType = '75'O)" } // 3.2.1.93 LCLS NOTIFICATION @@ -2858,7 +2858,7 @@ //The container type of all BSSMAP messages -type union PDU_BSSMAP +type union PDU_BSSMAP { PDU_BSSMAP_AssignmentRequest assignmentRequest, PDU_BSSMAP_AssignmentComplete assignmentComplete, @@ -2980,4 +2980,4 @@ variant (dlci)"PRESENCE(discriminator='1'B)"} -} with { encode "RAW"} // End of module BSSMAP_typedefs +} with { encode "RAW"} // End of module BSSMAP_typedefs -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: Idb4a329c56068d45299fbebd2b077d27255bb317 Gerrit-Change-Number: 23762 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Mon Apr 19 08:48:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 08:48:11 +0000 Subject: Change in titan.ProtocolModules.BSSMAP[master]: BSSAP_Types.ttcn: Add missing IEs for CommonID In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 ) Change subject: BSSAP_Types.ttcn: Add missing IEs for CommonID ...................................................................... BSSAP_Types.ttcn: Add missing IEs for CommonID Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 --- M src/BSSAP_Types.ttcn 1 file changed, 15 insertions(+), 1 deletion(-) Approvals: fixeria: Looks good to me, approved dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/BSSAP_Types.ttcn b/src/BSSAP_Types.ttcn index 95df5bf..e16e05f 100644 --- a/src/BSSAP_Types.ttcn +++ b/src/BSSAP_Types.ttcn @@ -1863,7 +1863,19 @@ OCT1 elementIdentifier //8F } with { variant "PRESENCE (elementIdentifier = '8F'O)";} +//3.2.2.126 Selected PLMN ID +type record BSSAMAP_IE_SelectedPLMNId +{ + OCT1 elementIdentifier, //'94'O + OCT3 mcc_mnc +} with { variant "PRESENCE (elementIdentifier = '94'O)" } +//3.2.2.127 Last used E-UTRAN PLMN ID +type record BSSAMAP_IE_LastUsedEUTRANPLMNId +{ + OCT1 elementIdentifier, //'95'O + OCT3 mcc_mnc +} with { variant "PRESENCE (elementIdentifier = '95'O)" } /////////////////////////////////////////////////////// // Used in HANDOVER REQUEST message @@ -2622,7 +2634,9 @@ { OCT1 messageType, // H'2F BSSMAP_IE_IMSI iMSI, - BSSMAP_IE_SNAAccessInfo sNAAccessInformation optional + BSSMAP_IE_SNAAccessInfo sNAAccessInformation optional, + BSSAMAP_IE_SelectedPLMNId selectedPLMNId optional, + BSSAMAP_IE_LastUsedEUTRANPLMNId lastUsedEUTRANPLMNId optional } with { variant "PRESENCE (messageType = '2F'O)" } -- To view, visit https://gerrit.osmocom.org/c/titan.ProtocolModules.BSSMAP/+/23763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.ProtocolModules.BSSMAP Gerrit-Branch: master Gerrit-Change-Id: I5103ceb2656a41925a089af5492d0722ca87a5c7 Gerrit-Change-Number: 23763 Gerrit-PatchSet: 3 Gerrit-Owner: pespin 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 Mon Apr 19 08:49:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 08:49:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Remove CSFB references from RR Chan Release CellSelectionIndicator IE In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23764 ) Change subject: Remove CSFB references from RR Chan Release CellSelectionIndicator IE ...................................................................... Remove CSFB references from RR Chan Release CellSelectionIndicator IE The IE contains a cell list for the MS to register after the channel is released. The IE is used in CSFB, but not only in that case: it's also used in SRVCC. Hence let's remove the CSFB references since the scope is more wide. Related: SYS#5337 Change-Id: Ia1eeda98fc21aa92bb2e41b5e4761c5cf6516a7e --- M bsc/BSC_Tests.ttcn M library/L3_Templates.ttcn 2 files changed, 9 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index e4e2d1a..6170e48 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1748,7 +1748,7 @@ boolean expect_rll_rel_req := true, boolean handle_rll_rel := true, boolean is_csfb := false, - template CellSelIndValue csfb_expect_cells := omit, + template CellSelIndValue expect_cells := omit, template RR_Cause expect_rr_cause := ? ) runs on test_CT { @@ -1767,7 +1767,7 @@ got_deact_sacch := true; repeat; } - [is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CSFB))) -> value ud { + [is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CellSelectInd))) -> value ud { got_rr_chan_rel := true; if (f_rsl_find_ie(ud.rsl, RSL_IE_L3_INFO, l3_ie) == false) { @@ -1776,16 +1776,16 @@ } l3 := dec_PDU_ML3_NW_MS(l3_ie.l3_info.payload); - if (not istemplatekind(csfb_expect_cells, "omit")) { + if (not istemplatekind(expect_cells, "omit")) { var CellSelIndValue cells := dec_CellSelIndValue( l3.msgs.rrm.channelRelease.cellSelectionIndicator.cellSelectionIndicatorValue); - log("GOT RR CHANNEL RELEASE CSFB CELLS: ", cells); - if (match(cells, csfb_expect_cells)) { + log("GOT RR CHANNEL RELEASE WITH CELLS: ", cells); + if (match(cells, expect_cells)) { setverdict(pass); } else { - log("EXPECTED CSFB CELLS: ", csfb_expect_cells); - setverdict(fail, "Received CSFB cells list on RR Channel Release does not match expectations"); + log("EXPECTED CELLS: ", expect_cells); + setverdict(fail, "Received cells list on RR Channel Release does not match expectations"); } } @@ -2323,7 +2323,7 @@ } f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, is_csfb := true, - csfb_expect_cells := expect_cells); + expect_cells := expect_cells); } for (var integer i := 1; i < total_earfcns; i := i + 1) { diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 5bd87eb..5d688de 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -910,7 +910,7 @@ } } -template PDU_ML3_NW_MS tr_RRM_RR_RELEASE_CSFB(template OCT1 cause := ?) modifies tr_RRM_RR_RELEASE := { +template PDU_ML3_NW_MS tr_RRM_RR_RELEASE_CellSelectInd(template OCT1 cause := ?) modifies tr_RRM_RR_RELEASE := { msgs := { rrm := { channelRelease := { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia1eeda98fc21aa92bb2e41b5e4761c5cf6516a7e Gerrit-Change-Number: 23764 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 08:56:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 08:56:13 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, laforge, fixeria, daniel, lynxis lazus, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/23760 to look at the new patch set (#3). Change subject: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required ...................................................................... gsm: Support Sending Last EUTRAN PLMN Id in Handover Required Related: SYS#5337 Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b --- M TODO-RELEASE M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c 3 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/60/23760/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 Gerrit-PatchSet: 3 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-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 09:02:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 09:02:45 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23760 ) Change subject: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 Gerrit-PatchSet: 3 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-CC: osmith Gerrit-Comment-Date: Mon, 19 Apr 2021 09: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 Mon Apr 19 09:02:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 09:02:47 +0000 Subject: Change in libosmocore[master]: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23760 ) Change subject: gsm: Support Sending Last EUTRAN PLMN Id in Handover Required ...................................................................... gsm: Support Sending Last EUTRAN PLMN Id in Handover Required Related: SYS#5337 Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b --- M TODO-RELEASE M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c 3 files changed, 9 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index bc157bd..53401ec 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,3 +8,4 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line libosmovty _LAST_OSMOVTY_NODE Raise _LAST_OSMOVTY_NODE by introducing some RESERVED*_NODE +libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size) diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index b921eda..ecb9827 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -126,6 +126,9 @@ uint8_t field; } current_channel_type_2; + bool last_eutran_plmn_id_present; + struct osmo_plmn_id last_eutran_plmn_id; + /* more items are defined in the spec and may be added later */ bool more_items; /*< always set this to false */ }; diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 6070ef3..01c3cee 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -833,6 +833,11 @@ msgb_tlv_put(msg, GSM0808_FE_IE_CURRENT_CHANNEL_TYPE_2, 2, val); } + if (i->last_eutran_plmn_id_present) { + msgb_put_u8(msg, GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID); + osmo_plmn_to_bcd(msgb_put(msg, 3), &i->last_eutran_plmn_id); + } + *tlv_len = (uint8_t) (msg->tail - old_tail); return *tlv_len + 2; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b Gerrit-Change-Number: 23760 Gerrit-PatchSet: 3 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-CC: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 09:53:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 09:53:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields 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/+/23766 to look at the new patch set (#2). Change subject: BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields ...................................................................... BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields Depends: titan.ProtocolModules.BSSMAP Change-Id I5103ceb2656a41925a089af5492d0722ca87a5c7 Related: SYS#5337 Change-Id: I9cc4d161fa7083e30d3bf8f10e959d1fe7b86032 --- M deps/Makefile M library/BSSMAP_Templates.ttcn 2 files changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/66/23766/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9cc4d161fa7083e30d3bf8f10e959d1fe7b86032 Gerrit-Change-Number: 23766 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 09:53:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 09:53:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: Switch branches to related commit hashes References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 ) Change subject: deps/Makefile: Switch branches to related commit hashes ...................................................................... deps/Makefile: Switch branches to related commit hashes Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 --- M deps/Makefile 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/93/23793/1 diff --git a/deps/Makefile b/deps/Makefile index d270a79..d7c3840 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -76,6 +76,9 @@ ALL_REPOS=$(ECLIPSEGITHUB_REPOS) $(ECLIPSEGIT2_REPOS) $(OSMOGITHUB_REPOS) $(OSMOGIT_REPOS) # Tag names from 'git-describe --tags'; if not available, a commit hash may be used instead. +# Avoid using changing references such as branches here and use tags or commit +# hashes instead as much as possible, since docker containers cache the fetching of +# repositories below, and only retriggers fetching upon this same file changing. # In order to keep local changes in the repository of a dependency, set its commit to the # name of a local branch here (e.g. 'master'). titan.Libraries.TCCUsefulFunctions_commit= R.35.B-6-gb3687da @@ -127,8 +130,8 @@ titan.TestPorts.TELNETasp_commit= 873fe539642542cd9a901c208f1ec11c6d2f5387 titan.TestPorts.UDPasp_commit= c20d77a34f288dd70dd4aaa30e520778876e9336 titan.TestPorts.UNIX_DOMAIN_SOCKETasp_commit= R.2.A-13-gd34ab71 -titan.TestPorts.USB_commit= master -osmo-uecups_commit= master +titan.TestPorts.USB_commit= d783cb52f58def608edfb217c790f60afd638791 +osmo-uecups_commit= 8362efef7c6fa341eb947a75786878e0685767b7 all: $(foreach dir,$(ALL_REPOS),$(dir)/update) clean: $(foreach dir,$(ALL_REPOS),$(dir)/clean) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 Gerrit-Change-Number: 23793 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 Apr 19 10:04:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:04:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23766 ) Change subject: BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9cc4d161fa7083e30d3bf8f10e959d1fe7b86032 Gerrit-Change-Number: 23766 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 19 Apr 2021 10:04:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 10:04:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:04:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23766 ) Change subject: BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields ...................................................................... BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields Depends: titan.ProtocolModules.BSSMAP Change-Id I5103ceb2656a41925a089af5492d0722ca87a5c7 Related: SYS#5337 Change-Id: I9cc4d161fa7083e30d3bf8f10e959d1fe7b86032 --- M deps/Makefile M library/BSSMAP_Templates.ttcn 2 files changed, 4 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/deps/Makefile b/deps/Makefile index c63dca7..d270a79 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -83,7 +83,7 @@ titan.ProtocolEmulations.SCCP_commit= R.7.A-11-gd4b7a6d titan.ProtocolModules.BSSAPP_v7.3.0_commit= R.2.A-4-g20cfaf8 titan.ProtocolModules.BSSGP_v13.0.0_commit= e97d92a8b66bec399babea52f593771b76cb175a -titan.ProtocolModules.BSSMAP_commit= master +titan.ProtocolModules.BSSMAP_commit= 24f967b2f77bfdd2e6eabf1e82fa76239095f772 titan.ProtocolModules.DNS_commit= R.7.B titan.ProtocolModules.GRE_commit= R.2.A-5-g654c446 titan.ProtocolModules.GTP_v13.5.0_commit= R.2.A-5-ge120ace diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index da822a9..a323502 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1665,7 +1665,9 @@ commonID := { messageType := '2F'O, iMSI := ts_BSSMAP_Imsi(imsi_digits), - sNAAccessInformation := omit + sNAAccessInformation := omit, + selectedPLMNId := omit, + lastUsedEUTRANPLMNId := omit } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9cc4d161fa7083e30d3bf8f10e959d1fe7b86032 Gerrit-Change-Number: 23766 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 10:04:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:04:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP: Support setting LastUsedPLMNId in CommonId msg In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23767 ) Change subject: BSSMAP: Support setting LastUsedPLMNId in CommonId msg ...................................................................... BSSMAP: Support setting LastUsedPLMNId in CommonId msg Related: SYS#5337 Change-Id: I1b7c7fbe010033e726dde3c68152543a63760ffd --- M library/BSSMAP_Templates.ttcn 1 file changed, 17 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index a323502..458fa48 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1110,6 +1110,20 @@ digits := imsi_digits } +template (value) BSSAMAP_IE_LastUsedEUTRANPLMNId ts_BSSMAP_LastUsedEUTRANPLMNId(OCT3 mcc_mnc) := { + elementIdentifier := '95'O, + mcc_mnc := mcc_mnc +} + +function f_ts_BSSMAP_LastUsedEUTRANPLMNId(template (omit) OCT3 mcc_mnc) + return template (omit) BSSAMAP_IE_LastUsedEUTRANPLMNId { + if (not istemplatekind(mcc_mnc, "omit")) { + return ts_BSSMAP_LastUsedEUTRANPLMNId(valueof(mcc_mnc)); + } else { + return omit; + } +} + template BSSMAP_FIELD_CellIdentificationList ts_BSSMAP_CIL_noCell := { cIl_noCell := ''O } @@ -1658,7 +1672,8 @@ } } -template PDU_BSSAP ts_BSSMAP_CommonId(hexstring imsi_digits) +template PDU_BSSAP ts_BSSMAP_CommonId(hexstring imsi_digits, + template (omit) OCT3 last_eutran_plmn := omit) modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { @@ -1667,7 +1682,7 @@ iMSI := ts_BSSMAP_Imsi(imsi_digits), sNAAccessInformation := omit, selectedPLMNId := omit, - lastUsedEUTRANPLMNId := omit + lastUsedEUTRANPLMNId := f_ts_BSSMAP_LastUsedEUTRANPLMNId(last_eutran_plmn) } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1b7c7fbe010033e726dde3c68152543a63760ffd Gerrit-Change-Number: 23767 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 10:05:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:05:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Update and add tests checking Last Used EUTRAN PLMN Id In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23768 ) Change subject: bsc: Update and add tests checking Last Used EUTRAN PLMN Id ...................................................................... bsc: Update and add tests checking Last Used EUTRAN PLMN Id CSFB indicator shouldn't be used as stated in the specs. Rather, BSC should act based on "Last Used E-UTRAN PLMN Id" found in messages such as Common Id, or Handover Request/Required. Related: SYS#5337 Related: osmo-bsc.git Change-Id I5d290ac55eca5adde1c33396422f4c10b83c03d5 Change-Id: I7b2e5a3ad24c10e279a7f1c447804100168203ba --- M bsc/BSC_Tests.ttcn 1 file changed, 62 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 6170e48..f062274 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1747,7 +1747,6 @@ boolean expect_rr_chan_rel := true, boolean expect_rll_rel_req := true, boolean handle_rll_rel := true, - boolean is_csfb := false, template CellSelIndValue expect_cells := omit, template RR_Cause expect_rr_cause := ? ) runs on test_CT { @@ -1767,7 +1766,7 @@ got_deact_sacch := true; repeat; } - [is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CellSelectInd))) -> value ud { + [not istemplatekind(expect_cells, "omit")] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CellSelectInd))) -> value ud { got_rr_chan_rel := true; if (f_rsl_find_ie(ud.rsl, RSL_IE_L3_INFO, l3_ie) == false) { @@ -1801,7 +1800,7 @@ } repeat; } - [not is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) -> value ud { + [istemplatekind(expect_cells, "omit")] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) -> value ud { got_rr_chan_rel := true; if (not istemplatekind(expect_rr_cause, "omit")) { @@ -1877,7 +1876,62 @@ f_shutdown_helper(); } -/* Test behavior of channel release after Clear Command with CSFB indicator from MSC */ +function f_TC_chan_rel_last_eutran_plmn_hard_clear(boolean tx_csfb_ind) runs on test_CT { + var BSSAP_N_DATA_ind rx_di; + var DchanTuple dt; + + f_init(1); + + dt := f_est_dchan('23'O, 23, '00010203040506'O); + /* Send CommonID with some random PLMN (BSC doesn't take it into account + /* yet when generating the EUTRAN neigh list in RR CHannel Release) */ + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_CommonId('001019876543210'H, '323454'O))); + + /* Instruct BSC to clear channel */ + var BssmapCause cause := 0; + if (tx_csfb_ind) { + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommandCSFB(cause))); + } else { + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); + } + + /* expect Clear Complete from BSC on A */ + BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)) { + /* release the SCCP connection */ + BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + } + + /* 1 neighbor is added by default in osmo-bts.cfg and + SystemInformationConfig_default, use that: */ + var template CellSelIndValue exp_cells := f_tr_rr_chan_rel_earfcns(1); + + f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, expect_cells := exp_cells); + f_shutdown_helper(); +} + +/* Test behavior of RR Channel rRelease after Clear Command without CSFB indicator + from MSC, previously receiving any CommonID containing the "Last Used E-UTRAN + PLMN Id". According to spec (3GPP TS 48.008 sec 3.1.30) that's the bit requesting + EUTRAN neighbor list sent later on by BSC in RR Channel, so receiving CSFB + Indicator or not shouldn't matter at all. */ +testcase TC_chan_rel_last_eutran_plmn_hard_clear_no_csfb() runs on test_CT { + f_TC_chan_rel_last_eutran_plmn_hard_clear(false); +} + +/* Test behavior of RR Channel rRelease after Clear Command with CSFB indicator from + MSC, previously receiving any CommonID containing the "Last Used E-UTRAN PLMN + Id". According to spec (3GPP TS 48.008 sec 3.1.30) that's the bit requesting + EUTRAN neighbor list sent later on by BSC in RR Channel. */ +testcase TC_chan_rel_last_eutran_plmn_hard_clear_csfb() runs on test_CT { + f_TC_chan_rel_last_eutran_plmn_hard_clear(true); +} + +/* Test behavior of RR Channel Release after Clear Command with CSFB indicator from + MSC, without receiving any CommonID containing the "Last Used E-UTRAN PLMN + Id". According to spec (TS 48.008 version 16.0.0 Release 16 "3.2.1.21") the + CSFB Indicator should not be used anymore, and hence, there should be no + EUTRAN neighbor list sent by BSC in RR Channel release since no CommonId with + Last Used E-UTRAN PLMN Id" IE was sent for this conn. */ testcase TC_chan_rel_hard_clear_csfb() runs on test_CT { var BSSAP_N_DATA_ind rx_di; var DchanTuple dt; @@ -1896,7 +1950,7 @@ BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); } - f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, is_csfb := true); + f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false); f_shutdown_helper(); } @@ -2322,8 +2376,7 @@ BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); } - f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, is_csfb := true, - expect_cells := expect_cells); + f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, expect_cells := expect_cells); } for (var integer i := 1; i < total_earfcns; i := i + 1) { @@ -8453,6 +8506,8 @@ execute( TC_chan_rel_rll_rel_ind() ); execute( TC_chan_rel_conn_fail() ); execute( TC_chan_rel_hard_clear() ); + execute( TC_chan_rel_last_eutran_plmn_hard_clear_no_csfb() ); + execute( TC_chan_rel_last_eutran_plmn_hard_clear_csfb() ); execute( TC_chan_rel_hard_clear_csfb() ); execute( TC_chan_rel_hard_rlsd() ); execute( TC_chan_rel_hard_rlsd_ms_dead() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7b2e5a3ad24c10e279a7f1c447804100168203ba Gerrit-Change-Number: 23768 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Mon Apr 19 10:05:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:05:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Introduce TC_srvcc_eutran_to_geran In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23776 ) Change subject: bsc: Introduce TC_srvcc_eutran_to_geran ...................................................................... bsc: Introduce TC_srvcc_eutran_to_geran Related: SYS#5337 Change-Id: If26cc9241b1b0eb4112f1227427008ece242bb41 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/BSSMAP_Templates.ttcn 3 files changed, 72 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index f062274..1f8f951 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1501,15 +1501,16 @@ return ass_cmd; } -function f_gen_handover_req(integer bssap_idx := 0, charstring aoip_tla := "1.2.3.4") return PDU_BSSAP { +function f_gen_handover_req(integer bssap_idx := 0, charstring aoip_tla := "1.2.3.4", + template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit) return PDU_BSSAP { var PDU_BSSAP ho_req; if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(f_ts_BSSMAP_IE_AoIP_TLA(aoip_tla, 2342)); - ho_req := valueof(ts_BSSMAP_HandoverRequest(omit, tla)); + ho_req := valueof(ts_BSSMAP_HandoverRequest(omit, tla, oldToNewBSSIEs := oldToNewBSSIEs)); } else { var BSSMAP_IE_CircuitIdentityCode cic := valueof(ts_BSSMAP_IE_CIC(0,1)); - ho_req := valueof(ts_BSSMAP_HandoverRequest(cic, omit)); + ho_req := valueof(ts_BSSMAP_HandoverRequest(cic, omit, oldToNewBSSIEs := oldToNewBSSIEs)); } return ho_req; } @@ -5107,6 +5108,8 @@ * on the lchan even before we get a chance to evaluate the BSSMAP Handover Request ACK. So we * need to assume that osmo-bsc will activate TS 1 and already set up this lchan's RSL emulation * before we get started. */ + var template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit; + var template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE; var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, RSL_CHAN_NR_Bm_ACCH)); f_rslem_register(0, new_chan_nr); g_chan_nr := new_chan_nr; @@ -5116,8 +5119,14 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); + if (not istemplatekind(g_pars.last_used_eutran_plmn, "omit")) { + oldToNewBSSIEs := f_ts_BSSMAP_oldToNewBSSIEs(ts_BSSMAP_LastUsedEUTRANPLMNId(g_pars.last_used_eutran_plmn)); + exp_rr_rel_tmpl := tr_RRM_RR_RELEASE_CellSelectInd; + } + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, - f_gen_handover_req(aoip_tla := g_pars.host_aoip_tla))); + f_gen_handover_req(aoip_tla := g_pars.host_aoip_tla, + oldToNewBSSIEs := oldToNewBSSIEs))); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */ @@ -5162,6 +5171,8 @@ enc_PDU_ML3_MS_NW(l3_tx))); BSSAP.receive(tr_BSSMAP_HandoverComplete); + + f_perform_clear(RSL, exp_rr_rel_tmpl); setverdict(pass); } function f_tc_ho_into_this_bsc_main(TestHdlrParams pars) runs on test_CT { @@ -5183,7 +5194,6 @@ f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:attempted"); f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:completed"); f_ctrs_bsc_and_bts_verify(); - f_shutdown_helper(); } testcase TC_ho_into_this_bsc() runs on test_CT { @@ -5199,6 +5209,18 @@ f_shutdown_helper(); } +/* Similar to TC_ho_into_this_bsc, but when in SRVCC, HO Req contains "Old BSS + to New BSS Information" IE with "Last Used E-UTRAN PLMN Id", whihch, when the + channel is later released (RR CHannel Release), should trigger inclusion of + IE "Cell Selection Indicator after Release of all TCH and SDCCH" with E-UTRAN + neighbors. */ +testcase TC_srvcc_eutran_to_geran() runs on test_CT { + var TestHdlrParams pars := f_gen_test_hdlr_pars(); + pars.last_used_eutran_plmn := '323454'O; + f_tc_ho_into_this_bsc_main(pars); + f_shutdown_helper(); +} + private function f_tc_ho_in_fail_msc_clears(charstring id) runs on MSC_ConnHdlr { var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, RSL_CHAN_NR_Bm_ACCH)); f_rslem_register(0, new_chan_nr); @@ -6472,9 +6494,10 @@ template MobileIdentityLV ts_MI_TMSI_NRI_LV(integer nri_v, integer nri_bitlen := 10) := ts_MI_TMSI_LV(tmsi := f_gen_tmsi(suffix := 0, nri_v := nri_v, nri_bitlen := nri_bitlen)); -private function f_expect_lchan_rel(RSL_DCHAN_PT rsl) runs on MSC_ConnHdlr { +private function f_expect_lchan_rel(RSL_DCHAN_PT rsl, template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE) +runs on MSC_ConnHdlr { interleave { - [] rsl.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) { + [] rsl.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch exp_rr_rel_tmpl)) { f_logp(BSCVTY, "Got RSL RR Release"); } [] rsl.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { @@ -6488,11 +6511,12 @@ } } -private function f_perform_clear(RSL_DCHAN_PT rsl) runs on MSC_ConnHdlr { +private function f_perform_clear(RSL_DCHAN_PT rsl, template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE) +runs on MSC_ConnHdlr { f_logp(BSCVTY, "MSC instructs BSC to clear channel"); BSSAP.send(ts_BSSMAP_ClearCommand(0)); interleave { - [] rsl.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) { + [] rsl.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch exp_rr_rel_tmpl)) { f_logp(BSCVTY, "Got RSL RR Release"); } [] rsl.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { @@ -8645,6 +8669,7 @@ if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { execute( TC_ho_into_this_bsc_tla_v6() ); } + execute( TC_srvcc_eutran_to_geran() ); execute( TC_ho_in_fail_msc_clears() ); execute( TC_ho_in_fail_msc_clears_after_ho_detect() ); execute( TC_ho_in_fail_no_detect() ); diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 5460e2c..245528f 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -587,7 +587,8 @@ boolean use_osmux, charstring host_aoip_tla, TestHdlrParamsMSCPool mscpool, - boolean media_mgw_offer_ipv6 + boolean media_mgw_offer_ipv6, + OCT3 last_used_eutran_plmn optional }; /* Note: Do not use valueof() to get a value of this template, use @@ -622,7 +623,8 @@ rsl_idx := 0, l3_info := omit }, - media_mgw_offer_ipv6 := true + media_mgw_offer_ipv6 := true, + last_used_eutran_plmn := omit } function f_create_chan_and_exp() runs on MSC_ConnHdlr { diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 458fa48..8049bb0 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -23,7 +23,16 @@ type integer SpeechVersion; type integer Channel; type integer ChannelMode; -type octetstring oldToNewBSSIEs; +//type octetstring BSSMAP_oldToNewBSSIEs; + +// Old BSS to New BSS Information - 48.008 subclause 3.2.2.58 +type record BSSMAP_oldToNewBSSIEs +{ + BSSAMAP_IE_LastUsedEUTRANPLMNId LastUsedEUTRANPLMNId optional + /* TODO: add other FIELDS here from specs */ +} +external function enc_BSSMAP_oldToNewBSSIEs(in BSSMAP_oldToNewBSSIEs val) return octetstring + with { extension "prototype(convert) encode(RAW)" }; /* 48.008 3.2.2.5 - this actually belongs to BSSAP_Types.ttcn */ type enumerated myBSSMAP_Cause { @@ -198,10 +207,29 @@ channelMode := int2bit(cm, 4) } -template (value) BSSMAP_IE_OldToNewBSSInfo ts_BSSMAP_IE_OldToNewBSSInfo(oldToNewBSSIEs val) := { +template (value) BSSMAP_oldToNewBSSIEs ts_BSSMAP_oldToNewBSSIEs(template (omit) BSSAMAP_IE_LastUsedEUTRANPLMNId last_used_eutran_plmn) := { + LastUsedEUTRANPLMNId := last_used_eutran_plmn +} +function f_ts_BSSMAP_oldToNewBSSIEs(template (omit) BSSAMAP_IE_LastUsedEUTRANPLMNId last_used_eutran_plmn) + return template (omit) BSSMAP_oldToNewBSSIEs { + if (istemplatekind(last_used_eutran_plmn, "omit")) { + return omit; + } else { + return ts_BSSMAP_oldToNewBSSIEs(last_used_eutran_plmn); + } +} +template (value) BSSMAP_IE_OldToNewBSSInfo ts_BSSMAP_IE_OldToNewBSSInfo(template (value) BSSMAP_oldToNewBSSIEs val) := { elementIdentifier := '3A'O, lengthIndicator := 0, /* overwritten by codec */ - oldToNewBSSIEs := val + oldToNewBSSIEs := enc_BSSMAP_oldToNewBSSIEs(valueof(val)) +} +function f_ts_BSSMAP_IE_OldToNewBSSInfo(template (omit) BSSMAP_oldToNewBSSIEs val) + return template (omit) BSSMAP_IE_OldToNewBSSInfo { + if (istemplatekind(val, "omit")) { + return omit; + } else { + return ts_BSSMAP_IE_OldToNewBSSInfo(val); + } } template (value) BSSMAP_IE_Osmo_OsmuxSupport tr_BSSMAP_IE_Osmo_OsmuxSupport := { @@ -907,7 +935,8 @@ template BSSMAP_IE_CircuitIdentityCode cic := omit, template BSSMAP_IE_AoIP_TransportLayerAddress aoip_tla := omit, template BSSMAP_IE_CellIdentifier cell_id_target := ts_CellID_LAC_CI(1, 0), - template BSSMAP_IE_CellIdentifier cell_id_source := ts_CellID_LAC_CI(1, 1) + template BSSMAP_IE_CellIdentifier cell_id_source := ts_CellID_LAC_CI(1, 1), + template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit ) modifies ts_BSSAP_BSSMAP := { pdu := { @@ -941,7 +970,7 @@ talkerFlag := omit, configurationEvolutionIndication := omit, chosenEncryptionAlgorithm := omit, - oldToNewBSSInfo := omit, + oldToNewBSSInfo := f_ts_BSSMAP_IE_OldToNewBSSInfo(oldToNewBSSIEs), lSAInformation := omit, lSAAccessControlSuppression := omit, serviceHandover := omit, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If26cc9241b1b0eb4112f1227427008ece242bb41 Gerrit-Change-Number: 23776 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 10:07:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:07:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: Switch branches to related commit hashes 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/+/23793 to look at the new patch set (#2). Change subject: deps/Makefile: Switch branches to related commit hashes ...................................................................... deps/Makefile: Switch branches to related commit hashes Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 --- M deps/Makefile 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/93/23793/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 Gerrit-Change-Number: 23793 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 Apr 19 10:14:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:14:42 +0000 Subject: Change in libosmocore[master]: cosmetic: fix typo in comment References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23794 ) Change subject: cosmetic: fix typo in comment ...................................................................... cosmetic: fix typo in comment Change-Id: I43cb7b88a4e867836a67928e361253ce0f02a329 --- M src/gsm/gsm0808.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/23794/1 diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 01c3cee..578c7fa 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -791,7 +791,7 @@ { struct gsm0808_cell_id_list2 cil2 = {}; - /* Mandatory emelents! */ + /* Mandatory elements! */ OSMO_ASSERT(cil); if (cil->id_list_len > GSM0808_CELL_ID_LIST2_MAXLEN) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I43cb7b88a4e867836a67928e361253ce0f02a329 Gerrit-Change-Number: 23794 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 Apr 19 10:21:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 19 Apr 2021 10:21:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: Switch branches to related commit hashes In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 ) Change subject: deps/Makefile: Switch branches to related commit hashes ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793/2/deps/Makefile File deps/Makefile: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793/2/deps/Makefile at 83 PS2, Line 83: # name of a local branch here (e.g. 'master'). This is a huge text block now, can we shorten it to make this easier to understand? e.g. # Tag names from 'git-describe --tags'; if not available, a commit hash may be used instead. # Do not put references to branches here, except for local testing: this breaks the caching # logic of docker containers, which only invalidate their cached ttcn3 dependencies if this # file changed. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 Gerrit-Change-Number: 23793 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 19 Apr 2021 10:21:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 10:30:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:30:10 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23795 ) Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef Introduce TLV attribute definition for "Old BSS to New BSS Information" container. Related: SYS#5337 Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 --- M TODO-RELEASE M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 4 files changed, 34 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/23795/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 53401ec..7e54d8b 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 libosmovty _LAST_OSMOVTY_NODE Raise _LAST_OSMOVTY_NODE by introducing some RESERVED*_NODE -libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size) +libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size), gsm0808_old_bss_to_new_bss_info_att_tlvdef() symbol added diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index ecb9827..dd8114d 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -311,6 +311,7 @@ void gsm0808_prepend_dtap_header(struct msgb *msg, uint8_t link_id); const struct tlv_definition *gsm0808_att_tlvdef(void); +const struct tlv_definition *gsm0808_old_bss_to_new_bss_info_att_tlvdef(void); /*! Parse BSSAP TLV structure using \ref tlv_parse */ #define osmo_bssap_tlv_parse(dec, buf, len) tlv_parse(dec, gsm0808_att_tlvdef(), buf, len, 0, 0) diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 578c7fa..a52cf13 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -1576,6 +1576,37 @@ return &bss_att_tlvdef; } +/* As per 3GPP TS 48.008 version 16.0.0 Release 16 ? 3.2.2.58 Old BSS to New BSS Information */ +static const struct tlv_definition old_bss_to_new_bss_info_att_tlvdef = { + .def = { + [GSM0808_FE_IE_EXTRA_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_CURRENT_CHANNEL_TYPE_2] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_TARGET_CELL_RADIO_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_GPRS_SUSPEND_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_MULTIRATE_CONFIGURATION_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_DUAL_TRANSFER_MODE_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_INTER_RAT_HANDOVER_INFO] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_CDMA2000_CAPABILITY_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_DOWNLINK_CELL_LOAD_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_UPLINK_CELL_LOAD_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_CELL_LOAD_INFORMATION_GROUP] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_CELL_LOAD_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_PS_INDICATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_DTM_HANDOVER_COMMAND_INDICATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_D_RNTI] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_IRAT_MEASUREMENT_CONFIGURATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_SOURCE_CELL_ID] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_IRAT_MEASUREMENT_CONFIGURATION_EXTENDED_E_ARFCNS] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_VGCS_TALKER_MODE] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID] = { TLV_TYPE_FIXED, 3 }, + }, +}; + +const struct tlv_definition *gsm0808_old_bss_to_new_bss_info_att_tlvdef(void) +{ + return &old_bss_to_new_bss_info_att_tlvdef; +} + const struct value_string gsm0406_dlci_sapi_names[] = { { DLCI_SAPI_RR_MM_CC, "RR/MM/CC" }, { DLCI_SAPI_SMS, "SMS" }, diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 7b2c18f..414fa84 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -154,6 +154,7 @@ gsm0503_mcs9; gsm0808_att_tlvdef; +gsm0808_old_bss_to_new_bss_info_att_tlvdef; gsm0808_bssap_name; gsm0808_bssmap_name; gsm0808_cause_name; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 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 Apr 19 10:32:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:32:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: Switch branches to related commit hashes 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/+/23793 to look at the new patch set (#3). Change subject: deps/Makefile: Switch branches to related commit hashes ...................................................................... deps/Makefile: Switch branches to related commit hashes Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 --- M deps/Makefile 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/93/23793/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 Gerrit-Change-Number: 23793 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 10:34:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 19 Apr 2021 10:34:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: Switch branches to related commit hashes In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 ) Change subject: deps/Makefile: Switch branches to related commit hashes ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 Gerrit-Change-Number: 23793 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 19 Apr 2021 10: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 Apr 19 10:35:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 19 Apr 2021 10:35:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: fix checkout logic for branches References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23796 ) Change subject: deps/Makefile: fix checkout logic for branches ...................................................................... deps/Makefile: fix checkout logic for branches Checkout origin/$branch instead of $branch. Otherwise git will just use the local version of branch and stay at the same commit. Note that Ia846863eff1734eca469257b9a8d5e653a45e835 changes the lines which still have "master" to the commit. Fixing this is still useful however, if a branch name is used in local testing. Change-Id: If6bd440598d375a9947cb3a4fd88ae5809756e0e --- M deps/Makefile 1 file changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/96/23796/1 diff --git a/deps/Makefile b/deps/Makefile index c63dca7..171ca36 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -151,7 +151,15 @@ cd $(1) && git remote set-url origin $(2)/$(1) && git fetch endif ifneq ($$($(1)_HEAD),$($(1)_commit)) - cd $(1) && git fetch && git checkout -q -f "$($(1)_commit)" + cd $(1) && \ + git fetch && \ + if git rev-parse "origin/$($(1)_commit)" 2>/dev/null; then \ + set -x && \ + git checkout -q -f "origin/$($(1)_commit)"; \ + else \ + set -x && \ + git checkout -q -f "$($(1)_commit)"; \ + fi endif endif -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23796 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If6bd440598d375a9947cb3a4fd88ae5809756e0e Gerrit-Change-Number: 23796 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 10:47:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:47:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: fix checkout logic for branches In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23796 ) Change subject: deps/Makefile: fix checkout logic for branches ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23796 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If6bd440598d375a9947cb3a4fd88ae5809756e0e Gerrit-Change-Number: 23796 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 19 Apr 2021 10:47:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 10:47:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 10:47:28 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request 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/+/23753 to look at the new patch set (#6). Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request Whenever SRVCC EUTRAN->GERAN is performed by the CN, it will set the Last Used E-UTRAN PLMN Id in order for the BSS to inform the MS about EUTRAN neighbors once the call is over. The last part (sending EUTRAN neighs) is already implemented, since same thing is done as per CSFB. However, we lacked the first part, where the EUTRAN PLMN Id is recorded for later use. Actually, in both cases, we end up building the list of neighbors without taking into accound the PLMN value (hence no filtering of configured neighs), but it only sends such a list if any PLMN was stored there, which means this patch is still necessary for a quick fallback to 4G after the call is over. Related: SYS#5337 Depends: libosmocore.git Change-Id I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e --- M TODO-RELEASE M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/handover_fsm.c 3 files changed, 39 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/53/23753/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 11:10:01 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 19 Apr 2021 11:10:01 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 7: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23734/7/src/osmo-bsc/lchan_fsm.c File src/osmo-bsc/lchan_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23734/7/src/osmo-bsc/lchan_fsm.c at 1610 PS7, Line 1610: } wonder what happens with existing values in lchan->release.last_eutran_plmn_valid and lchan->release.last_eutran_plmn when last_eutran_plmn is NULL. Just wanted to make you aware of this, I do not have enough background of this so I cant say if this can be a problem or not. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 7 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: Mon, 19 Apr 2021 11:10:01 +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 Apr 19 11:14:57 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 19 Apr 2021 11:14:57 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23795 ) Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Mon, 19 Apr 2021 11: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 Mon Apr 19 11:25:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 11:25:43 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23734/7/src/osmo-bsc/lchan_fsm.c File src/osmo-bsc/lchan_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23734/7/src/osmo-bsc/lchan_fsm.c at 1610 PS7, Line 1610: } > wonder what happens with existing values in lchan->release. [?] I don't think one can end up here more than one per lchan (see checks above), so that's fine. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 7 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: Mon, 19 Apr 2021 11:25:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 13:01:17 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 19 Apr 2021 13:01:17 +0000 Subject: Change in libosmocore[master]: cosmetic: fix typo in comment In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23794 ) Change subject: cosmetic: fix typo in comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I43cb7b88a4e867836a67928e361253ce0f02a329 Gerrit-Change-Number: 23794 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Mon, 19 Apr 2021 13:01:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 13:04:01 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 19 Apr 2021 13:04:01 +0000 Subject: Change in osmo-ccid-firmware[master]: Fix typos in README.md In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23605 ) Change subject: Fix typos in README.md ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23605 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: Ia2227b989dee0e57a41764ddfeca10e120c602e4 Gerrit-Change-Number: 23605 Gerrit-PatchSet: 1 Gerrit-Owner: rousseau Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Mon, 19 Apr 2021 13:04: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 Apr 19 13:08:46 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 19 Apr 2021 13:08:46 +0000 Subject: Change in pysim[master]: ts_102_221: fix fixup_fcp_proprietary_tlv_map() In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23211 ) Change subject: ts_102_221: fix fixup_fcp_proprietary_tlv_map() ...................................................................... Patch Set 4: (we decied to keep pytlv) this specific problem is now fixed by a different patch. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23211 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib06041361851f05dd990576fff47048dc1aa6290 Gerrit-Change-Number: 23211 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-Comment-Date: Mon, 19 Apr 2021 13:08: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 Mon Apr 19 13:12:11 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 19 Apr 2021 13:12:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns/gbproxy/sgsn: Update configs to use logging level lnssignal' In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573 ) Change subject: ns/gbproxy/sgsn: Update configs to use logging level lnssignal' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie3d178e68aa81d5636c87940074cb6582ac2f131 Gerrit-Change-Number: 23573 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Mon, 19 Apr 2021 13:12: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 Apr 19 13:42:37 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 19 Apr 2021 13:42:37 +0000 Subject: Change in osmo-msc[master]: Make UTRAN encryption algorithms configurable In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/22766 ) Change subject: Make UTRAN encryption algorithms configurable ...................................................................... Patch Set 1: Code-Review+1 (2 comments) This looks good to me, however I find it a bit difficult to read. On the one hand the code is handling the encryption parameter as a bitbask on the other hand it handles the same encryption parameter as an integer variable with a value from 0-2. https://gerrit.osmocom.org/c/osmo-msc/+/22766/1/src/libmsc/gsm_04_08.c File src/libmsc/gsm_04_08.c: https://gerrit.osmocom.org/c/osmo-msc/+/22766/1/src/libmsc/gsm_04_08.c at 415 PS1, Line 415: is_utran ? net->uea_encryption_mask > 0x01 : net->a5_encryption_mask > 0x01, This logic > 0x01 is a bit confusion to read. Apparently you are comparing the algorithm number (1-2) here. So if a number from 1-2 is set, then the encryption is present, if the number is 0 then no encryption is active at all. The 0x gives the impression that some bitmask is compared in a wired way. Maybe just writing ... > 1 makes the code more readable. Also a comment might be helpful. https://gerrit.osmocom.org/c/osmo-msc/+/22766/1/src/libmsc/msc_net_init.c File src/libmsc/msc_net_init.c: https://gerrit.osmocom.org/c/osmo-msc/+/22766/1/src/libmsc/msc_net_init.c at 71 PS1, Line 71: net->uea_encryption_mask = (1 << 2) | (1 << 1); Maybe it is better to add some define constants, also together with the greater-then logic in gsm_04_08.c its a bit difficult to understand what is going on. Is uea_encryption_mask a mask of discrete bits or does it contain the algorithm number? 0 = 00 off 1 = 01 UEA1 2 = 10 UEA2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I91f9e50f9c1439aa19528f887b83ae9de628fcfd Gerrit-Change-Number: 22766 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 19 Apr 2021 13:42:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 14:10:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 14:10:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns/gbproxy/sgsn: Update configs to use logging level lnssignal' In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573 ) Change subject: ns/gbproxy/sgsn: Update configs to use logging level lnssignal' ...................................................................... Patch Set 1: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573/1/ns/osmo-ns.sns.cfg File ns/osmo-ns.sns.cfg: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573/1/ns/osmo-ns.sns.cfg at 13 PS1, Line 13: force-all info This option 'shadows' all other settings below, everything would still be using 'info'. It should be changed to 'set-all', or even 'set-all debug'?. Can be done later though. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573/1/sgsn/osmo-sgsn.sns.cfg File sgsn/osmo-sgsn.sns.cfg: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573/1/sgsn/osmo-sgsn.sns.cfg at 17 PS1, Line 17: logging level all everything This 'everything' has been deprecated a long time ago, we should also change it. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie3d178e68aa81d5636c87940074cb6582ac2f131 Gerrit-Change-Number: 23573 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 14:10:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 14:12:23 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 14:12:23 +0000 Subject: Change in osmo-bts[master]: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() 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/+/23792 to look at the new patch set (#2). Change subject: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() ...................................................................... rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() Change-Id: I125cdaaf5adac0891a964c9834b99eb5a35ce262 Depends-On: I40eca759380c8895d7923b2b4259d37a50978160 Depends-On: Icf4c83fa443b8410f4362c119b0a85419036b9cd --- M src/common/rsl.c 1 file changed, 16 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/92/23792/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I125cdaaf5adac0891a964c9834b99eb5a35ce262 Gerrit-Change-Number: 23792 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 Mon Apr 19 14:18:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 14:18:19 +0000 Subject: Change in libosmocore[master]: cosmetic: fix typo in comment In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23794 ) Change subject: cosmetic: fix typo in comment ...................................................................... cosmetic: fix typo in comment Change-Id: I43cb7b88a4e867836a67928e361253ce0f02a329 --- M src/gsm/gsm0808.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 01c3cee..578c7fa 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -791,7 +791,7 @@ { struct gsm0808_cell_id_list2 cil2 = {}; - /* Mandatory emelents! */ + /* Mandatory elements! */ OSMO_ASSERT(cil); if (cil->id_list_len > GSM0808_CELL_ID_LIST2_MAXLEN) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I43cb7b88a4e867836a67928e361253ce0f02a329 Gerrit-Change-Number: 23794 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 14:24:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 14:24:15 +0000 Subject: Change in osmo-msc[master]: Make UTRAN encryption algorithms configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/22766 ) Change subject: Make UTRAN encryption algorithms configurable ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-msc/+/22766/1/src/libmsc/msc_net_init.c File src/libmsc/msc_net_init.c: https://gerrit.osmocom.org/c/osmo-msc/+/22766/1/src/libmsc/msc_net_init.c at 71 PS1, Line 71: net->uea_encryption_mask = (1 << 2) | (1 << 1); > Maybe it is better to add some define constants, also together with the greater-then logic in gsm_04 [?] agree with dexter, having bitmask enums/defines would help. Also some macro for the code checking whether encryption is enabled (!= EA0). -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I91f9e50f9c1439aa19528f887b83ae9de628fcfd Gerrit-Change-Number: 22766 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 19 Apr 2021 14:24:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 14:25:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 14:25:27 +0000 Subject: Change in osmo-bts[master]: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23792 ) Change subject: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I125cdaaf5adac0891a964c9834b99eb5a35ce262 Gerrit-Change-Number: 23792 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 19 Apr 2021 14: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 Mon Apr 19 14:30:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 14:30:26 +0000 Subject: Change in osmo-msc[master]: Make UTRAN encryption algorithms configurable In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/22766 ) Change subject: Make UTRAN encryption algorithms configurable ...................................................................... Patch Set 1: Code-Review+1 (1 comment) I am fine with the current approach. https://gerrit.osmocom.org/c/osmo-msc/+/22766/1/src/libmsc/msc_net_init.c File src/libmsc/msc_net_init.c: https://gerrit.osmocom.org/c/osmo-msc/+/22766/1/src/libmsc/msc_net_init.c at 71 PS1, Line 71: net->uea_encryption_mask = (1 << 2) | (1 << 1); > Is uea_encryption_mask a mask of discrete bits or does it contain the algorithm number? It's explained in the comment: /* bit-mask of permitted encryption algorithms. LSB=UEA0, MSB=UEA7 */ so: 0 is kind of meaningless 1 = (1 << 0) = UEA0 2 = (1 << 1) = UEA1 4 = (1 << 2) = UEA2 ... I am not sure if it really makes sense to make UEA0 part of the bit-mask, but at least this is consistent with the 'a5_encryption_mask' above. I hope this helps to understand better. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I91f9e50f9c1439aa19528f887b83ae9de628fcfd Gerrit-Change-Number: 22766 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 19 Apr 2021 14:30:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 14:34:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 14:34:32 +0000 Subject: Change in osmo-bts[master]: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23792 ) Change subject: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() ...................................................................... Patch Set 2: Code-Review+2 Re-applying Harald's CR+2, trivial change. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I125cdaaf5adac0891a964c9834b99eb5a35ce262 Gerrit-Change-Number: 23792 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 19 Apr 2021 14:34: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 Apr 19 14:34:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 14:34:36 +0000 Subject: Change in osmo-bts[master]: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23792 ) Change subject: rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() ...................................................................... rsl: add missing Channel Mode values to rsl_handle_chan_mod_ie() Change-Id: I125cdaaf5adac0891a964c9834b99eb5a35ce262 Depends-On: I40eca759380c8895d7923b2b4259d37a50978160 Depends-On: Icf4c83fa443b8410f4362c119b0a85419036b9cd --- M src/common/rsl.c 1 file changed, 16 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/src/common/rsl.c b/src/common/rsl.c index 6884712..963e6ba 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -164,7 +164,15 @@ case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM3): lchan->tch_mode = GSM48_CMODE_SPEECH_AMR; break; - /* TODO: also handle RSL_CMOD_SP_{GSM4,GSM5,GSM6} */ + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM4): + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM5): + case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM6): + /* TODO: also handle RSL_CMOD_SP_{GSM4,GSM5,GSM6} */ + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " + "unhandled speech coding algorithm 0x%02x\n", + cm->chan_rate); + *cause = RSL_ERR_IE_CONTENT; + return -ENOTSUP; /* If octet 4 indicates non-transparent data */ case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_14k5): @@ -178,7 +186,13 @@ break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_43k5): case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_28k8): - /* TODO: also handle non-transparent asymmetric data rates */ + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_43k5_14k5): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_29k0_14k5): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_43k5_29k0): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_14k5_43k5): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_14k5_29k0): + case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_29k0_43k5): + /* TODO: also handle other non-transparent data rates */ LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " "unhandled non-transparent CSD data rate 0x%02x\n", cm->chan_rate & 0x3f); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I125cdaaf5adac0891a964c9834b99eb5a35ce262 Gerrit-Change-Number: 23792 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 Apr 19 14:44:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 14:44:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Fix tests TC_si2quater_*_earfcns References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23797 ) Change subject: bsc: Fix tests TC_si2quater_*_earfcns ...................................................................... bsc: Fix tests TC_si2quater_*_earfcns Update TC_si2quater_*_earfcns test to trigger Tx of SI2quater eutran neigh list properly, by sending a CommonID with "Last Used E-UTRAN PLMN ID" IE. This should have been updated in a recent commit (see below). Fixes: 841b90daf281c4bdeb73fb2956f195c88e2bff4c Related: SYS#5337 Change-Id: I3073152475a338b29214393a9b550891d52e1f24 --- M bsc/BSC_Tests.ttcn 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/97/23797/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 1f8f951..869343a 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2366,10 +2366,13 @@ var DchanTuple dt; dt := f_est_dchan('23'O, 23, '00010203040506'O); + /* Send CommonID with some random PLMN (BSC doesn't take it into account + /* yet when generating the EUTRAN neigh list in RR CHannel Release) */ + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_CommonId('001019876543210'H, '323454'O))); /* Instruct BSC to clear channel */ var BssmapCause cause := 0; - BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommandCSFB(cause))); + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); /* expect Clear Complete from BSC on A */ BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3073152475a338b29214393a9b550891d52e1f24 Gerrit-Change-Number: 23797 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 Apr 19 14:44:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 14:44:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 ) Change subject: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out ...................................................................... bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out Related: SYS#5337 Change-Id: Id34924bbf0a5cf08b4b6f5ea56a10cef6b69c877 --- M bsc/BSC_Tests.ttcn M library/BSSMAP_Templates.ttcn 2 files changed, 88 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/98/23798/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 869343a..ffef409 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -4767,19 +4767,12 @@ BSSAP.receive(tr_BSSMAP_ClearComplete); } -private function f_tc_ho_out_of_this_bsc(charstring id) runs on MSC_ConnHdlr { - g_pars := f_gen_test_hdlr_pars(); - - var PDU_BSSAP ass_req := f_gen_ass_req(); - ass_req.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType); - ass_req.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); - var template PDU_BSSAP exp_compl := f_gen_exp_compl(); - f_establish_fully(ass_req, exp_compl); +private function f_ho_out_of_this_bsc(template (omit) BSSMAP_oldToNewBSSIEs exp_oldToNewBSSIEs := omit) runs on MSC_ConnHdlr { f_bts_0_cfg(BSCVTY, {"neighbor lac 99 arfcn 123 bsic any"}); f_vty_transceive(BSCVTY, "handover any to arfcn 123 bsic any"); - BSSAP.receive(tr_BSSMAP_HandoverRequired); + BSSAP.receive(tr_BSSMAP_HandoverRequired(exp_oldToNewBSSIEs)); f_sleep(0.5); /* The MSC negotiates Handover Request and Handover Request Ack with @@ -4820,7 +4813,18 @@ f_expect_dlcx_conns(); setverdict(pass); - f_sleep(1.0); +} + +private function f_tc_ho_out_of_this_bsc(charstring id) runs on MSC_ConnHdlr { + g_pars := f_gen_test_hdlr_pars(); + var PDU_BSSAP ass_req := f_gen_ass_req(); + ass_req.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType); + ass_req.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + var template PDU_BSSAP exp_compl := f_gen_exp_compl(); + f_establish_fully(ass_req, exp_compl); + + f_ho_out_of_this_bsc(); + f_sleep(1.0); } testcase TC_ho_out_of_this_bsc() runs on test_CT { var MSC_ConnHdlr vc_conn; @@ -5105,14 +5109,12 @@ f_shutdown_helper(); } -private function f_tc_ho_into_this_bsc(charstring id) runs on MSC_ConnHdlr { +private function f_ho_into_this_bsc(charstring id, template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit) runs on MSC_ConnHdlr { /* Hack: the proper way would be to wait for the BSSMAP Handover Request ACK and extract the * actual assigned chan_nr from its L3 (RR Handover Command) message. But osmo-bsc starts acting * on the lchan even before we get a chance to evaluate the BSSMAP Handover Request ACK. So we * need to assume that osmo-bsc will activate TS 1 and already set up this lchan's RSL emulation * before we get started. */ - var template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit; - var template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE; var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, RSL_CHAN_NR_Bm_ACCH)); f_rslem_register(0, new_chan_nr); g_chan_nr := new_chan_nr; @@ -5122,11 +5124,6 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - if (not istemplatekind(g_pars.last_used_eutran_plmn, "omit")) { - oldToNewBSSIEs := f_ts_BSSMAP_oldToNewBSSIEs(ts_BSSMAP_LastUsedEUTRANPLMNId(g_pars.last_used_eutran_plmn)); - exp_rr_rel_tmpl := tr_RRM_RR_RELEASE_CellSelectInd; - } - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req(aoip_tla := g_pars.host_aoip_tla, oldToNewBSSIEs := oldToNewBSSIEs))); @@ -5174,7 +5171,17 @@ enc_PDU_ML3_MS_NW(l3_tx))); BSSAP.receive(tr_BSSMAP_HandoverComplete); + setverdict(pass); +} +private function f_tc_ho_into_this_bsc(charstring id) runs on MSC_ConnHdlr { + var template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE; + var template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit; + if (not istemplatekind(g_pars.last_used_eutran_plmn, "omit")) { + oldToNewBSSIEs := f_ts_BSSMAP_oldToNewBSSIEs(ts_BSSMAP_LastUsedEUTRANPLMNId(g_pars.last_used_eutran_plmn)); + exp_rr_rel_tmpl := tr_RRM_RR_RELEASE_CellSelectInd; + } + f_ho_into_this_bsc(id, oldToNewBSSIEs); f_perform_clear(RSL, exp_rr_rel_tmpl); setverdict(pass); } @@ -5213,7 +5220,7 @@ } /* Similar to TC_ho_into_this_bsc, but when in SRVCC, HO Req contains "Old BSS - to New BSS Information" IE with "Last Used E-UTRAN PLMN Id", whihch, when the + to New BSS Information" IE with "Last Used E-UTRAN PLMN Id", which, when the channel is later released (RR CHannel Release), should trigger inclusion of IE "Cell Selection Indicator after Release of all TCH and SDCCH" with E-UTRAN neighbors. */ @@ -5224,6 +5231,43 @@ f_shutdown_helper(); } +private function f_tc_srvcc_eutran_to_geran_ho_out(charstring id) runs on MSC_ConnHdlr { + var template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs; + oldToNewBSSIEs := f_ts_BSSMAP_oldToNewBSSIEs(ts_BSSMAP_LastUsedEUTRANPLMNId(g_pars.last_used_eutran_plmn)); + f_ho_into_this_bsc(id, oldToNewBSSIEs); + f_ho_out_of_this_bsc(oldToNewBSSIEs); + setverdict(pass); +} +/* First, HO into BSC from EUTRAN (SRVCC): HO Request contains "Old BSS to New + BSS Information" IE with "Last Used E-UTRAN PLMN Id". + Second, HO to another BSC: HO Required contains "Old BSS to New BSS Information" + IE with "Last Used E-UTRAN PLMN Id" from first step. */ +testcase TC_srvcc_eutran_to_geran_ho_out() runs on test_CT { + var MSC_ConnHdlr vc_conn; + var TestHdlrParams pars := f_gen_test_hdlr_pars(); + + f_init(1, true); + f_sleep(1.0); + + f_ctrs_bsc_and_bts_init(); + + pars.last_used_eutran_plmn := '323454'O; + pars.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + + vc_conn := f_start_handler(refers(f_tc_srvcc_eutran_to_geran_ho_out), pars); + vc_conn.done; + + f_ctrs_bsc_and_bts_add(0, "handover:attempted", 2); + f_ctrs_bsc_and_bts_add(0, "handover:completed", 2); + f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:attempted", 1); + f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:completed", 1); + f_ctrs_bsc_and_bts_add(0, "interbsc_ho_out:attempted", 1); + f_ctrs_bsc_and_bts_add(0, "interbsc_ho_out:completed", 1); + f_ctrs_bsc_and_bts_verify(); + f_shutdown_helper(); +} + private function f_tc_ho_in_fail_msc_clears(charstring id) runs on MSC_ConnHdlr { var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, RSL_CHAN_NR_Bm_ACCH)); f_rslem_register(0, new_chan_nr); @@ -8673,6 +8717,7 @@ execute( TC_ho_into_this_bsc_tla_v6() ); } execute( TC_srvcc_eutran_to_geran() ); + execute( TC_srvcc_eutran_to_geran_ho_out() ); execute( TC_ho_in_fail_msc_clears() ); execute( TC_ho_in_fail_msc_clears_after_ho_detect() ); execute( TC_ho_in_fail_no_detect() ); diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 8049bb0..2b99a5b 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -232,6 +232,24 @@ } } +template BSSMAP_IE_OldToNewBSSInfo tr_BSSMAP_IE_OldToNewBSSInfo(template (value) BSSMAP_oldToNewBSSIEs val) := { + elementIdentifier := '3A'O, + lengthIndicator := ?, /* overwritten by codec */ + oldToNewBSSIEs := enc_BSSMAP_oldToNewBSSIEs(valueof(val)) +} +function f_tr_BSSMAP_IE_OldToNewBSSInfo(template BSSMAP_oldToNewBSSIEs val := *) + return template BSSMAP_IE_OldToNewBSSInfo { + if (istemplatekind(val, "*")) { + return *; + } else if (istemplatekind(val, "?")) { + return ?; + } else if (istemplatekind(val, "omit")) { + return omit; + } else { + return tr_BSSMAP_IE_OldToNewBSSInfo(val); + } +} + template (value) BSSMAP_IE_Osmo_OsmuxSupport tr_BSSMAP_IE_Osmo_OsmuxSupport := { elementIdentifier := 'F0'O } @@ -815,7 +833,8 @@ } template PDU_BSSAP ts_BSSMAP_HandoverRequired(BssmapCause cause, - template BSSMAP_FIELD_CellIdentificationList cid_list) + template BSSMAP_FIELD_CellIdentificationList cid_list, + template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit) modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { @@ -828,7 +847,7 @@ currentChannelType1 := omit, speechVersion := omit, queueingIndicator := omit, - oldToNewBSSInfo := omit, + oldToNewBSSInfo := f_ts_BSSMAP_IE_OldToNewBSSInfo(oldToNewBSSIEs), sourceToTargetRNCTransparentInfo := omit, sourceToTargetRNCTransparentInfoCDMA := omit, gERANClassmark := omit, @@ -841,11 +860,12 @@ } -template PDU_BSSAP tr_BSSMAP_HandoverRequired modifies tr_BSSAP_BSSMAP := { +template PDU_BSSAP tr_BSSMAP_HandoverRequired(template BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := *) modifies tr_BSSAP_BSSMAP := { pdu := { bssmap := { handoverRequired := { - messageType := '11'O + messageType := '11'O, + oldToNewBSSInfo := f_tr_BSSMAP_IE_OldToNewBSSInfo(oldToNewBSSIEs) } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id34924bbf0a5cf08b4b6f5ea56a10cef6b69c877 Gerrit-Change-Number: 23798 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 Apr 19 14:47:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 14:47:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Fix tests TC_si2quater_*_earfcns 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/+/23797 to look at the new patch set (#2). Change subject: bsc: Fix tests TC_si2quater_*_earfcns ...................................................................... bsc: Fix tests TC_si2quater_*_earfcns Update TC_si2quater_*_earfcns test to trigger Tx of SI2quater eutran neigh list properly, by sending a CommonID with "Last Used E-UTRAN PLMN ID" IE. This should have been updated in a recent commit (see below). Fixes: 841b90daf281c4bdeb73fb2956f195c88e2bff4c Related: SYS#5337 Change-Id: I3073152475a338b29214393a9b550891d52e1f24 --- M bsc/BSC_Tests.ttcn 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/97/23797/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3073152475a338b29214393a9b550891d52e1f24 Gerrit-Change-Number: 23797 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 Apr 19 14:47:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 14:47:30 +0000 Subject: Change in osmo-bsc[master]: Forward Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23761 ) Change subject: Forward Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 6: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6cf54f9a16d598f98dc56b25f0fef56225a25a28 Gerrit-Change-Number: 23761 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 19 Apr 2021 14:47:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 15:11:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 15:11:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix typo in variable name References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23799 ) Change subject: pcu: Fix typo in variable name ...................................................................... pcu: Fix typo in variable name Change-Id: I8233b0b7f425fba4cbea9859a13b6e612cccede2 --- M pcu/PCU_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/99/23799/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 187e2f1..d4fe004 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -5519,8 +5519,8 @@ BTS.send(si1_data_ind); var template PCUIF_Message si3_data_ind := ts_PCUIF_DATA_IND(0, 0, 0, 0, PCU_IF_SAPI_BCCH, '4906'O & si3_default, 0, 0, 0, 0, 32767); BTS.send(si3_data_ind); - var template PCUIF_Message si16_data_ind := ts_PCUIF_DATA_IND(0, 0, 0, 0, PCU_IF_SAPI_BCCH, '0106'O & si13_default, 0, 0, 0, 0, 32767); - BTS.send(si16_data_ind); + var template PCUIF_Message si13_data_ind := ts_PCUIF_DATA_IND(0, 0, 0, 0, PCU_IF_SAPI_BCCH, '0106'O & si13_default, 0, 0, 0, 0, 32767); + BTS.send(si13_data_ind); f_sleep(1.0); var RIM_Routing_Address dst_addr; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23799 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8233b0b7f425fba4cbea9859a13b6e612cccede2 Gerrit-Change-Number: 23799 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 Apr 19 15:19:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 15:19:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 ) Change subject: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798/2/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798/2/bsc/BSC_Tests.ttcn at 4819 PS2, Line 4819: g_pars := f_gen_test_hdlr_pars(); Why two tabs?!? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id34924bbf0a5cf08b4b6f5ea56a10cef6b69c877 Gerrit-Change-Number: 23798 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 15:19: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 Mon Apr 19 15:20:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 15:20:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Fix tests TC_si2quater_*_earfcns In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23797 ) Change subject: bsc: Fix tests TC_si2quater_*_earfcns ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3073152475a338b29214393a9b550891d52e1f24 Gerrit-Change-Number: 23797 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 15:20: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 Apr 19 15:20:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 15:20:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix typo in variable name In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23799 ) Change subject: pcu: Fix typo in variable name ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23799 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8233b0b7f425fba4cbea9859a13b6e612cccede2 Gerrit-Change-Number: 23799 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 15:20: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 Apr 19 15:22:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 15:22:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix typo in variable name In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23799 ) Change subject: pcu: Fix typo in variable name ...................................................................... pcu: Fix typo in variable name Change-Id: I8233b0b7f425fba4cbea9859a13b6e612cccede2 --- M pcu/PCU_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 187e2f1..d4fe004 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -5519,8 +5519,8 @@ BTS.send(si1_data_ind); var template PCUIF_Message si3_data_ind := ts_PCUIF_DATA_IND(0, 0, 0, 0, PCU_IF_SAPI_BCCH, '4906'O & si3_default, 0, 0, 0, 0, 32767); BTS.send(si3_data_ind); - var template PCUIF_Message si16_data_ind := ts_PCUIF_DATA_IND(0, 0, 0, 0, PCU_IF_SAPI_BCCH, '0106'O & si13_default, 0, 0, 0, 0, 32767); - BTS.send(si16_data_ind); + var template PCUIF_Message si13_data_ind := ts_PCUIF_DATA_IND(0, 0, 0, 0, PCU_IF_SAPI_BCCH, '0106'O & si13_default, 0, 0, 0, 0, 32767); + BTS.send(si13_data_ind); f_sleep(1.0); var RIM_Routing_Address dst_addr; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23799 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8233b0b7f425fba4cbea9859a13b6e612cccede2 Gerrit-Change-Number: 23799 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 15:22:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 15:22:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 ) Change subject: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798/2/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798/2/bsc/BSC_Tests.ttcn at 4819 PS2, Line 4819: g_pars := f_gen_test_hdlr_pars(); > Why two tabs?!? Because 2 is better than 1!!!! (j/k, I'll submit a new version). -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id34924bbf0a5cf08b4b6f5ea56a10cef6b69c877 Gerrit-Change-Number: 23798 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 15:22:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 15:25:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 15:25:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out 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/+/23798 to look at the new patch set (#3). Change subject: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out ...................................................................... bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out Related: SYS#5337 Change-Id: Id34924bbf0a5cf08b4b6f5ea56a10cef6b69c877 --- M bsc/BSC_Tests.ttcn M library/BSSMAP_Templates.ttcn 2 files changed, 87 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/98/23798/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id34924bbf0a5cf08b4b6f5ea56a10cef6b69c877 Gerrit-Change-Number: 23798 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 15:27:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 15:27:09 +0000 Subject: Change in osmo-bsc[master]: Forward Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23761 ) Change subject: Forward Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 6: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/23761/6//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/23761/6//COMMIT_MSG at 16 PS6, Line 16: libosmocore.git Change-Id I was always wondering, isn't Change-Id supposed to be unique across projects? https://gerrit.osmocom.org/c/osmo-bsc/+/23761/6/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23761/6/src/osmo-bsc/osmo_bsc_bssap.c at 1361 PS6, Line 1361: struct const? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6cf54f9a16d598f98dc56b25f0fef56225a25a28 Gerrit-Change-Number: 23761 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 15:27: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 Mon Apr 19 15:32:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 15:32:49 +0000 Subject: Change in osmo-bsc[master]: Forward Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23761 ) Change subject: Forward Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23761/6//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/23761/6//COMMIT_MSG at 16 PS6, Line 16: libosmocore.git Change-Id > I was always wondering, isn't Change-Id supposed to be unique across projects? I don't think so. It's unique inside one repository. The important part is that it stays the same once set regardless of the branch/&position in history (which doesn't hold true for regular git commit hashes). This way one can reference to it regardless of the branch is lands in. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6cf54f9a16d598f98dc56b25f0fef56225a25a28 Gerrit-Change-Number: 23761 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 15:32:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 15:34:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 15:34:34 +0000 Subject: Change in osmo-bsc[master]: Forward Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23761 ) Change subject: Forward Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23761/6/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23761/6/src/osmo-bsc/osmo_bsc_bssap.c at 1361 PS6, Line 1361: struct > const? Nope, LOG_HO needs it to be non-const (yes, that's probably not correct either, but anyway a separate commit). -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6cf54f9a16d598f98dc56b25f0fef56225a25a28 Gerrit-Change-Number: 23761 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 15:34:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 15:39:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 15:39:14 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23753 ) Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23753/6/src/osmo-bsc/handover_fsm.c File src/osmo-bsc/handover_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23753/6/src/osmo-bsc/handover_fsm.c at 439 PS6, Line 439: TLVP_VAL What if length of the value part is shorter than 3 bytes? I would use: TLVP_PRES_LEN(&tp, GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID, 3) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 19 Apr 2021 15:39:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 15:40:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 15:40:01 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23753 ) Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23753/6/src/osmo-bsc/handover_fsm.c File src/osmo-bsc/handover_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23753/6/src/osmo-bsc/handover_fsm.c at 439 PS6, Line 439: TLVP_VAL > What if length of the value part is shorter than 3 bytes? I would use: [?] That's already being checked by tlv_parse with gsm0808_old_bss_to_new_bss_info_att_tlvdef() above. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 19 Apr 2021 15:40:01 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 15:43:01 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 15:43:01 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23753 ) Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23753/6/src/osmo-bsc/handover_fsm.c File src/osmo-bsc/handover_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23753/6/src/osmo-bsc/handover_fsm.c at 439 PS6, Line 439: TLVP_VAL > That's already being checked by tlv_parse with gsm0808_old_bss_to_new_bss_info_att_tlvdef() above. Ok, good to know. Though, I would still prefer to see TLVP_PRESENT when we check presence and TLVP_VAL when we get a pointer. This is not critical, but semantically looks more readable. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 19 Apr 2021 15:43:01 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes 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 Apr 19 16:13:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 16:13:29 +0000 Subject: Change in osmo-pcu[master]: RIM: Improve logging References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23800 ) Change subject: RIM: Improve logging ...................................................................... RIM: Improve logging Change-Id: I0adbb8ea4480912463dc1dded6c06a1b8f7ed807 --- M src/gprs_bssgp_rim.c 1 file changed, 19 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/00/23800/1 diff --git a/src/gprs_bssgp_rim.c b/src/gprs_bssgp_rim.c index 5f6f750..c1f9cec 100644 --- a/src/gprs_bssgp_rim.c +++ b/src/gprs_bssgp_rim.c @@ -87,6 +87,13 @@ /* Note: It is possible that the resulting PDU will not contain any system information, even if this is * an unlikely case since the BTS immediately updates the system information after startup. The * specification permits to send zero system information, see also: 3GPP TS 48.018 section 11.3.63.2.1 */ + + if (!bts->si1_is_set || !bts->si3_is_set || !bts->si13_is_set) + LOGP(DNACC, LOGL_INFO, "TX RAN INFO RESPONSE (NACC) %s: Some SI are missing:%s%s%s\n", + osmo_cgi_ps_name(&app_cont->reprt_cell), + bts->si1_is_set ? "" : " SI1", + bts->si3_is_set ? "" : " SI3", + bts->si13_is_set ? "" : " SI13"); } /* Format a RAN INFORMATION PDU that contains the requested system information */ @@ -243,7 +250,7 @@ pdu->routing_info_dest.geran.cid); bts = gprs_pcu_get_bts_by_cgi_ps(the_pcu, &dst_addr); if (!bts) { - LOGPRIM(nsei, LOGL_ERROR, "Cell %s unknown to this pcu\n", + LOGPRIM(nsei, LOGL_ERROR, "Destination cell %s unknown to this pcu\n", osmo_cgi_ps_name(&dst_addr)); return bssgp_tx_status(BSSGP_CAUSE_UNKN_DST, NULL, msg); } @@ -251,7 +258,8 @@ /* Check if the incoming RIM PDU is parseable, if not we must report * an error to the controlling BSS 3GPP TS 48.018, 8c.3.4 and 8c.3.4.2 */ if (!pdu->decoded_present) { - LOGPRIM(nsei, LOGL_ERROR, "Errornous RIM PDU received -- rejected.\n"); + LOGPRIM(nsei, LOGL_ERROR, "Erroneous RIM PDU received for cell %s -- reject.\n", + osmo_cgi_ps_name(&dst_addr)); format_response_pdu_err(&resp_pdu, pdu); return 0; } @@ -259,7 +267,9 @@ /* Check if the RIM container inside the incoming RIM PDU has the correct * application ID */ if (!match_app_id(pdu, BSSGP_RAN_INF_APP_ID_NACC)) { - LOGPRIM(nsei, LOGL_ERROR, "RIM PDU with unknown/wrong application ID received -- rejected.\n"); + LOGPRIM(nsei, LOGL_ERROR, + "RIM PDU for cell %s with unknown/wrong application ID received -- reject.\n", + osmo_cgi_ps_name(&dst_addr)); format_response_pdu_err(&resp_pdu, pdu); return 0; } @@ -269,10 +279,14 @@ case BSSGP_IE_RI_REQ_RIM_CONTAINER: rc = osmo_cgi_ps_cmp(&dst_addr, &pdu->decoded.req_rim_cont.u.app_cont_nacc.reprt_cell); if (rc != 0) { - LOGPRIM(nsei, LOGL_ERROR, "reporting cell in RIM application container does not match destination cell in RIM routing info -- rejected.\n"); + LOGPRIM(nsei, LOGL_ERROR, "reporting cell in RIM application container %s " + "does not match destination cell in RIM routing info %s -- rejected.\n", + osmo_cgi_ps_name(&pdu->decoded.req_rim_cont.u.app_cont_nacc.reprt_cell), + osmo_cgi_ps_name2(&dst_addr)); format_response_pdu_err(&resp_pdu, pdu); } else { - LOGPRIM(nsei, LOGL_INFO, "Responding to RAN INFORMATION REQUEST ...\n"); + LOGPRIM(nsei, LOGL_INFO, "Responding to RAN INFORMATION REQUEST %s ...\n", + osmo_cgi_ps_name(&pdu->decoded.req_rim_cont.u.app_cont_nacc.reprt_cell)); format_response_pdu(&resp_pdu, pdu, bts); } bssgp_tx_rim(&resp_pdu, nsei); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0adbb8ea4480912463dc1dded6c06a1b8f7ed807 Gerrit-Change-Number: 23800 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 Apr 19 16:24:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 19 Apr 2021 16:24:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix DATA.ind with SAPI BCCH wrongly txed as PDTCH References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23801 ) Change subject: pcu: Fix DATA.ind with SAPI BCCH wrongly txed as PDTCH ...................................................................... pcu: Fix DATA.ind with SAPI BCCH wrongly txed as PDTCH This fixes failure of test TC_rim_ran_info_req_single_rep It probably broke during some infra refactoring of the PCUIF_Components. Change-Id: Idf9a38280abd6243cc9ef09fc7d033e515c5be15 --- M pcu/PCUIF_Components.ttcn 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/01/23801/1 diff --git a/pcu/PCUIF_Components.ttcn b/pcu/PCUIF_Components.ttcn index 6a24ed6..be7aaeb 100644 --- a/pcu/PCUIF_Components.ttcn +++ b/pcu/PCUIF_Components.ttcn @@ -327,7 +327,11 @@ /* Enqueue DATA.ind and RTS.req messages */ [] TC.receive(tr_PCUIF_MSG(PCU_IF_MSG_DATA_IND, bts_nr)) -> value pcu_msg { - f_PCUIF_MsgQueue_enqueue(pdtch_data_queue, pcu_msg); + if (pcu_msg.u.data_ind.sapi == PCU_IF_SAPI_BCCH) { + PCUIF.send(pcu_msg); /* Forward directly ASAP */ + } else { + f_PCUIF_MsgQueue_enqueue(pdtch_data_queue, pcu_msg); + } repeat; } [] TC.receive(tr_PCUIF_RTS_REQ(bts_nr, sapi := PCU_IF_SAPI_PDTCH)) -> value pcu_msg { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23801 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf9a38280abd6243cc9ef09fc7d033e515c5be15 Gerrit-Change-Number: 23801 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 Apr 19 18:29:58 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 19 Apr 2021 18:29:58 +0000 Subject: Change in pysim[master]: WIP References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23802 ) Change subject: WIP ...................................................................... WIP Change-Id: Ibb1bdc89a7e2b7a1232124ae28f054e5c920aadc --- A pysim-testdata/shell_card_data.csv A pysim-testdata/shell_card_master.bak A tests/pysim-shell-test.sh 3 files changed, 3,102 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/02/23802/1 diff --git a/pysim-testdata/shell_card_data.csv b/pysim-testdata/shell_card_data.csv new file mode 100644 index 0000000..bcf9bd3 --- /dev/null +++ b/pysim-testdata/shell_card_data.csv @@ -0,0 +1,2 @@ +iccid,adm1,pin1,pin2,puk1,puk2 +988812910000000020f5,11111111,1111,1111,11111111,11111111 diff --git a/pysim-testdata/shell_card_master.bak b/pysim-testdata/shell_card_master.bak new file mode 100644 index 0000000..e44bfa6 --- /dev/null +++ b/pysim-testdata/shell_card_master.bak @@ -0,0 +1,2806 @@ +################################################################################ +# MF/EF.DIR # +################################################################################ +# directory: MF (3f00) +# file: EF.DIR (2f00) +# bad file: MF/EF.DIR, string indices must be integers +# +################################################################################ +# MF/EF.ICCID # +################################################################################ +# directory: MF (3f00) +# file: EF.ICCID (2fe2) +# bad file: MF/EF.ICCID, string indices must be integers +# +################################################################################ +# MF/EF.PL # +################################################################################ +# directory: MF (3f00) +# file: EF.PL (2f05) +# bad file: MF/EF.PL, string indices must be integers +# +################################################################################ +# MF/EF.ARR # +################################################################################ +# directory: MF (3f00) +# file: EF.ARR (2f06) +# bad file: MF/EF.ARR, string indices must be integers +# +################################################################################ +# MF/EF.UMPC # +################################################################################ +# directory: MF (3f00) +# file: EF.UMPC (2f08) +# bad file: MF/EF.UMPC, string indices must be integers +# +################################################################################ +# MF/DF.TELECOM/EF.ADN # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.ADN (6f3a) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.ADN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 11 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 12 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 13 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 14 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 15 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 16 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 17 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 18 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 19 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 20 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 21 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 22 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 23 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 24 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 25 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 26 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 27 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 28 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 29 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 30 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 31 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 32 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 33 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 34 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 35 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 36 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 37 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 38 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 39 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 40 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 41 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 42 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 43 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 44 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 45 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 46 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 47 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 48 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 49 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 50 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 51 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 52 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 53 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 54 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 55 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 56 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 57 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 58 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 59 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 60 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 61 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 62 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 63 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 64 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 65 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 66 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 67 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 68 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 69 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 70 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 71 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 72 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 73 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 74 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 75 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 76 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 77 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 78 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 79 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 81 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 82 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 83 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 84 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 85 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 86 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 87 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 88 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 89 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 90 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 91 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 92 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 93 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 94 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 95 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 96 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 97 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 98 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 99 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 100 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 101 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 102 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 103 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 104 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 105 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 106 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 107 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 108 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 109 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 110 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 111 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 112 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 113 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 114 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 115 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 116 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 117 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 118 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 119 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 120 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 121 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 122 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 123 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 124 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 125 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 126 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 127 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 128 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 129 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 130 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 131 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 132 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 133 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 134 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 135 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 136 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 137 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 138 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 139 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 140 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 141 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 142 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 143 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 144 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 145 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 146 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 147 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 148 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 149 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 150 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 151 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 152 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 153 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 154 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 155 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 156 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 157 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 158 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 159 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 160 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 161 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 162 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 163 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 164 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 165 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 166 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 167 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 168 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 169 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 170 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 171 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 172 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 173 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 174 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 175 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 176 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 177 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 178 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 179 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 180 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 181 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 182 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 183 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 184 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 185 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 186 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 187 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 188 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 189 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 190 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 191 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 192 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 193 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 194 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 195 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 196 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 197 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 198 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 199 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 200 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 201 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 202 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 203 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 204 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 205 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 206 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 207 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 208 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 209 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 210 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 211 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 212 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 213 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 214 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 215 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 216 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 217 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 218 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 219 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 220 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 221 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 222 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 223 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 224 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 225 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 226 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 227 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 228 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 229 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 230 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 231 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 232 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 233 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 234 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 235 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 236 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 237 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 238 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 239 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 240 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 241 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 242 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 243 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 244 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 245 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 246 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 247 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 248 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 249 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 250 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF_FDN # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF_FDN (6f3b) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF_FDN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 11 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 12 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 13 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 14 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 15 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 16 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 17 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 18 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 19 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 20 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF.SMS # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.SMS (6f3c) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.SMS +update_record 1 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 11 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 12 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 13 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 14 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 15 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 16 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 17 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 18 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 19 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 20 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 21 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 22 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 23 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 24 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 25 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 26 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 27 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 28 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 29 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 30 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF.CCP # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# bad file: MF/DF.TELECOM/EF.CCP, 6a82: Wrong parameters - File not found +# +################################################################################ +# MF/DF.TELECOM/EF.ECCP # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.ECCP (6f4f) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.ECCP +update_record 1 ffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffff +update_record 11 ffffffffffffffffffffffffffffff +update_record 12 ffffffffffffffffffffffffffffff +update_record 13 ffffffffffffffffffffffffffffff +update_record 14 ffffffffffffffffffffffffffffff +update_record 15 ffffffffffffffffffffffffffffff +update_record 16 ffffffffffffffffffffffffffffff +update_record 17 ffffffffffffffffffffffffffffff +update_record 18 ffffffffffffffffffffffffffffff +update_record 19 ffffffffffffffffffffffffffffff +update_record 20 ffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF.MSISDN # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.MSISDN (6f40) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.MSISDN +update_record 1 ffffffffffffffffffffffffffffffffffffffff05b1766662f6ffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF.SMSP # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.SMSP (6f42) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.SMSP +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffe1ffffffffffffffffffffffff0581005155f5ffffffffffff000000 +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF.SMSS # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.SMSS (6f43) +# structure: transparent +select MF +select DF.TELECOM +select EF.SMSS +update_binary ffff +# +################################################################################ +# MF/DF.TELECOM/EF.EXT1 # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.EXT1 (6f4a) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.EXT1 +update_record 1 ffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF.EXT2 # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.EXT2 (6f4b) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.EXT2 +update_record 1 00ffffffffffffffffffffffff +update_record 2 00ffffffffffffffffffffffff +update_record 3 00ffffffffffffffffffffffff +update_record 4 00ffffffffffffffffffffffff +update_record 5 00ffffffffffffffffffffffff +update_record 6 00ffffffffffffffffffffffff +update_record 7 00ffffffffffffffffffffffff +update_record 8 00ffffffffffffffffffffffff +update_record 9 00ffffffffffffffffffffffff +update_record 10 00ffffffffffffffffffffffff +update_record 11 00ffffffffffffffffffffffff +update_record 12 00ffffffffffffffffffffffff +update_record 13 00ffffffffffffffffffffffff +update_record 14 00ffffffffffffffffffffffff +update_record 15 00ffffffffffffffffffffffff +update_record 16 00ffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF.EXT3 # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.EXT3 (6f4c) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.EXT3 +update_record 1 00ffffffffffffffffffffffff +update_record 2 00ffffffffffffffffffffffff +update_record 3 00ffffffffffffffffffffffff +update_record 4 00ffffffffffffffffffffffff +update_record 5 00ffffffffffffffffffffffff +update_record 6 00ffffffffffffffffffffffff +update_record 7 00ffffffffffffffffffffffff +update_record 8 00ffffffffffffffffffffffff +update_record 9 00ffffffffffffffffffffffff +update_record 10 00ffffffffffffffffffffffff +update_record 11 00ffffffffffffffffffffffff +update_record 12 00ffffffffffffffffffffffff +update_record 13 00ffffffffffffffffffffffff +update_record 14 00ffffffffffffffffffffffff +update_record 15 00ffffffffffffffffffffffff +update_record 16 00ffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF.BDN # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.BDN (6f4d) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.BDN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF.EXT4 # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# bad file: MF/DF.TELECOM/EF.EXT4, 6a82: Wrong parameters - File not found +# +################################################################################ +# MF/DF.TELECOM/EF.SMSR # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.SMSR (6f47) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.SMSR +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 11 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 12 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 13 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 14 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 15 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 16 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 17 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 18 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 19 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 20 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.TELECOM/EF.CMI # +################################################################################ +# directory: MF/DF.TELECOM (3f00/7f10) +# file: EF.CMI (6f58) +# structure: linear_fixed +select MF +select DF.TELECOM +select EF.CMI +update_record 1 ffffffffffffffffffffff +update_record 2 ffffffffffffffffffffff +update_record 3 ffffffffffffffffffffff +update_record 4 ffffffffffffffffffffff +update_record 5 ffffffffffffffffffffff +update_record 6 ffffffffffffffffffffff +update_record 7 ffffffffffffffffffffff +update_record 8 ffffffffffffffffffffff +update_record 9 ffffffffffffffffffffff +update_record 10 ffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.LP # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.LP (6f05) +# structure: transparent +select MF +select DF.GSM +select EF.LP +update_binary ffffffffff +# +################################################################################ +# MF/DF.GSM/EF.IMSI # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.IMSI (6f07) +# structure: transparent +select MF +select DF.GSM +select EF.IMSI +update_binary 082926242330000020 +# +################################################################################ +# MF/DF.GSM/EF.Kc # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.Kc (6f20) +# structure: transparent +select MF +select DF.GSM +select EF.Kc +update_binary ffffffffffffffff07 +# +################################################################################ +# MF/DF.GSM/EF.PLMNsel # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.PLMNsel (6f30) +# structure: transparent +select MF +select DF.GSM +select EF.PLMNsel +update_binary 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.HPPLMN # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.HPPLMN (6f31) +# structure: transparent +select MF +select DF.GSM +select EF.HPPLMN +update_binary 05 +# +################################################################################ +# MF/DF.GSM/EF.ACMmax # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.ACMmax (6f37) +# structure: transparent +select MF +select DF.GSM +select EF.ACMmax +update_binary 000000 +# +################################################################################ +# MF/DF.GSM/EF.SST # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.SST (6f38) +# structure: transparent +select MF +select DF.GSM +select EF.SST +update_binary ff33ffff3f003f0f300cf0c3f00000 +# +################################################################################ +# MF/DF.GSM/EF.ACM # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.ACM (6f39) +# structure: cyclic +select MF +select DF.GSM +select EF.ACM +update_record 1 000000 +update_record 2 000000 +update_record 3 000000 +update_record 4 000000 +update_record 5 000000 +update_record 6 000000 +update_record 7 000000 +update_record 8 000000 +update_record 9 000000 +update_record 10 000000 +update_record 11 000000 +update_record 12 000000 +update_record 13 000000 +update_record 14 000000 +update_record 15 000000 +update_record 16 000000 +update_record 17 000000 +update_record 18 000000 +update_record 19 000000 +update_record 20 000000 +# +################################################################################ +# MF/DF.GSM/EF.GID1 # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.GID1 (6f3e) +# structure: transparent +select MF +select DF.GSM +select EF.GID1 +update_binary ffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.GID2 # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.GID2 (6f3f) +# structure: transparent +select MF +select DF.GSM +select EF.GID2 +update_binary ffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.SPN # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.SPN (6f46) +# structure: transparent +select MF +select DF.GSM +select EF.SPN +update_binary 034d61676963ffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.PUCT # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.PUCT (6f41) +# structure: transparent +select MF +select DF.GSM +select EF.PUCT +update_binary ffffff0000 +# +################################################################################ +# MF/DF.GSM/EF.CBMI # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.CBMI (6f45) +# structure: transparent +select MF +select DF.GSM +select EF.CBMI +update_binary ffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.BCCH # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# bad file: MF/DF.GSM/EF.BCCH, 6a82: Wrong parameters - File not found +# +################################################################################ +# MF/DF.GSM/EF.ACC # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.ACC (6f78) +# structure: transparent +select MF +select DF.GSM +select EF.ACC +update_binary 0200 +# +################################################################################ +# MF/DF.GSM/EF.FPLMN # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.FPLMN (6f7b) +# structure: transparent +select MF +select DF.GSM +select EF.FPLMN +update_binary ffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.LOCI # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.LOCI (6f7e) +# structure: transparent +select MF +select DF.GSM +select EF.LOCI +update_binary ffffffffffffff0000ff01 +# +################################################################################ +# MF/DF.GSM/EF.AD # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.AD (6fad) +# structure: transparent +select MF +select DF.GSM +select EF.AD +update_binary 00000002 +# +################################################################################ +# MF/DF.GSM/EF.Phase # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# bad file: MF/DF.GSM/EF.Phase, 6a82: Wrong parameters - File not found +# +################################################################################ +# MF/DF.GSM/EF.VGCS # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.VGCS (6fb1) +# structure: transparent +select MF +select DF.GSM +select EF.VGCS +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.VGCSS # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.VGCSS (6fb2) +# structure: transparent +select MF +select DF.GSM +select EF.VGCSS +update_binary ffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.VBS # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.VBS (6fb3) +# structure: transparent +select MF +select DF.GSM +select EF.VBS +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.VBSS # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.VBSS (6fb4) +# structure: transparent +select MF +select DF.GSM +select EF.VBSS +update_binary ffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.eMLPP # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.eMLPP (6fb5) +# structure: transparent +select MF +select DF.GSM +select EF.eMLPP +update_binary 0000 +# +################################################################################ +# MF/DF.GSM/EF.AAeM # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.AAeM (6fb6) +# structure: transparent +select MF +select DF.GSM +select EF.AAeM +update_binary 00 +# +################################################################################ +# MF/DF.GSM/EF.CBMID # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.CBMID (6f48) +# structure: transparent +select MF +select DF.GSM +select EF.CBMID +update_binary ffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.ECC # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.ECC (6fb7) +# structure: transparent +select MF +select DF.GSM +select EF.ECC +update_binary ffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.CBMIR # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.CBMIR (6f50) +# structure: transparent +select MF +select DF.GSM +select EF.CBMIR +update_binary ffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.DCK # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.DCK (6f2c) +# structure: transparent +select MF +select DF.GSM +select EF.DCK +update_binary ffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.CNL # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.CNL (6f32) +# structure: transparent +select MF +select DF.GSM +select EF.CNL +update_binary ffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.NIA # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.NIA (6f51) +# structure: linear_fixed +select MF +select DF.GSM +select EF.NIA +update_record 1 ffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.KcGPRS # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.KcGPRS (6f52) +# structure: transparent +select MF +select DF.GSM +select EF.KcGPRS +update_binary ffffffffffffffff07 +# +################################################################################ +# MF/DF.GSM/EF.LOCIGPRS # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.LOCIGPRS (6f53) +# structure: transparent +select MF +select DF.GSM +select EF.LOCIGPRS +update_binary ffffffffffffffffff000000ff01 +# +################################################################################ +# MF/DF.GSM/EF.SUME # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.SUME (6f54) +# structure: transparent +select MF +select DF.GSM +select EF.SUME +# bad file: MF/DF.GSM/EF.SUME, Failed to read (offset 0) +# +################################################################################ +# MF/DF.GSM/EF.PLMNwAcT # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.PLMNwAcT (6f60) +# structure: transparent +select MF +select DF.GSM +select EF.PLMNwAcT +update_binary 00f110ffffffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000 +# +################################################################################ +# MF/DF.GSM/EF.OPLMNwAcT # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.OPLMNwAcT (6f61) +# structure: transparent +select MF +select DF.GSM +select EF.OPLMNwAcT +update_binary 00f110ffffffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000 +# +################################################################################ +# MF/DF.GSM/EF.HPLMNwAcT # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.HPLMNwAcT (6f62) +# structure: transparent +select MF +select DF.GSM +select EF.HPLMNwAcT +update_binary 00f110ffffffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000 +# +################################################################################ +# MF/DF.GSM/EF.CPBCCH # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# bad file: MF/DF.GSM/EF.CPBCCH, 6a82: Wrong parameters - File not found +# +################################################################################ +# MF/DF.GSM/EF.InvScan # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.InvScan (6f64) +# structure: transparent +select MF +select DF.GSM +select EF.InvScan +update_binary 00 +# +################################################################################ +# MF/DF.GSM/EF.PNN # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.PNN (6fc5) +# structure: linear_fixed +select MF +select DF.GSM +select EF.PNN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.OPL # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.OPL (6fc6) +# structure: linear_fixed +select MF +select DF.GSM +select EF.OPL +update_record 1 ffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.MBDN # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.MBDN (6fc7) +# structure: linear_fixed +select MF +select DF.GSM +select EF.MBDN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.MBI # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.MBI (6fc9) +# structure: linear_fixed +select MF +select DF.GSM +select EF.MBI +update_record 1 ffffffff +update_record 2 ffffffff +update_record 3 ffffffff +update_record 4 ffffffff +update_record 5 ffffffff +update_record 6 ffffffff +update_record 7 ffffffff +update_record 8 ffffffff +update_record 9 ffffffff +update_record 10 ffffffff +# +################################################################################ +# MF/DF.GSM/EF.MWIS # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.MWIS (6fca) +# structure: linear_fixed +select MF +select DF.GSM +select EF.MWIS +update_record 1 ffffffffff +update_record 2 ffffffffff +update_record 3 ffffffffff +update_record 4 ffffffffff +# +################################################################################ +# MF/DF.GSM/EF.CFIS # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.CFIS (6fcb) +# structure: linear_fixed +select MF +select DF.GSM +select EF.CFIS +update_record 1 ffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.EXT6 # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.EXT6 (6fc8) +# structure: linear_fixed +select MF +select DF.GSM +select EF.EXT6 +update_record 1 ffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.EXT7 # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.EXT7 (6fcc) +# structure: linear_fixed +select MF +select DF.GSM +select EF.EXT7 +update_record 1 ffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.SPDI # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.SPDI (6fcd) +# structure: transparent +select MF +select DF.GSM +select EF.SPDI +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.MMSN # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.MMSN (6fce) +# structure: linear_fixed +select MF +select DF.GSM +select EF.MMSN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.EXT8 # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.EXT8 (6fcf) +# structure: linear_fixed +select MF +select DF.GSM +select EF.EXT8 +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.MMSICP # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.MMSICP (6fd0) +# structure: transparent +select MF +select DF.GSM +select EF.MMSICP +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.MMSUP # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.MMSUP (6fd1) +# structure: linear_fixed +select MF +select DF.GSM +select EF.MMSUP +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/DF.GSM/EF.MMSUCP # +################################################################################ +# directory: MF/DF.GSM (3f00/7f20) +# file: EF.MMSUCP (6fd2) +# structure: transparent +select MF +select DF.GSM +select EF.MMSUCP +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.LI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.LI (6f05) +# structure: transparent +select MF +select ADF.USIM +select EF.LI +update_binary ffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.IMSI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.IMSI (6f07) +# structure: transparent +select MF +select ADF.USIM +select EF.IMSI +update_binary 082926242330000020 +# +################################################################################ +# MF/ADF.USIM/EF.Keys # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.Keys (6f08) +# structure: transparent +select MF +select ADF.USIM +select EF.Keys +update_binary 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.KeysPS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.KeysPS (6f09) +# structure: transparent +select MF +select ADF.USIM +select EF.KeysPS +update_binary 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.PLMNwAcT # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.PLMNwAcT (6f60) +# structure: transparent +select MF +select ADF.USIM +select EF.PLMNwAcT +update_binary 00f110ffffffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000 +# +################################################################################ +# MF/ADF.USIM/EF.HPPLMN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.HPPLMN (6f31) +# structure: transparent +select MF +select ADF.USIM +select EF.HPPLMN +update_binary 05 +# +################################################################################ +# MF/ADF.USIM/EF.ACMmax # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.ACMmax (6f37) +# structure: transparent +select MF +select ADF.USIM +select EF.ACMmax +update_binary 000000 +# +################################################################################ +# MF/ADF.USIM/EF.UST # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.UST (6f38) +# structure: transparent +select MF +select ADF.USIM +select EF.UST +update_binary beff9f9de73e0408400170330006002e00000000 +# +################################################################################ +# MF/ADF.USIM/EF.ACM # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.ACM (6f39) +# structure: cyclic +select MF +select ADF.USIM +select EF.ACM +update_record 1 000000 +update_record 2 000000 +update_record 3 000000 +update_record 4 000000 +update_record 5 000000 +update_record 6 000000 +update_record 7 000000 +update_record 8 000000 +update_record 9 000000 +update_record 10 000000 +update_record 11 000000 +update_record 12 000000 +update_record 13 000000 +update_record 14 000000 +update_record 15 000000 +update_record 16 000000 +update_record 17 000000 +update_record 18 000000 +update_record 19 000000 +update_record 20 000000 +# +################################################################################ +# MF/ADF.USIM/EF.GID1 # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.GID1 (6f3e) +# structure: transparent +select MF +select ADF.USIM +select EF.GID1 +update_binary ffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.GID2 # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.GID2 (6f3f) +# structure: transparent +select MF +select ADF.USIM +select EF.GID2 +update_binary ffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.SPN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.SPN (6f46) +# structure: transparent +select MF +select ADF.USIM +select EF.SPN +update_binary 034d61676963ffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.PUCT # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.PUCT (6f41) +# structure: transparent +select MF +select ADF.USIM +select EF.PUCT +update_binary ffffff0000 +# +################################################################################ +# MF/ADF.USIM/EF.CBMI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.CBMI (6f45) +# structure: transparent +select MF +select ADF.USIM +select EF.CBMI +update_binary ffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.ACC # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.ACC (6f78) +# structure: transparent +select MF +select ADF.USIM +select EF.ACC +update_binary 0200 +# +################################################################################ +# MF/ADF.USIM/EF.FPLMN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.FPLMN (6f7b) +# structure: transparent +select MF +select ADF.USIM +select EF.FPLMN +update_binary ffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.LOCI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.LOCI (6f7e) +# structure: transparent +select MF +select ADF.USIM +select EF.LOCI +update_binary ffffffffffffff0000ff01 +# +################################################################################ +# MF/ADF.USIM/EF.AD # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.AD (6fad) +# structure: transparent +select MF +select ADF.USIM +select EF.AD +update_binary 00000002 +# +################################################################################ +# MF/ADF.USIM/EF.CBMID # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.CBMID (6f48) +# structure: transparent +select MF +select ADF.USIM +select EF.CBMID +update_binary ffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.ECC # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.ECC (6fb7) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.ECC +update_record 1 ffffffffffffffffffffffffffffff00 +update_record 2 ffffffffffffffffffffffffffffff00 +update_record 3 ffffffffffffffffffffffffffffff00 +update_record 4 ffffffffffffffffffffffffffffff00 +update_record 5 ffffffffffffffffffffffffffffff00 +# +################################################################################ +# MF/ADF.USIM/EF.CBMIR # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.CBMIR (6f50) +# structure: transparent +select MF +select ADF.USIM +select EF.CBMIR +update_binary ffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.PSLOCI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.PSLOCI (6f73) +# structure: transparent +select MF +select ADF.USIM +select EF.PSLOCI +update_binary ffffffffffffffffff000000ff01 +# +################################################################################ +# MF/ADF.USIM/EF.FDN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.FDN (6f3b) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.FDN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 11 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 12 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 13 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 14 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 15 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 16 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 17 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 18 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 19 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 20 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.SMS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.SMS (6f3c) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.SMS +update_record 1 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 11 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 12 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 13 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 14 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 15 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 16 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 17 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 18 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 19 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 20 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 21 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 22 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 23 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 24 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 25 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 26 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 27 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 28 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 29 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 30 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.MSISDN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.MSISDN (6f40) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.MSISDN +update_record 1 ffffffffffffffffffffffffffffffffffffffff05b1766662f6ffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.SMSP # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.SMSP (6f42) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.SMSP +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffe1ffffffffffffffffffffffff0581005155f5ffffffffffff000000 +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.SMSS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.SMSS (6f43) +# structure: transparent +select MF +select ADF.USIM +select EF.SMSS +update_binary ffff +# +################################################################################ +# MF/ADF.USIM/EF.SDN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.SDN (6f49) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.SDN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 11 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 12 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 13 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 14 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 15 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 16 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 17 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 18 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 19 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 20 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.EXT2 # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.EXT2 (6f4b) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.EXT2 +update_record 1 00ffffffffffffffffffffffff +update_record 2 00ffffffffffffffffffffffff +update_record 3 00ffffffffffffffffffffffff +update_record 4 00ffffffffffffffffffffffff +update_record 5 00ffffffffffffffffffffffff +update_record 6 00ffffffffffffffffffffffff +update_record 7 00ffffffffffffffffffffffff +update_record 8 00ffffffffffffffffffffffff +update_record 9 00ffffffffffffffffffffffff +update_record 10 00ffffffffffffffffffffffff +update_record 11 00ffffffffffffffffffffffff +update_record 12 00ffffffffffffffffffffffff +update_record 13 00ffffffffffffffffffffffff +update_record 14 00ffffffffffffffffffffffff +update_record 15 00ffffffffffffffffffffffff +update_record 16 00ffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.EXT3 # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.EXT3 (6f4c) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.EXT3 +update_record 1 00ffffffffffffffffffffffff +update_record 2 00ffffffffffffffffffffffff +update_record 3 00ffffffffffffffffffffffff +update_record 4 00ffffffffffffffffffffffff +update_record 5 00ffffffffffffffffffffffff +update_record 6 00ffffffffffffffffffffffff +update_record 7 00ffffffffffffffffffffffff +update_record 8 00ffffffffffffffffffffffff +update_record 9 00ffffffffffffffffffffffff +update_record 10 00ffffffffffffffffffffffff +update_record 11 00ffffffffffffffffffffffff +update_record 12 00ffffffffffffffffffffffff +update_record 13 00ffffffffffffffffffffffff +update_record 14 00ffffffffffffffffffffffff +update_record 15 00ffffffffffffffffffffffff +update_record 16 00ffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.SMSR # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.SMSR (6f47) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.SMSR +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 11 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 12 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 13 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 14 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 15 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 16 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 17 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 18 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 19 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 20 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.ICI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.ICI (6f80) +# structure: cyclic +select MF +select ADF.USIM +select EF.ICI +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffff0000000001ffff +# +################################################################################ +# MF/ADF.USIM/EF.OCI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.OCI (6f81) +# structure: cyclic +select MF +select ADF.USIM +select EF.OCI +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffff00000001ffff +# +################################################################################ +# MF/ADF.USIM/EF.ICT # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.ICT (6f82) +# structure: cyclic +select MF +select ADF.USIM +select EF.ICT +update_record 1 000000 +# +################################################################################ +# MF/ADF.USIM/EF.OCT # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.OCT (6f83) +# structure: cyclic +select MF +select ADF.USIM +select EF.OCT +update_record 1 000000 +# +################################################################################ +# MF/ADF.USIM/EF.EXT5 # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.EXT5 (6f4e) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.EXT5 +update_record 1 ffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.CCP2 # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.CCP2 (6f4f) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.CCP2 +update_record 1 ffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.eMLPP # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.eMLPP (6fb5) +# structure: transparent +select MF +select ADF.USIM +select EF.eMLPP +update_binary 0000 +# +################################################################################ +# MF/ADF.USIM/EF.AAeM # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.AAeM (6fb6) +# structure: transparent +select MF +select ADF.USIM +select EF.AAeM +update_binary 00 +# +################################################################################ +# MF/ADF.USIM/EF.BDN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.BDN (6f4d) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.BDN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.EXT4 # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# bad file: MF/ADF.USIM/EF.EXT4, 6a82: Wrong parameters - File not found +# +################################################################################ +# MF/ADF.USIM/EF.CMI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.CMI (6f58) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.CMI +update_record 1 ffffffffffffffffffffff +update_record 2 ffffffffffffffffffffff +update_record 3 ffffffffffffffffffffff +update_record 4 ffffffffffffffffffffff +update_record 5 ffffffffffffffffffffff +update_record 6 ffffffffffffffffffffff +update_record 7 ffffffffffffffffffffff +update_record 8 ffffffffffffffffffffff +update_record 9 ffffffffffffffffffffff +update_record 10 ffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.EST # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.EST (6f56) +# structure: transparent +select MF +select ADF.USIM +select EF.EST +update_binary 000000000000000000 +# +################################################################################ +# MF/ADF.USIM/EF.ACL # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.ACL (6f57) +# structure: transparent +select MF +select ADF.USIM +select EF.ACL +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.DCK # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.DCK (6f2c) +# structure: transparent +select MF +select ADF.USIM +select EF.DCK +update_binary ffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.CNL # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.CNL (6f32) +# structure: transparent +select MF +select ADF.USIM +select EF.CNL +update_binary ffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.START-HFN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.START-HFN (6f5b) +# structure: transparent +select MF +select ADF.USIM +select EF.START-HFN +update_binary f00000f00000 +# +################################################################################ +# MF/ADF.USIM/EF.THRESHOLD # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.THRESHOLD (6f5c) +# structure: transparent +select MF +select ADF.USIM +select EF.THRESHOLD +update_binary ffffff +# +################################################################################ +# MF/ADF.USIM/EF.OPLMNwAcT # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.OPLMNwAcT (6f61) +# structure: transparent +select MF +select ADF.USIM +select EF.OPLMNwAcT +update_binary 00f110ffffffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000 +# +################################################################################ +# MF/ADF.USIM/EF.ARR # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.ARR (6f06) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.ARR +update_record 1 8001079000800160a4068301019501088401d4a40683010a950108ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 8001019000800102a406830101950108800118a40683010a9501088401d4a40683010a950108ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 800101a40683010195010880011aa40683010a9501088401d4a40683010a950108ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 800103a406830101950108800118a40683010a9501088401d4a40683010a950108ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 840132a406830101950108800101a406830101950108800102a406830181950108800118a40683010a95010880012097008401d4a40683010a950108ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 800101900080011aa40683010a9501088401d4a40683010a950108ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 800101a406830101950108800102a406830181950108800118a40683010a9501088401d4a40683010a950108ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 840132a406830101950108800103a406830101950108800118a40683010a9501088401d4a40683010a950108ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 800101a40683010a950108800102a40683010a950108800110a40683010a950108800108a40683010a950108ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 11 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 12 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.NETPAR # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.NETPAR (6fc4) +# structure: transparent +select MF +select ADF.USIM +select EF.NETPAR +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.PNN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.PNN (6fc5) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.PNN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.OPL # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.OPL (6fc6) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.OPL +update_record 1 ffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.MBDN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.MBDN (6fc7) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.MBDN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.MBI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.MBI (6fc9) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.MBI +update_record 1 ffffffff +update_record 2 ffffffff +update_record 3 ffffffff +update_record 4 ffffffff +update_record 5 ffffffff +update_record 6 ffffffff +update_record 7 ffffffff +update_record 8 ffffffff +update_record 9 ffffffff +update_record 10 ffffffff +# +################################################################################ +# MF/ADF.USIM/EF.MWIS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.MWIS (6fca) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.MWIS +update_record 1 ffffffffff +update_record 2 ffffffffff +update_record 3 ffffffffff +update_record 4 ffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.CFIS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.CFIS (6fcb) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.CFIS +update_record 1 ffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.EXT7 # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.EXT7 (6fcc) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.EXT7 +update_record 1 ffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.SPDI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.SPDI (6fcd) +# structure: transparent +select MF +select ADF.USIM +select EF.SPDI +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.MMSN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.MMSN (6fce) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.MMSN +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.EXT8 # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.EXT8 (6fcf) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.EXT8 +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.MMSICP # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.MMSICP (6fd0) +# structure: transparent +select MF +select ADF.USIM +select EF.MMSICP +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.MMSUP # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.MMSUP (6fd1) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.MMSUP +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.MMSUCP # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.MMSUCP (6fd2) +# structure: transparent +select MF +select ADF.USIM +select EF.MMSUCP +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.NIA # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# bad file: MF/ADF.USIM/EF.NIA, 6a82: Wrong parameters - File not found +# +################################################################################ +# MF/ADF.USIM/EF.VGCS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.VGCS (6fb1) +# structure: transparent +select MF +select ADF.USIM +select EF.VGCS +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.VGCSS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.VGCSS (6fb2) +# structure: transparent +select MF +select ADF.USIM +select EF.VGCSS +update_binary ffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.VBS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.VBS (6fb3) +# structure: transparent +select MF +select ADF.USIM +select EF.VBS +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.VBSS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.VBSS (6fb4) +# structure: transparent +select MF +select ADF.USIM +select EF.VBSS +update_binary ffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.VGCSCA # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.VGCSCA (6fd4) +# structure: transparent +select MF +select ADF.USIM +select EF.VGCSCA +update_binary 0000000000000000000000000000000000000000 +# +################################################################################ +# MF/ADF.USIM/EF.VBCSCA # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.VBCSCA (6fd5) +# structure: transparent +select MF +select ADF.USIM +select EF.VBCSCA +update_binary 0000000000000000000000000000000000000000 +# +################################################################################ +# MF/ADF.USIM/EF.GBABP # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.GBABP (6fd6) +# structure: transparent +select MF +select ADF.USIM +select EF.GBABP +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.MSK # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.MSK (6fd7) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.MSK +update_record 1 ffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.MUK # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.MUK (6fd8) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.MUK +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.GBANL # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.GBANL (6fda) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.GBANL +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.EHPLMN # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.EHPLMN (6fd9) +# structure: transparent +select MF +select ADF.USIM +select EF.EHPLMN +update_binary 00f110ffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.EHPLMNPI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.EHPLMNPI (6fdb) +# structure: transparent +select MF +select ADF.USIM +select EF.EHPLMNPI +update_binary 02 +# +################################################################################ +# MF/ADF.USIM/EF.NAFKCA # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.NAFKCA (6fdd) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.NAFKCA +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.SPNI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.SPNI (6fde) +# structure: transparent +select MF +select ADF.USIM +select EF.SPNI +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.PNNI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.PNNI (6fdf) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.PNNI +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.NCP-IP # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.NCP-IP (6fe2) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.NCP-IP +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.EPSLOCI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.EPSLOCI (6fe3) +# structure: transparent +select MF +select ADF.USIM +select EF.EPSLOCI +update_binary ffffffffffffffffffffffffffffff000001 +# +################################################################################ +# MF/ADF.USIM/EF.EPSNSC # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.EPSNSC (6fe4) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.EPSNSC +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.UFC # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.UFC (6fe6) +# structure: transparent +select MF +select ADF.USIM +select EF.UFC +update_binary 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +# +################################################################################ +# MF/ADF.USIM/EF.NASCONFIG # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.NASCONFIG (6fe8) +# structure: transparent +select MF +select ADF.USIM +select EF.NASCONFIG +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.PWS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.PWS (6fec) +# structure: transparent +select MF +select ADF.USIM +select EF.PWS +update_binary 000000 +# +################################################################################ +# MF/ADF.USIM/EF.FDNURI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.FDNURI (6fed) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.FDNURI +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.BDNURI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.BDNURI (6fee) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.BDNURI +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.SDNURI # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.SDNURI (6fef) +# structure: linear_fixed +select MF +select ADF.USIM +select EF.SDNURI +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 9 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 10 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/EF.IPS # +################################################################################ +# directory: MF/ADF.USIM (3f00/a0000000871002) +# file: EF.IPS (6ff1) +# structure: cyclic +select MF +select ADF.USIM +select EF.IPS +update_record 1 ffffffff +update_record 2 ffffffff +update_record 3 ffffffff +update_record 4 ffffffff +update_record 5 ffffffff +# +################################################################################ +# MF/ADF.USIM/DF.5GS/EF.5GS3GPPLOCI # +################################################################################ +# directory: MF/ADF.USIM/DF.5GS (3f00/a0000000871002/5fc0) +# file: EF.5GS3GPPLOCI (4f01) +# structure: transparent +select MF +select ADF.USIM +select DF.5GS +select EF.5GS3GPPLOCI +update_binary ffffffffffffffffffffffffffffffffffffff01 +# +################################################################################ +# MF/ADF.USIM/DF.5GS/EF.5GSN3GPPLOCI # +################################################################################ +# directory: MF/ADF.USIM/DF.5GS (3f00/a0000000871002/5fc0) +# file: EF.5GSN3GPPLOCI (4f02) +# structure: transparent +select MF +select ADF.USIM +select DF.5GS +select EF.5GSN3GPPLOCI +update_binary ffffffffffffffffffffffffffffffffffffff01 +# +################################################################################ +# MF/ADF.USIM/DF.5GS/EF.5GS3GPPNSC # +################################################################################ +# directory: MF/ADF.USIM/DF.5GS (3f00/a0000000871002/5fc0) +# file: EF.5GS3GPPNSC (4f03) +# structure: linear_fixed +select MF +select ADF.USIM +select DF.5GS +select EF.5GS3GPPNSC +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/DF.5GS/EF.5GSN3GPPNSC # +################################################################################ +# directory: MF/ADF.USIM/DF.5GS (3f00/a0000000871002/5fc0) +# file: EF.5GSN3GPPNSC (4f04) +# structure: linear_fixed +select MF +select ADF.USIM +select DF.5GS +select EF.5GSN3GPPNSC +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/DF.5GS/EF.5GAUTHKEYS # +################################################################################ +# directory: MF/ADF.USIM/DF.5GS (3f00/a0000000871002/5fc0) +# file: EF.5GAUTHKEYS (4f05) +# structure: transparent +select MF +select ADF.USIM +select DF.5GS +select EF.5GAUTHKEYS +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/DF.5GS/EF.UAC_AIC # +################################################################################ +# directory: MF/ADF.USIM/DF.5GS (3f00/a0000000871002/5fc0) +# file: EF.UAC_AIC (4f06) +# structure: transparent +select MF +select ADF.USIM +select DF.5GS +select EF.UAC_AIC +update_binary 03ffffff +# +################################################################################ +# MF/ADF.USIM/DF.5GS/EF.SUCI_Calc_Info # +################################################################################ +# directory: MF/ADF.USIM/DF.5GS (3f00/a0000000871002/5fc0) +# file: EF.SUCI_Calc_Info (4f07) +# structure: transparent +select MF +select ADF.USIM +select DF.5GS +select EF.SUCI_Calc_Info +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/DF.5GS/EF.OPL5G # +################################################################################ +# directory: MF/ADF.USIM/DF.5GS (3f00/a0000000871002/5fc0) +# bad file: MF/ADF.USIM/DF.5GS/EF.OPL5G, 6a82: Wrong parameters - File not found +# +################################################################################ +# MF/ADF.USIM/DF.5GS/EF.NSI # +################################################################################ +# directory: MF/ADF.USIM/DF.5GS (3f00/a0000000871002/5fc0) +# file: EF.NSI (4f09) +# structure: transparent +select MF +select ADF.USIM +select DF.5GS +select EF.NSI +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.USIM/DF.5GS/EF.Routing_Indicator # +################################################################################ +# directory: MF/ADF.USIM/DF.5GS (3f00/a0000000871002/5fc0) +# file: EF.Routing_Indicator (4f0a) +# structure: transparent +select MF +select ADF.USIM +select DF.5GS +select EF.Routing_Indicator +update_binary ffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.IMPI # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.IMPI (6f02) +# structure: transparent +select MF +select ADF.ISIM +select EF.IMPI +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.DOMAIN # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# bad file: MF/ADF.ISIM/EF.DOMAIN, 6a82: Wrong parameters - File not found +# +################################################################################ +# MF/ADF.ISIM/EF.IMPU # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.IMPU (6f04) +# structure: linear_fixed +select MF +select ADF.ISIM +select EF.IMPU +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 8000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 8000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 8000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 8000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 8000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 8000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 8000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.AD # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.AD (6fad) +# structure: transparent +select MF +select ADF.ISIM +select EF.AD +update_binary ffffff +# +################################################################################ +# MF/ADF.ISIM/EF.ARR # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.ARR (6f06) +# structure: linear_fixed +select MF +select ADF.ISIM +select EF.ARR +update_record 1 800103a406830101950108800118a40683010a9501088401d4a40683010a950108ffffffffffffffffffffffffffffffffff +update_record 2 800101900080011aa40683010a9501088401d4a40683010a950108ffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 800101a40683010195010880011aa40683010a9501088401d4a40683010a950108ffffffffffffffffffffffffffffffffff +update_record 4 800103a406830101950108800118a40683010a9501088401d4a40683010a950108ffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.IST # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.IST (6f07) +# structure: transparent +select MF +select ADF.ISIM +select EF.IST +update_binary 190200 +# +################################################################################ +# MF/ADF.ISIM/EF.P-CSCF # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.P-CSCF (6f09) +# structure: linear_fixed +select MF +select ADF.ISIM +select EF.P-CSCF +update_record 1 80ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.GBABP # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.GBABP (6fd5) +# structure: transparent +select MF +select ADF.ISIM +select EF.GBABP +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.GBANL # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.GBANL (6fd7) +# structure: linear_fixed +select MF +select ADF.ISIM +select EF.GBANL +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.NAFKCA # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.NAFKCA (6fdd) +# structure: linear_fixed +select MF +select ADF.ISIM +select EF.NAFKCA +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.UICCIARI # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.UICCIARI (6fe7) +# structure: linear_fixed +select MF +select ADF.ISIM +select EF.UICCIARI +update_record 1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 3 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 4 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 6 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +update_record 8 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.IMSConfigData # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.IMSConfigData (6ff8) +# structure: transparent +select MF +select ADF.ISIM +select EF.IMSConfigData +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.XCAPConfigData # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# file: EF.XCAPConfigData (6ffc) +# structure: transparent +select MF +select ADF.ISIM +select EF.XCAPConfigData +update_binary ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +# +################################################################################ +# MF/ADF.ISIM/EF.WebRTCURI # +################################################################################ +# directory: MF/ADF.ISIM (3f00/a0000000871004) +# bad file: MF/ADF.ISIM/EF.WebRTCURI, 6a82: Wrong parameters - File not found +# +# total files visited: 187 +# bad files: 16 +# MF/EF.DIR, string indices must be integers +# MF/EF.ICCID, string indices must be integers +# MF/EF.PL, string indices must be integers +# MF/EF.ARR, string indices must be integers +# MF/EF.UMPC, string indices must be integers +# MF/DF.TELECOM/EF.CCP, 6a82: Wrong parameters - File not found +# MF/DF.TELECOM/EF.EXT4, 6a82: Wrong parameters - File not found +# MF/DF.GSM/EF.BCCH, 6a82: Wrong parameters - File not found +# MF/DF.GSM/EF.Phase, 6a82: Wrong parameters - File not found +# MF/DF.GSM/EF.SUME, Failed to read (offset 0) +# MF/DF.GSM/EF.CPBCCH, 6a82: Wrong parameters - File not found +# MF/ADF.USIM/EF.EXT4, 6a82: Wrong parameters - File not found +# MF/ADF.USIM/EF.NIA, 6a82: Wrong parameters - File not found +# MF/ADF.USIM/DF.5GS/EF.OPL5G, 6a82: Wrong parameters - File not found +# MF/ADF.ISIM/EF.DOMAIN, 6a82: Wrong parameters - File not found +# MF/ADF.ISIM/EF.WebRTCURI, 6a82: Wrong parameters - File not found +# skipped dedicated files(s): 0 diff --git a/tests/pysim-shell-test.sh b/tests/pysim-shell-test.sh new file mode 100755 index 0000000..2911bf5 --- /dev/null +++ b/tests/pysim-shell-test.sh @@ -0,0 +1,294 @@ +#!/bin/bash + +# Utility to verify the functionality of pysim-prog.py +# +# (C) 2021 by Sysmocom s.f.m.c. GmbH +# All Rights Reserved +# +# Author: Philipp Maier +# +# 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 . + +PYSIM_SHELL=../pySim-shell.py +PYSIM_PROG=../pySim-prog.py +TEMPFILE=temp.tmp +MASTERBACKUP=shell_card_master.bak +BACKUP=card.bak +PYTHON=python3 +TEST_CARD="sysmoISIM-SJA2" +CARD_DATA="shell_card_data.csv" +PROBE_TIMEOUT=5 +SCRIPT_TIMEOUT=300 + +echo "pysim-shell-test - a test program to test pySim-shell.py" +echo "========================================================" + +# Find out the type (card name) of the card that is installed in the specified +# reader +function probe_card { + TERMINAL_NUMBER=$1 + CARD_NAME="" + CARD_NAME=$(timeout $PROBE_TIMEOUT $PYSIM_PROG -p $TERMINAL_NUMBER -T | cut -d ":" -f 2 | tail -n 1 | xargs) + echo $CARD_NAME +} + +# Go through all available readers and find the testcard. +function find_card { + CARD_NAME=$1 + TERMINAL_NUMBER=-1 + MAX_READERS=16 + + # Do not accept zero length strings as name + if [ -z $CARD_NAME ]; then + echo "-1" + exit + fi + + # Check through the card terminals and try to find a card with + # the specified name + for I in $(seq 0 $MAX_READERS); do + RESULT=$(probe_card $I) + if [ "$RESULT" == "$CARD_NAME" ]; then + TERMINAL_NUMBER=$I + break + fi + done + echo $TERMINAL_NUMBER +} + +# Generate .ok files from the output .script files +function gen_ok_files { + local TERMINAL_NUMBER=$1 + local FILENAME="" + local S="" + local CMDLINE="" + for S in *.script; do + FILENAME=$(basename ${S%.*}) + echo "generating $FILENAME.ok file using script $FILENAME.script..." + CMDLINE="$PYTHON $PYSIM_SHELL -p $TERMINAL_NUMBER --script $FILENAME.script --csv $CARD_DATA" + timeout --foreground $SCRIPT_TIMEOUT $CMDLINE &> $FILENAME.ok + if [ $? -ne 0 ]; then + echo "Error: detected timeout problem, check $FILENAME.script! -- aborted" + exit 1 + fi + done +} + +# Verify .ok files against the output of the .script files +function verify_ok_files { + local TERMINAL_NUMBER=$1 + local FILENAME="" + local S="" + local RESULT_DIFF="" + local TESTS_TOTAL=0 + local TESTS_FAILED=0 + local CMDLINE="" + + rm -f *.fail + + for S in *.script; do + + if [ $S == "*.script" ]; then + echo "no script files found, skipping..." + return + fi + + FILENAME=$(basename ${S%.*}) + echo -n "verfiying $FILENAME.ok file using script $FILENAME.script..." + + if [ ! -f $FILENAME.ok ]; then + echo "fail" + echo "Error: $FILENAME.ok does not exist, please re-generate .ok files -- test aborted" + exit 1 + fi + + CMDLINE="$PYTHON $PYSIM_SHELL -p $TERMINAL_NUMBER --script $FILENAME.script --csv $CARD_DATA" + timeout --foreground $SCRIPT_TIMEOUT $CMDLINE &> $TEMPFILE + if [ $? -ne 0 ]; then + echo "fail (timeout)" + ((TESTS_FAILED++)) + ((TESTS_TOTAL++)) + rm -f $TEMPFILE + continue + fi + + RESULT_DIFF=$(diff $TEMPFILE $FILENAME.ok) + + if [ "$RESULT_DIFF" != "" ]; then + echo "fail" + echo "" + echo "Result of $FILENAME.script does not match the test data:" + echo "Expected: $FILENAME.ok" + echo "------------8<------------" + cat "$SCRIPT_NAME.ok" + echo "------------8<------------" + echo "Got:" + echo "------------8<------------" + cat $TEMPFILE + cp $TEMPFILE $FILENAME.fail + echo "------------8<------------" + echo "" + ((TESTS_FAILED++)) + else + echo "ok" + fi + + ((TESTS_TOTAL++)) + rm -f $TEMPFILE + done + + echo "" + echo "$TESTS_TOTAL executed, $TESTS_FAILED test(s) failed" +} + +# create a backup of all readable files of the card +function make_backup { + local BACKUPFILE=$1 + echo "verify_adm" > $TEMPFILE + echo "export > $BACKUPFILE" >> $TEMPFILE + echo "quit" >> $TEMPFILE + echo -n "creating card backup ($BACKUPFILE)..." + local CMDLINE="$PYTHON $PYSIM_SHELL -p $TERMINAL_NUMBER --script $TEMPFILE --csv $CARD_DATA" + timeout --foreground $SCRIPT_TIMEOUT $CMDLINE &> /dev/null + echo "done" + + # Make sure we actually generated a backup file + if ! [ -r $BACKUPFILE ]; then + echo "error: no card backup file ($BACKUPFILE) generated -- abort" + exit 1 + fi + + # Make we did a complete run + if ! grep -q "skipped dedicated files(s)" $BACKUPFILE; then + echo "error: card backup file ($BACKUPFILE) is incomplete -- abort" + exit 1 + fi + + rm -f $TEMPFILE +} + +# restore card backup from file +function restore_backup { + local BACKUPFILE=$1 + + if ! [ -r $BACKUPFILE ]; then + echo "error: can't read card backup file ($BACKUPFILE) -- abort" + exit 1 + fi + + echo "verify_adm" > $TEMPFILE + echo "run_script $BACKUPFILE" >> $TEMPFILE + echo "select" >> $TEMPFILE + echo "quit" >> $TEMPFILE + echo -n "restoring card backup ($BACKUPFILE)..." + local CMDLINE="$PYTHON $PYSIM_SHELL -p $TERMINAL_NUMBER --script $TEMPFILE --csv $CARD_DATA" + timeout --foreground $SCRIPT_TIMEOUT $CMDLINE &> $BACKUPFILE.log + echo "done" + + # Make we did an execption-free run + if grep -q "EXCEPTION of type" $BACKUPFILE.log; then + echo "error: card backup file ($BACKUPFILE) restore fails with an execption -- abort" + exit 1 + fi + + # Make we did a complete run + if ! grep -q "currently selected file" $BACKUPFILE.log; then + echo "error: card backup file ($BACKUPFILE) restore incomplete -- abort" + exit 1 + fi + + rm -f $BACKUPFILE.log + rm -f $TEMPFILE +} + +function usage { + echo "This script is inteneded to be executed at the same location where" + echo "the .script files and the generated .ok and .bak files are stored." + echo "" + echo "Options:" + echo "-m: generate card master backup ($MASTERBACKUP) file" + echo "-o: generate .ok files" + echo "" + echo "Note: The card master backup must be created before the .ok files" + echo "are generated. It is not necessary to re-generate the card master" + echo "backup each time the set of .ok files is regenerated." + echo "" +} + +# Make sure that the pathes to the python scripts always work, regardless from +# where the script is called. +CURDIR=$PWD +SCRIPTDIR=$(dirname $0) +cd $SCRIPTDIR +PYSIM_SHELL=$(realpath $PYSIM_SHELL) +PYSIM_PROG=$(realpath $PYSIM_PROG) +cd $CURDIR + +OPT_GEN_OK_FILES=0 +OPT_GEN_MASTER_BACKUP_FILE=0 +while getopts "hom" OPT; do + case $OPT in + h) + usage + exit 0 + ;; + o) + OPT_GEN_OK_FILES=1 + ;; + m) + OPT_GEN_MASTER_BACKUP_FILE=1 + ;; + \?) + echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + esac +done + +echo "working directory: $PWD" + +TERMINAL_NUMBER=$(find_card $TEST_CARD) +if [ "$TERMINAL_NUMBER" -eq "-1" ]; then + echo "Error: cannot find testcard \"$TEST_CARD\"" + exit 1 +fi +echo "found Testcard \"$TEST_CARD\" in terminal $TERMINAL_NUMBER" + +# Create a master backup file, this file is restored each time before the test +# scripts run. This ensures that the card is in a defined state so that the +# test won't fail if the files were altered by a different testsuite. +if [ $OPT_GEN_MASTER_BACKUP_FILE -eq 1 ]; then + make_backup $MASTERBACKUP + exit 0 +fi + +# First we create a backup of the testcard that will be restored after running +# the testscripts. This will make sure that this testsuite does not alter the +# card in a way that makes a different testsuite fail. +make_backup $BACKUP + +# Restore the master backup to the card (see also comment above) +restore_backup $MASTERBACKUP + +# Generate .ok files or perform a testrun against existing .ok files. Both are +# verify similar and require to be guarded by the backup files. +if [ $OPT_GEN_OK_FILES -eq 1 ]; then + gen_ok_files $TERMINAL_NUMBER +else + verify_ok_files $TERMINAL_NUMBER +fi + +# Restore the original state of the card (see also comment above) +restore_backup $BACKUP +rm -f $BACKUP -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibb1bdc89a7e2b7a1232124ae28f054e5c920aadc Gerrit-Change-Number: 23802 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 Apr 19 18:33:46 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 19 Apr 2021 18:33:46 +0000 Subject: Change in pysim[master]: WIP 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/+/23802 to look at the new patch set (#2). Change subject: WIP ...................................................................... WIP Change-Id: Ibb1bdc89a7e2b7a1232124ae28f054e5c920aadc --- M contrib/jenkins.sh A pysim-testdata/shell_card_data.csv A pysim-testdata/shell_card_master.bak A tests/pysim-shell-test.sh 4 files changed, 3,103 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/02/23802/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibb1bdc89a7e2b7a1232124ae28f054e5c920aadc Gerrit-Change-Number: 23802 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 Apr 19 19:49:54 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 19 Apr 2021 19:49:54 +0000 Subject: Change in pysim[master]: pySim-shell: separate export summary with a headline References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23803 ) Change subject: pySim-shell: separate export summary with a headline ...................................................................... pySim-shell: separate export summary with a headline the export summary is printed after the log entry for the last file without separation. This is confusing because it looks like if the summary would refer to the last file only. Lets add a headline to make clear that the last few lines are the "Export summary" Change-Id: I90771e525b2b114bdb41a8e90d298ca991c09c3d Related: OS#4963 --- M pySim-shell.py 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/03/23803/1 diff --git a/pySim-shell.py b/pySim-shell.py index a8db263..c702c61 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -288,6 +288,12 @@ self.export(opts.filename, context) else: self.walk(0, self.export, context) + + self._cmd.poutput("#" * 80) + headline = "Export summary" + " " * 80 + self._cmd.poutput("# " + headline[0:77] + "#") + self._cmd.poutput("#" * 80) + self._cmd.poutput("# total files visited: %u" % context['COUNT']) self._cmd.poutput("# bad files: %u" % context['ERR']) for b in context['BAD']: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I90771e525b2b114bdb41a8e90d298ca991c09c3d Gerrit-Change-Number: 23803 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 Apr 19 21:53:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 21:53:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix DATA.ind with SAPI BCCH wrongly txed as PDTCH In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23801 ) Change subject: pcu: Fix DATA.ind with SAPI BCCH wrongly txed as PDTCH ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23801 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf9a38280abd6243cc9ef09fc7d033e515c5be15 Gerrit-Change-Number: 23801 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 21:53: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 Apr 19 22:21:18 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 19 Apr 2021 22:21:18 +0000 Subject: Change in libosmocore[master]: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23804 ) Change subject: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect ...................................................................... gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20 has value 0x0002, so the '& 0xff' had exactly no effect. Change-Id: Ia25ac20539e8ac70fb5f70c1191bd58825151c68 --- M src/gsm/gsm0808_utils.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/04/23804/1 diff --git a/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c index dda73ad..94c9a79 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -1579,7 +1579,7 @@ /* Rate 5,15k can never be selected (see table) */ cfg->m5_15 = 0; - if (s15_s0 & GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20 & 0xff) { + if (s15_s0 & GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20) { /* Table Table 7.11.3.1.3-2 lists one mode that selects 4 * rates at once (Config-NB-Code = 1). The rates selected * are known to be compatible between GERAN and UTRAN, since -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia25ac20539e8ac70fb5f70c1191bd58825151c68 Gerrit-Change-Number: 23804 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 22:21:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 19 Apr 2021 22:21:50 +0000 Subject: Change in libosmocore[master]: RR: add VAMOS channel modes References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23805 ) Change subject: RR: add VAMOS channel modes ...................................................................... RR: add VAMOS channel modes Also add functions to convert between VAMOS and non-VAMOS speech modes. Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 --- M include/osmocom/gsm/gsm48.h M include/osmocom/gsm/protocol/gsm_04_08.h M src/gsm/gsm48.c M src/gsm/libosmogsm.map 4 files changed, 55 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/05/23805/1 diff --git a/include/osmocom/gsm/gsm48.h b/include/osmocom/gsm/gsm48.h index fdaa572..c1ca630 100644 --- a/include/osmocom/gsm/gsm48.h +++ b/include/osmocom/gsm/gsm48.h @@ -118,3 +118,6 @@ #define gsm48_push_l3hdr_tid(msg, pdisc, tid, msg_type) \ gsm48_push_l3hdr(msg, (pdisc & 0x0f) | (tid << 4), msg_type) + +enum gsm48_chan_mode gsm48_chan_mode_to_vamos(enum gsm48_chan_mode mode); +enum gsm48_chan_mode gsm48_chan_mode_to_non_vamos(enum gsm48_chan_mode mode); diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index a103c32..c9cc667 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -749,6 +749,10 @@ GSM48_CMODE_DATA_12k0 = 0x03, GSM48_CMODE_DATA_6k0 = 0x0b, GSM48_CMODE_DATA_3k6 = 0x13, + GSM48_CMODE_SPEECH_V1_VAMOS = 0xc1, + GSM48_CMODE_SPEECH_V2_VAMOS = 0xc2, + GSM48_CMODE_SPEECH_V3_VAMOS = 0xc3, + GSM48_CMODE_SPEECH_V5_VAMOS = 0xc5, }; extern const struct value_string gsm48_chan_mode_names[]; diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index e12fda5..927e639 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -432,9 +432,55 @@ { GSM48_CMODE_DATA_12k0, "DATA_12k0" }, { GSM48_CMODE_DATA_6k0, "DATA_6k0" }, { GSM48_CMODE_DATA_3k6, "DATA_3k6" }, + { GSM48_CMODE_SPEECH_V1_VAMOS, "SPEECH_V1_VAMOS" }, + { GSM48_CMODE_SPEECH_V2_VAMOS, "SPEECH_V2_VAMOS" }, + { GSM48_CMODE_SPEECH_V3_VAMOS, "SPEECH_V3_VAMOS" }, + { GSM48_CMODE_SPEECH_V5_VAMOS, "SPEECH_V5_VAMOS" }, { 0, NULL }, }; +/*! Translate GSM48_CMODE_SPEECH_* to its corresponding GSM48_CMODE_SPEECH_*_VAMOS mode. + * If the mode has no equivalent VAMOS mode, return a negative value. + */ +enum gsm48_chan_mode gsm48_chan_mode_to_vamos(enum gsm48_chan_mode mode) +{ + switch (mode) { + case GSM48_CMODE_SPEECH_V1: + case GSM48_CMODE_SPEECH_V1_VAMOS: + return GSM48_CMODE_SPEECH_V1_VAMOS; + case GSM48_CMODE_SPEECH_EFR: + case GSM48_CMODE_SPEECH_V2_VAMOS: + return GSM48_CMODE_SPEECH_V2_VAMOS; + case GSM48_CMODE_SPEECH_AMR: + case GSM48_CMODE_SPEECH_V3_VAMOS: + return GSM48_CMODE_SPEECH_V3_VAMOS; + case GSM48_CMODE_SPEECH_V5_VAMOS: + return GSM48_CMODE_SPEECH_V5_VAMOS; + default: + return -1; + } +} + +/*! Translate GSM48_CMODE_SPEECH_*_VAMOS to its corresponding GSM48_CMODE_SPEECH_* non-vamos mode. + * If the mode has no equivalent non-VAMOS mode, return a negative value. + */ +enum gsm48_chan_mode gsm48_chan_mode_to_non_vamos(enum gsm48_chan_mode mode) +{ + switch (mode) { + case GSM48_CMODE_SPEECH_V1_VAMOS: + case GSM48_CMODE_SPEECH_V1: + return GSM48_CMODE_SPEECH_V1; + case GSM48_CMODE_SPEECH_V2_VAMOS: + case GSM48_CMODE_SPEECH_EFR: + return GSM48_CMODE_SPEECH_EFR; + case GSM48_CMODE_SPEECH_V3_VAMOS: + case GSM48_CMODE_SPEECH_AMR: + return GSM48_CMODE_SPEECH_AMR; + default: + return -1; + } +} + const struct value_string gsm_chan_t_names[] = { { GSM_LCHAN_NONE, "NONE" }, { GSM_LCHAN_SDCCH, "SDCCH" }, diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 7b2c18f..56a57b8 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -372,6 +372,8 @@ gsm48_generate_mid_from_imsi; gsm48_generate_mid_from_tmsi; gsm48_mi_to_string; +gsm48_chan_mode_to_vamos; +gsm48_chan_mode_to_non_vamos; osmo_mobile_identity_to_str_buf; osmo_mobile_identity_to_str_c; osmo_mobile_identity_cmp; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 Gerrit-Change-Number: 23805 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 22:21:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 19 Apr 2021 22:21:50 +0000 Subject: Change in libosmocore[master]: RR: add missing Extended TSC Set IE References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23806 ) Change subject: RR: add missing Extended TSC Set IE ...................................................................... RR: add missing Extended TSC Set IE Defined in 48.018 10.5.2.82. This will be used by Channel Mode Modify for VAMOS. Change-Id: I9bad6e7121af43dfa9706635e58279ce672a4e14 --- M include/osmocom/gsm/protocol/gsm_04_08.h M src/gsm/gsm48.c 2 files changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/23806/1 diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index c9cc667..3fa9419 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -1729,6 +1729,7 @@ #define GSM48_IE_CHDES_2_AFTER 0x64 #define GSM48_IE_MODE_SEC_CH 0x66 #define GSM48_IE_F_CH_SEQ_AFTER 0x69 +#define GSM48_IE_EXTENDED_TSC_SET 0x6d #define GSM48_IE_MA_AFTER 0x72 #define GSM48_IE_BA_RANGE 0x73 #define GSM48_IE_GROUP_CHDES 0x74 diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 927e639..02489c9 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -124,6 +124,7 @@ [GSM48_IE_CHDES_2_AFTER] = { TLV_TYPE_FIXED, 3 }, [GSM48_IE_MODE_SEC_CH] = { TLV_TYPE_TV }, [GSM48_IE_F_CH_SEQ_AFTER] = { TLV_TYPE_FIXED, 9 }, + [GSM48_IE_EXTENDED_TSC_SET] = { TLV_TYPE_TV }, [GSM48_IE_MA_AFTER] = { TLV_TYPE_TLV }, [GSM48_IE_BA_RANGE] = { TLV_TYPE_TLV }, [GSM48_IE_GROUP_CHDES] = { TLV_TYPE_TLV }, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9bad6e7121af43dfa9706635e58279ce672a4e14 Gerrit-Change-Number: 23806 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 22:40:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 22:40:40 +0000 Subject: Change in libosmocore[master]: RR: add VAMOS channel modes In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23805 ) Change subject: RR: add VAMOS channel modes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 Gerrit-Change-Number: 23805 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 22:40:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 22:41:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 22:41:11 +0000 Subject: Change in libosmocore[master]: RR: add VAMOS channel modes In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23805 ) Change subject: RR: add VAMOS channel modes ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23805/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/23805/1//COMMIT_MSG at 11 PS1, Line 11: Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 Related: SYS#5315? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 Gerrit-Change-Number: 23805 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 22:41:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 19 22:41:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 19 Apr 2021 22:41:49 +0000 Subject: Change in libosmocore[master]: RR: add missing Extended TSC Set IE In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23806 ) Change subject: RR: add missing Extended TSC Set IE ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23806/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/23806/1//COMMIT_MSG at 12 PS1, Line 12: Change-Id: I9bad6e7121af43dfa9706635e58279ce672a4e14 Related: SYS#5315? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9bad6e7121af43dfa9706635e58279ce672a4e14 Gerrit-Change-Number: 23806 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 19 Apr 2021 22:41: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 Tue Apr 20 00:26:44 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 00:26:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_channel_needs_modify(): ask actual TCH lchan mode via VTY References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 ) Change subject: f_channel_needs_modify(): ask actual TCH lchan mode via VTY ...................................................................... f_channel_needs_modify(): ask actual TCH lchan mode via VTY I am introducing a BSC test case that runs through a assigning a TCH channel for signalling, and then using Channel Mode Modify to change its mode from signalling to speech. For this to work, f_channel_needs_modify() needs to actually look up the channel mode of the TCH and not assume that a TCH is always in speech mode. Related: SYS#4895 Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 --- M bsc/MSC_ConnectionHandler.ttcn 1 file changed, 12 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/07/23807/1 diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 245528f..5b5bd6b 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -45,6 +45,7 @@ import from TELNETasp_PortType all; import from Osmocom_VTY_Functions all; +import from TCCConversion_Functions all; /*********************************************************************** @@ -955,21 +956,24 @@ /* Determine if the channel mode specified within rsl_chan_nr requires a * MODE MODIFY in to match the channel mode specified by given BSSMAP * ChannelType */ -function f_channel_needs_modify(BSSMAP_IE_ChannelType bssmap, RslChannelNr rsl_chan_nr) +function f_channel_needs_modify(TELNETasp_PT vty, BSSMAP_IE_ChannelType bssmap, RslChannelNr rsl_chan_nr) return boolean { - /* FIXME: This tests the rsl_chan_nr to determine if we are on a - * signalling channel or not. Unfortunately this may lead to false - * results if we are on a TCH. The problem is that a TCH may be also - * used in signalling mode, but this function assumes that only SDCCH4 - * and SDCCH8 are used as signalling channels at all. */ - var boolean current_signalling := false; var boolean desired_signalling := false; select (rsl_chan_nr) { case (t_RslChanNr_SDCCH4(?, ?)) { current_signalling := true; } case (t_RslChanNr_SDCCH8(?, ?)) { current_signalling := true; } + case (t_RslChanNr_Bm(?)) { + /* FIXME: always picks subslot 0, because I currently can't be bothered to figure out how a TCH/H + * subslot 1 is indicated in RslChannelNr (plus all current tests where this matters use subslot + * 0 anyway). */ + var charstring res := f_vty_transceive_ret(vty, "show lchan 0 0 " & int2str(rsl_chan_nr.tn) & " 0"); + if (f_strstr(res, "Channel Mode / Codec: SIGNALLING", 0) >= 0) { + current_signalling := true; + } + } } if (bssmap.speechOrDataIndicator == '0011'B) { @@ -1134,7 +1138,7 @@ * channel, we must now check if the mode of the current * channel is compatible. If not we expect the BSC to modify * the mode */ - exp_modify := f_channel_needs_modify(ass_cmd.pdu.bssmap.assignmentRequest.channelType, g_chan_nr); + exp_modify := f_channel_needs_modify(BSCVTY, ass_cmd.pdu.bssmap.assignmentRequest.channelType, g_chan_nr); } /* Some test situations will involve MGCP transactions on a media -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 Gerrit-Change-Number: 23807 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 00:26:45 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 00:26:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_assignment_codec_fr_by_mode_modify References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 ) Change subject: bsc: add TC_assignment_codec_fr_by_mode_modify ...................................................................... bsc: add TC_assignment_codec_fr_by_mode_modify Test the lchan mode modification code path of OsmoBSC, in preparation of adding VAMOS bits to the mode modification procedure. Related: SYS#4895 Change-Id: Idf4efaed986de0bbd2b663313e837352cc139f0f --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn 2 files changed, 111 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/08/23808/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 1f8f951..8de0e23 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3609,36 +3609,39 @@ f_establish_fully(ass_cmd, exp_compl); - /* Verify that the RSL-side activation actually matches our expectations */ - var RSL_Message rsl := f_rslem_get_last_act(RSL_PROC, 0, g_chan_nr); + if (not g_pars.expect_channel_mode_modify) { + /* Verify that the RSL-side activation actually matches our expectations */ + var RSL_Message rsl := f_rslem_get_last_act(RSL_PROC, 0, g_chan_nr); - var RSL_IE_Body mode_ie; - if (f_rsl_find_ie(rsl, RSL_IE_CHAN_MODE, mode_ie) == false) { - setverdict(fail, "Couldn't find CHAN_MODE IE"); - mtc.stop; - } - var template RSL_IE_Body t_mode_ie := f_rsl_chmod_tmpl_from_codec(g_pars.ass_codec_list.codecElements[0]); - if (not match(mode_ie, t_mode_ie)) { - setverdict(fail, "RSL Channel Mode IE doesn't match expectation"); - } - - var RSL_IE_Body mr_conf; - if (g_pars.expect_mr_conf_ie != omit) { - if (f_rsl_find_ie(rsl, RSL_IE_MR_CONFIG, mr_conf) == false) { - setverdict(fail, "Missing MR CONFIG IE in RSL Chan Activ"); + var RSL_IE_Body mode_ie; + if (f_rsl_find_ie(rsl, RSL_IE_CHAN_MODE, mode_ie) == false) { + setverdict(fail, "Couldn't find CHAN_MODE IE"); mtc.stop; } - log("found RSL MR CONFIG IE: ", mr_conf); - - if (not match(mr_conf, g_pars.expect_mr_conf_ie)) { - setverdict(fail, "RSL MR CONFIG IE does not match expectation. Expected: ", - g_pars.expect_mr_conf_ie); + var template RSL_IE_Body t_mode_ie := f_rsl_chmod_tmpl_from_codec(g_pars.ass_codec_list.codecElements[0]); + if (not match(mode_ie, t_mode_ie)) { + log("mode_ie ", mode_ie, " != t_mode_ie ", t_mode_ie); + setverdict(fail, "RSL Channel Mode IE doesn't match expectation"); } - } else { - if (f_rsl_find_ie(rsl, RSL_IE_MR_CONFIG, mr_conf) == true) { + + var RSL_IE_Body mr_conf; + if (g_pars.expect_mr_conf_ie != omit) { + if (f_rsl_find_ie(rsl, RSL_IE_MR_CONFIG, mr_conf) == false) { + setverdict(fail, "Missing MR CONFIG IE in RSL Chan Activ"); + mtc.stop; + } log("found RSL MR CONFIG IE: ", mr_conf); - setverdict(fail, "Found MR CONFIG IE in RSL Chan Activ, expecting omit"); - mtc.stop; + + if (not match(mr_conf, g_pars.expect_mr_conf_ie)) { + setverdict(fail, "RSL MR CONFIG IE does not match expectation. Expected: ", + g_pars.expect_mr_conf_ie); + } + } else { + if (f_rsl_find_ie(rsl, RSL_IE_MR_CONFIG, mr_conf) == true) { + log("found RSL MR CONFIG IE: ", mr_conf); + setverdict(fail, "Found MR CONFIG IE in RSL Chan Activ, expecting omit"); + mtc.stop; + } } } } @@ -3800,6 +3803,30 @@ f_shutdown_helper(); } +/* Establish signalling on a TCH/F lchan, and then switch to speech mode without a new Assignment. */ +testcase TC_assignment_codec_fr_by_mode_modify() runs on test_CT { + var TestHdlrParams pars := f_gen_test_hdlr_pars(); + var MSC_ConnHdlr vc_conn; + + f_init(1, true); + f_sleep(1.0); + + /* By disabling all SDCCH, the MS should be given a TCH/F for signalling. Then activating an FR codec should + * merely do a Channel Mode Modify, and not assign to a new lchan. f_establish_fully() already accounts for + * expecting a Channel Mode Modify if the channel type is compatible. */ + f_disable_all_sdcch(); + f_disable_all_tch_h(); + + pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars.expect_channel_mode_modify := true; + vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars); + vc_conn.done; + + f_enable_all_sdcch(); + f_enable_all_tch(); + f_shutdown_helper(); +} + /* 'amr start-mode auto' should not keep the (unused) 'smod' bits from previous configuration */ testcase TC_assignment_codec_amr_startmode_cruft() runs on test_CT { var TestHdlrParams pars := f_gen_test_hdlr_pars(); @@ -4059,6 +4086,20 @@ f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 5 sub-slot 1 unused"); } +private function f_disable_all_sdcch() runs on test_CT { + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 0 borken"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 1 borken"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 2 borken"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 3 borken"); +} + +private function f_enable_all_sdcch() runs on test_CT { + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 0 unused"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 1 unused"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 2 unused"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 3 unused"); +} + /* Allow HR only */ private function f_TC_assignment_codec_xr_exhausted_req_hr(charstring id) runs on MSC_ConnHdlr { g_pars := f_gen_test_hdlr_pars(); @@ -8561,6 +8602,7 @@ execute( TC_ciph_mode_a5_3() ); execute( TC_assignment_codec_fr() ); + execute( TC_assignment_codec_fr_by_mode_modify() ); execute( TC_assignment_codec_hr() ); execute( TC_assignment_codec_efr() ); execute( TC_assignment_codec_amr_f() ); diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 5b5bd6b..6bc35c9 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -589,7 +589,8 @@ charstring host_aoip_tla, TestHdlrParamsMSCPool mscpool, boolean media_mgw_offer_ipv6, - OCT3 last_used_eutran_plmn optional + OCT3 last_used_eutran_plmn optional, + boolean expect_channel_mode_modify }; /* Note: Do not use valueof() to get a value of this template, use @@ -625,7 +626,8 @@ l3_info := omit }, media_mgw_offer_ipv6 := true, - last_used_eutran_plmn := omit + last_used_eutran_plmn := omit, + expect_channel_mode_modify := false } function f_create_chan_and_exp() runs on MSC_ConnHdlr { @@ -784,7 +786,9 @@ boolean assignment_done, RslChannelNr old_chan_nr, /* Modify related bits */ + PDU_ML3_NW_MS rr_channel_mode_modify_msg optional, boolean rr_modify_seen, + RSL_Message rsl_mode_modify_msg optional, boolean modify_done } @@ -796,7 +800,9 @@ old_lchan_rll_rel_req_seen := false, assignment_done := false, old_chan_nr := -, + rr_channel_mode_modify_msg := omit, rr_modify_seen := false, + rsl_mode_modify_msg := omit, modify_done := false } @@ -908,6 +914,7 @@ var PDU_ML3_NW_MS l3 := dec_PDU_ML3_NW_MS(rsl.ies[2].body.l3_info.payload); log("Rx L3 from net: ", l3); if (ischosen(l3.msgs.rrm.channelModeModify)) { + st.rr_channel_mode_modify_msg := l3; f_rsl_reply(ts_RRM_ModeModifyAck(l3.msgs.rrm.channelModeModify.channelDescription, l3.msgs.rrm.channelModeModify.channelMode), rsl); st.rr_modify_seen := true; @@ -915,6 +922,7 @@ repeat; } [st.voice_call and st.rr_modify_seen] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_MODE_MODIFY_REQ)) -> value rsl { + st.rsl_mode_modify_msg := rsl; RSL.send(ts_RSL_MODE_MODIFY_ACK(g_chan_nr)); st.modify_done := true; repeat; @@ -1138,6 +1146,7 @@ * channel, we must now check if the mode of the current * channel is compatible. If not we expect the BSC to modify * the mode */ + st.is_assignment := false; exp_modify := f_channel_needs_modify(BSCVTY, ass_cmd.pdu.bssmap.assignmentRequest.channelType, g_chan_nr); } @@ -1212,6 +1221,39 @@ mtc.stop; } + if (exp_modify) { + /* Verify that the RR Channel Mode Modify and RSL MODE MODIFY message asked for the expected channel + * mode. */ + /* TODO: more precisely expect the different types of speech? */ + var OCT1 rr_channel_mode := st.rr_channel_mode_modify_msg.msgs.rrm.channelModeModify.channelMode.mode; + + if (st.voice_call and rr_channel_mode == '00'O) { + setverdict(fail, "f_establish_fully(): Expected RR Channel Mode Modify", + " to a speech mode, but got channelMode == ", rr_channel_mode); + mtc.stop; + } else if (not st.voice_call and rr_channel_mode != '00'O) { + setverdict(fail, "f_establish_fully(): Expected RR Channel Mode Modify", + " to signalling mode, but got channelMode == ", rr_channel_mode); + mtc.stop; + } + + var RSL_IE_Body chan_mode_ie; + if (not f_rsl_find_ie(st.rsl_mode_modify_msg, RSL_IE_CHAN_MODE, chan_mode_ie)) { + setverdict(fail, "RSL MODE MODIFY message lacks a Channel Mode IE"); + mtc.stop; + } + var RSL_SpeechDataInd rsl_spd_ind := chan_mode_ie.chan_mode.spd_ind; + if (st.voice_call and rsl_spd_ind != RSL_SPDI_SPEECH) { + setverdict(fail, "f_establish_fully(): Expected RSL MODE MODIFY", + " to a speech mode, but got spd_ind == ", rsl_spd_ind); + mtc.stop; + } else if (not st.voice_call and rsl_spd_ind != RSL_SPDI_SIGN) { + setverdict(fail, "f_establish_fully(): Expected RSL MODE MODIFY", + " to signalling mode, but got spd_ind == ", rsl_spd_ind); + mtc.stop; + } + } + /* When the BSC detects that LCLS is possible it will cross the * connetions that point to the PBX side of the MGW. In our case this * is mgcp_conn[1]. The BSC performs this operation already before the -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf4efaed986de0bbd2b663313e837352cc139f0f Gerrit-Change-Number: 23808 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 00:44:24 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 00:44:24 +0000 Subject: Change in libosmocore[master]: RR: add VAMOS channel modes 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/libosmocore/+/23805 to look at the new patch set (#2). Change subject: RR: add VAMOS channel modes ...................................................................... RR: add VAMOS channel modes Also add functions to convert between VAMOS and non-VAMOS speech modes. Related: SYS#4895 SYS#5315 Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 --- M include/osmocom/gsm/gsm48.h M include/osmocom/gsm/protocol/gsm_04_08.h M src/gsm/gsm48.c M src/gsm/libosmogsm.map 4 files changed, 55 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/05/23805/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 Gerrit-Change-Number: 23805 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 00:44:24 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 00:44:24 +0000 Subject: Change in libosmocore[master]: RR: add missing Extended TSC Set IE 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/libosmocore/+/23806 to look at the new patch set (#2). Change subject: RR: add missing Extended TSC Set IE ...................................................................... RR: add missing Extended TSC Set IE Defined in 48.018 10.5.2.82. This will be used by Channel Mode Modify for VAMOS. Related: SYS#4895 SYS#5315 Change-Id: I9bad6e7121af43dfa9706635e58279ce672a4e14 --- M include/osmocom/gsm/protocol/gsm_04_08.h M src/gsm/gsm48.c 2 files changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/23806/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9bad6e7121af43dfa9706635e58279ce672a4e14 Gerrit-Change-Number: 23806 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 00:48:06 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 00:48:06 +0000 Subject: Change in libosmocore[master]: RR: add VAMOS channel modes In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23805 ) Change subject: RR: add VAMOS channel modes ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 Gerrit-Change-Number: 23805 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 00:48: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 Apr 20 00:48:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 00:48:09 +0000 Subject: Change in libosmocore[master]: RR: add missing Extended TSC Set IE In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23806 ) Change subject: RR: add missing Extended TSC Set IE ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9bad6e7121af43dfa9706635e58279ce672a4e14 Gerrit-Change-Number: 23806 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 00:48: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 Apr 20 00:52:49 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 00:52:49 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/src/osmo-bsc/bsc_vty.c at 2453 PS1, Line 2453: gsm_net_set_system_infos > So if it fails and returns x != 0, we still return CMD_SUCCESS? yes, because the CI got set successfully, doesn't make sense to fail if some neighbor config or system information of some other BTS is incorrect https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/src/osmo-bsc/osmo_bsc_main.c File src/osmo-bsc/osmo_bsc_main.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/src/osmo-bsc/osmo_bsc_main.c at 947 PS1, Line 947: gsm_net_set_system_infos > Do we care about the returned value? not really. This is mostly a convenience thing to see the neighbor ARFCNs in the 'show bts' output. System infos will be regenerated after OML and RSL bringup, that code path should care about the return value. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 00:52:49 +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 Tue Apr 20 01:18:58 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 01:18:58 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes 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/+/23785 to look at the new patch set (#2). Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... update neighbor ARFCNs on startup and config changes The effects of the neighbor configuration depend on the LAC, Cell Identity, ARFCN, BSIC configuration of neighbor cells. Make sure that the neighbor ARFCN list in the System Information is updated. This may seem rather aggressive: updating the SI of all BTS if only one config item changed. But indeed even modifying one config item of one BTS may cause a change in the neighbor relations that many other BTS may have to the changed BTS. For example, if many BTS configure a 'neighbor lac-ci 42 23', and this cell's config changes to LAC 43, all of those other BTS need to update their neighbor ARFCNs. Also update the system information even before the BTS are connected and started up. The main benefit here is that the VTY 'show bts N' command then already lists the correct neighbor ARFCNs. In gsm_bts_trx_set_system_infos(), make sure that the updated SI is only sent to TRXes that are actually usable, otherwise abis_rsl_sendmsg() spams the log with complaints that a message's dst == NULL. Still return an error rc in case a TRX is not connected, so that the CTRL command bts.N.send-new-system-informations accurately returns whether SI were actually sent to all TRXes. The desire to have the ARFCNs listed in the VTY before starting up BTSes came during analysis for Ifb54d9a91e9bca032c721f12c873c6216733e7b1, which fixes a bug that is now much easier to verify being fixed. Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_trx.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c 7 files changed, 48 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/23785/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 01:20:10 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 01:20:10 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h at 674 PS1, Line 674: int gsm_net_set_system_infos(); > int gsm_net_set_system_infos(void) we have a lot of function declarations without args that omit 'void' ... why add 'void'? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 01:20: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 Tue Apr 20 08:18:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 08:18:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix DATA.ind with SAPI BCCH wrongly txed as PDTCH In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23801 ) Change subject: pcu: Fix DATA.ind with SAPI BCCH wrongly txed as PDTCH ...................................................................... pcu: Fix DATA.ind with SAPI BCCH wrongly txed as PDTCH This fixes failure of test TC_rim_ran_info_req_single_rep It probably broke during some infra refactoring of the PCUIF_Components. Change-Id: Idf9a38280abd6243cc9ef09fc7d033e515c5be15 --- M pcu/PCUIF_Components.ttcn 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/pcu/PCUIF_Components.ttcn b/pcu/PCUIF_Components.ttcn index 6a24ed6..be7aaeb 100644 --- a/pcu/PCUIF_Components.ttcn +++ b/pcu/PCUIF_Components.ttcn @@ -327,7 +327,11 @@ /* Enqueue DATA.ind and RTS.req messages */ [] TC.receive(tr_PCUIF_MSG(PCU_IF_MSG_DATA_IND, bts_nr)) -> value pcu_msg { - f_PCUIF_MsgQueue_enqueue(pdtch_data_queue, pcu_msg); + if (pcu_msg.u.data_ind.sapi == PCU_IF_SAPI_BCCH) { + PCUIF.send(pcu_msg); /* Forward directly ASAP */ + } else { + f_PCUIF_MsgQueue_enqueue(pdtch_data_queue, pcu_msg); + } repeat; } [] TC.receive(tr_PCUIF_RTS_REQ(bts_nr, sapi := PCU_IF_SAPI_PDTCH)) -> value pcu_msg { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23801 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf9a38280abd6243cc9ef09fc7d033e515c5be15 Gerrit-Change-Number: 23801 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 08:23:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 08:23:21 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h at 674 PS1, Line 674: int gsm_net_set_system_infos(); > we have a lot of function declarations without args that omit 'void' ... [?] https://www.c-programming-simple-steps.com/what-is-void.html: "In C, if you don?t specify the parameters of a function, it can accept any number of parameters of any type. The way to define a function, that does not accept parameters in C is to use the keyword void as the only element in the parameters list." We already had issues in the past with not setting params as "void" which I had to fix, where wrong params or unused params end up being passed and the compiler doesn't warn, making code confusing. Having some functions not compling to it doesn't mean we should pay attention on new functions (and I'm sure I also introduce this kind of stuff myself from time to time). -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 08:23:21 +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 Apr 20 08:27:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 08:27:20 +0000 Subject: Change in libosmocore[master]: RR: add VAMOS channel modes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23805 ) Change subject: RR: add VAMOS channel modes ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 Gerrit-Change-Number: 23805 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 08:27:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 08:29:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 08:29:40 +0000 Subject: Change in libosmocore[master]: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23804 ) Change subject: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia25ac20539e8ac70fb5f70c1191bd58825151c68 Gerrit-Change-Number: 23804 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 08:29: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 Apr 20 08:54:56 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 20 Apr 2021 08:54:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix typo in NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23809 ) Change subject: fix typo in NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED ...................................................................... fix typo in NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED Change-Id: Ifbf86138f3f2e9c053c99b6f58c510d38bad4e88 --- M library/NS_Types.ttcn M library/Osmocom_Gb_Types.ttcn M pcu/PCU_Tests_SNS.ttcn 3 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/09/23809/1 diff --git a/library/NS_Types.ttcn b/library/NS_Types.ttcn index 6432d6c..63ed24d 100644 --- a/library/NS_Types.ttcn +++ b/library/NS_Types.ttcn @@ -56,7 +56,7 @@ NS_CAUSE_BVCI_UNKNOWN_AT_NSE ('00000101'B), NS_CAUSE_SEMANTICALLY_INCORRECT_PDU ('00001000'B), NS_CAUSE_PDU_NOT_COMPATIBLE_WITH_PROTOCOL_STATE ('00001010'B), - NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED ('00001011'B), + NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED ('00001011'B), NS_CAUSE_INVALID_ESSENTIAL_IE ('00001100'B), NS_CAUSE_MISSING_ESSENTIAL_IE ('00001101'B), NS_CAUSE_INVALID_NR_OF_IPv4_ENDPOINTS ('00001110'B), diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 2bbc508..0d7c610 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -65,7 +65,7 @@ NS_CAUSE_BVCI_UNKNOWN_AT_NSE ('00000101'B), NS_CAUSE_SEMANTICALLY_INCORRECT_PDU ('00001000'B), NS_CAUSE_PDU_NOT_COMPATIBLE_WITH_PROTOCOL_STATE ('00001010'B), - NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED ('00001011'B), + NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED ('00001011'B), NS_CAUSE_INVALID_ESSENTIAL_IE ('00001100'B), NS_CAUSE_MISSING_ESSENTIAL_IE ('00001101'B), NS_CAUSE_INVALID_NR_OF_IPv4_ENDPOINTS ('00001110'B), diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index 4fca26e..16c0acd 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -220,7 +220,7 @@ testcase TC_sns_po_size_nack() runs on RAW_Test_CT { f_init_ns_codec(mp_nsconfig); f_init_pcuif(); - f_incoming_sns_size(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); + f_incoming_sns_size(NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED); /* FIXME: ensure we don't get a SNS-CONFIG */ /* FIXME: ensure we get re-transmitted SNS-SIZE attempts */ f_sleep(10.0); @@ -244,7 +244,7 @@ f_init_ns_codec(mp_nsconfig); f_init_pcuif(); f_incoming_sns_size(); - f_incoming_sns_config(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); + f_incoming_sns_config(NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED); /* FIXME: ensure we get re-transmitted SNS-CONFIG attempts */ f_sleep(10.0); setverdict(pass); @@ -452,7 +452,7 @@ 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); + f_outgoing_sns_add(idx_add := 0, w_sig := 0, w_user := 1, idx := 0, cause := NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED); setverdict(pass); f_clean_ns_codec(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23809 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ifbf86138f3f2e9c053c99b6f58c510d38bad4e88 Gerrit-Change-Number: 23809 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 Apr 20 09:18:39 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 20 Apr 2021 09:18:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix typo in NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23809 ) Change subject: fix typo in NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23809 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ifbf86138f3f2e9c053c99b6f58c510d38bad4e88 Gerrit-Change-Number: 23809 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Tue, 20 Apr 2021 09:18: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 Apr 20 09:31:43 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 20 Apr 2021 09:31:43 +0000 Subject: Change in libosmocore[master]: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23804 ) Change subject: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23804/1/src/gsm/gsm0808_utils.c File src/gsm/gsm0808_utils.c: https://gerrit.osmocom.org/c/libosmocore/+/23804/1/src/gsm/gsm0808_utils.c at 1582 PS1, Line 1582: if (s15_s0 & GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20) { I have checked this back. The constant GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20 is defined as 0x0002. So the mask has indeed no effect, however its probably there to make clear that in the comparison only the lower 8 bit matter. I would write 0x00ff to make it even more clearer, but thats a personal opinion. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia25ac20539e8ac70fb5f70c1191bd58825151c68 Gerrit-Change-Number: 23804 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 09:31:43 +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 Apr 20 09:39:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 09:39:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_channel_needs_modify(): ask actual TCH lchan mode via VTY In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 ) Change subject: f_channel_needs_modify(): ask actual TCH lchan mode via VTY ...................................................................... Patch Set 1: IMHO having to parse that kind of info from VTY looks really hacky. Cannot you infer if it's in signalling mode from test/context? Like checking type of assignment + type of channel being used. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 Gerrit-Change-Number: 23807 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 09:39:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 09:40:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 09:40:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_channel_needs_modify(): ask actual TCH lchan mode via VTY In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 ) Change subject: f_channel_needs_modify(): ask actual TCH lchan mode via VTY ...................................................................... Patch Set 1: I mean, we shouldn't rely on what osmo-bsc tells us about it, since we are actually testing it. We should know from the test what to expect without asking. Perhaps passing g_pars.expect_channel_mode_modify there or similar would help? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 Gerrit-Change-Number: 23807 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 09:40: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 Tue Apr 20 09:47:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 09:47:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_assignment_codec_fr_by_mode_modify In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 ) Change subject: bsc: add TC_assignment_codec_fr_by_mode_modify ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/1/bsc/MSC_ConnectionHandler.ttcn File bsc/MSC_ConnectionHandler.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/1/bsc/MSC_ConnectionHandler.ttcn at 592 PS1, Line 592: OCT3 last_used_eutran_plmn optional, strange, this looks like coming from my recent patch? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf4efaed986de0bbd2b663313e837352cc139f0f Gerrit-Change-Number: 23808 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 09:47: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 Apr 20 09:49:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 09:49:12 +0000 Subject: Change in libosmocore[master]: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23804 ) Change subject: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect ...................................................................... Patch Set 1: yes I can understand why it was there before, I'm happy with or without it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia25ac20539e8ac70fb5f70c1191bd58825151c68 Gerrit-Change-Number: 23804 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 09:49:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 10:29:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 10:29:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix TC_n3105_max_t3195 References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 ) Change subject: pcu: Fix TC_n3105_max_t3195 ...................................................................... pcu: Fix TC_n3105_max_t3195 The previously request Dummy block was processed later in an unrelated place of the test, hence making expectations fail. The condition T_3195.running doesn't really change the logic/behavior, but removes an annoying warning in log files everytime the alt step is run. Change-Id: I4aa25d1220ccbeb8f1870f36651c9d6793a452b1 --- M pcu/PCU_Tests.ttcn 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/10/23810/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index d4fe004..cbd3dc1 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1746,9 +1746,13 @@ block_nr := nr.blk_nr)); repeat; } - [] T_3195.timeout { + [T_3195.running] T_3195.timeout { log("T_3195 timeout"); - /* Done in alt */ + /* Done in alt, wait for pending RTS initiated previously in + above case before continuing (expect /* Dummy block): */ + BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), + tr_RLCMAC_DUMMY_CTRL)); } [] BTS.receive { setverdict(fail, "Unexpected BTS message"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4aa25d1220ccbeb8f1870f36651c9d6793a452b1 Gerrit-Change-Number: 23810 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 Apr 20 12:08:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 12:08:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_n3103_max_t3169 References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 ) Change subject: pcu: Introduce test TC_n3103_max_t3169 ...................................................................... pcu: Introduce test TC_n3103_max_t3169 Related: OS#5033 Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e --- M pcu/PCU_Tests.ttcn 1 file changed, 103 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/11/23811/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index cbd3dc1..37f0f7e 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1418,6 +1418,108 @@ f_shutdown(__BFILE__, __LINE__, final := true); } + +/* Verify after N3103_MAX is reached, T3169 is started and upon timeout TBF is + freed and no longer available. Trigger it by sending a few UL blocks CTRL ACKING + the final UL ACK sent at us. */ +testcase TC_n3103_max_t3169() runs on RAW_PCU_Test_CT { + var PCUIF_info_ind info_ind; + var BTS_PDTCH_Block data_msg; + var RlcmacDlBlock dl_block; + var uint32_t sched_fn; + var template (value) TsTrxBtsNum nr; + var template RlcmacDlBlock exp_ul_ack; + var template UlAckNackGprs exp_ul_ack_sub; + var GprsMS ms; + const integer N3103_MAX := 2; /* N3103 is usually somewhere 2-5 */ + var integer N3103 := 0; + timer T_3169 := 1.0; + + /* 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 */ + info_ind := valueof(ts_PCUIF_INFO_default(c_PCUIF_Flags_noMCS)); + info_ind.n3103 := N3103_MAX; + info_ind.t3169 := 1; + f_init_raw(testcasename(), info_ind); + + /* Establish an Uplink TBF */ + f_ms_establish_ul_tbf(ms); + + f_ms_tx_ul_data_block_multi(ms, 5); + exp_ul_ack_sub := tr_UlAckNackGprs(*, tr_AckNackDescription('1'B), *); + exp_ul_ack := tr_RLCMAC_UL_ACK_NACK_GPRS(ms.ul_tbf.tfi, exp_ul_ack_sub); + + nr := ts_TsTrxBtsNum; + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), + block_nr := nr.blk_nr)); + alt { + [N3103 < N3103_MAX] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), + exp_ul_ack)) -> value data_msg { + if (not f_dl_block_rrbp_valid(data_msg.dl_block)) { + setverdict(fail, "Unexpected DL BLOCK has no RRBP: ", data_msg.dl_block); + f_shutdown(__BFILE__, __LINE__); + } + + nr := ts_TsTrxBtsNum; + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), + block_nr := nr.blk_nr)); + N3103 := N3103 + 1; + if (N3103 == N3103_MAX) { + /* At this point in time (N3103_MAX reached), PCU is + moving the TBF to RELEASE state so no data/ctrl for + it is tx'ed, hence the dummy blocks: */ + T_3169.start; + } + repeat; + } + [N3103 >= N3103_MAX] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), + exp_ul_ack)) -> value data_msg { + setverdict(fail, "Unexpected UL ACK/NACK after reaching N3103_MAX"); + f_shutdown(__BFILE__, __LINE__); + } + [] as_ms_rx_ignore_dummy(ms, nr); + [T_3169.running] T_3169.timeout { + log("T_3169 timeout"); + /* Done in alt, wait for pending RTS initiated previously in + above case before continuing (expect /* Dummy block): */ + BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), + tr_RLCMAC_DUMMY_CTRL)); + } + [] BTS.receive { + setverdict(fail, "Unexpected BTS message"); + f_shutdown(__BFILE__, __LINE__); + } + } + + /* Now that T3169 has expired, establishing a Ul TBF should provide same + /* USFs as per previous TBF since they were freed at expiration time: */ + var uint3_t old_usf[8] := ms.ul_tbf.usf; + var uint5_t old_tfi := ms.ul_tbf.tfi; + f_ms_establish_ul_tbf(ms); + if (old_tfi != ms.ul_tbf.tfi) { + setverdict(fail, "Unexpected TFI change: ", ms.ul_tbf.tfi, " vs exp ", old_tfi); + f_shutdown(__BFILE__, __LINE__); + } + for (var integer i := 0; i < 8; i := i +1) { + if (ms.ul_tbf.usf[i] != old_usf[i]) { + setverdict(fail, "Unexpected USF change: ", ms.ul_tbf.usf[i], " vs exp ", old_usf[i]); + f_shutdown(__BFILE__, __LINE__); + } + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + /* Verify that a Downlink TBF is kept available until T3191 fires, at which * point the TBF is no longer available. In order to get to start of T3191, we * have to wait for x2031 since that marks the IDLE TBF time, that is, the delay @@ -5667,6 +5769,7 @@ execute( TC_mcs_max_dl() ); execute( TC_t3169() ); execute( TC_n3101_max_t3169() ); + execute( TC_n3103_max_t3169() ); execute( TC_x2031_t3191() ); execute( TC_zero_x2031_t3191() ); execute( TC_t3193() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e Gerrit-Change-Number: 23811 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 Apr 20 14:25:05 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 14:25:05 +0000 Subject: Change in libosmocore[master]: RR: add VAMOS channel modes In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23805 ) Change subject: RR: add VAMOS channel modes ...................................................................... Patch Set 2: Code-Review+2 combine 2x +1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 Gerrit-Change-Number: 23805 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 14:25: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 Apr 20 14:25:23 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 14:25:23 +0000 Subject: Change in libosmocore[master]: RR: add VAMOS channel modes In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23805 ) Change subject: RR: add VAMOS channel modes ...................................................................... RR: add VAMOS channel modes Also add functions to convert between VAMOS and non-VAMOS speech modes. Related: SYS#4895 SYS#5315 Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 --- M include/osmocom/gsm/gsm48.h M include/osmocom/gsm/protocol/gsm_04_08.h M src/gsm/gsm48.c M src/gsm/libosmogsm.map 4 files changed, 55 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsm48.h b/include/osmocom/gsm/gsm48.h index fdaa572..c1ca630 100644 --- a/include/osmocom/gsm/gsm48.h +++ b/include/osmocom/gsm/gsm48.h @@ -118,3 +118,6 @@ #define gsm48_push_l3hdr_tid(msg, pdisc, tid, msg_type) \ gsm48_push_l3hdr(msg, (pdisc & 0x0f) | (tid << 4), msg_type) + +enum gsm48_chan_mode gsm48_chan_mode_to_vamos(enum gsm48_chan_mode mode); +enum gsm48_chan_mode gsm48_chan_mode_to_non_vamos(enum gsm48_chan_mode mode); diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index a103c32..c9cc667 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -749,6 +749,10 @@ GSM48_CMODE_DATA_12k0 = 0x03, GSM48_CMODE_DATA_6k0 = 0x0b, GSM48_CMODE_DATA_3k6 = 0x13, + GSM48_CMODE_SPEECH_V1_VAMOS = 0xc1, + GSM48_CMODE_SPEECH_V2_VAMOS = 0xc2, + GSM48_CMODE_SPEECH_V3_VAMOS = 0xc3, + GSM48_CMODE_SPEECH_V5_VAMOS = 0xc5, }; extern const struct value_string gsm48_chan_mode_names[]; diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index e12fda5..927e639 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -432,9 +432,55 @@ { GSM48_CMODE_DATA_12k0, "DATA_12k0" }, { GSM48_CMODE_DATA_6k0, "DATA_6k0" }, { GSM48_CMODE_DATA_3k6, "DATA_3k6" }, + { GSM48_CMODE_SPEECH_V1_VAMOS, "SPEECH_V1_VAMOS" }, + { GSM48_CMODE_SPEECH_V2_VAMOS, "SPEECH_V2_VAMOS" }, + { GSM48_CMODE_SPEECH_V3_VAMOS, "SPEECH_V3_VAMOS" }, + { GSM48_CMODE_SPEECH_V5_VAMOS, "SPEECH_V5_VAMOS" }, { 0, NULL }, }; +/*! Translate GSM48_CMODE_SPEECH_* to its corresponding GSM48_CMODE_SPEECH_*_VAMOS mode. + * If the mode has no equivalent VAMOS mode, return a negative value. + */ +enum gsm48_chan_mode gsm48_chan_mode_to_vamos(enum gsm48_chan_mode mode) +{ + switch (mode) { + case GSM48_CMODE_SPEECH_V1: + case GSM48_CMODE_SPEECH_V1_VAMOS: + return GSM48_CMODE_SPEECH_V1_VAMOS; + case GSM48_CMODE_SPEECH_EFR: + case GSM48_CMODE_SPEECH_V2_VAMOS: + return GSM48_CMODE_SPEECH_V2_VAMOS; + case GSM48_CMODE_SPEECH_AMR: + case GSM48_CMODE_SPEECH_V3_VAMOS: + return GSM48_CMODE_SPEECH_V3_VAMOS; + case GSM48_CMODE_SPEECH_V5_VAMOS: + return GSM48_CMODE_SPEECH_V5_VAMOS; + default: + return -1; + } +} + +/*! Translate GSM48_CMODE_SPEECH_*_VAMOS to its corresponding GSM48_CMODE_SPEECH_* non-vamos mode. + * If the mode has no equivalent non-VAMOS mode, return a negative value. + */ +enum gsm48_chan_mode gsm48_chan_mode_to_non_vamos(enum gsm48_chan_mode mode) +{ + switch (mode) { + case GSM48_CMODE_SPEECH_V1_VAMOS: + case GSM48_CMODE_SPEECH_V1: + return GSM48_CMODE_SPEECH_V1; + case GSM48_CMODE_SPEECH_V2_VAMOS: + case GSM48_CMODE_SPEECH_EFR: + return GSM48_CMODE_SPEECH_EFR; + case GSM48_CMODE_SPEECH_V3_VAMOS: + case GSM48_CMODE_SPEECH_AMR: + return GSM48_CMODE_SPEECH_AMR; + default: + return -1; + } +} + const struct value_string gsm_chan_t_names[] = { { GSM_LCHAN_NONE, "NONE" }, { GSM_LCHAN_SDCCH, "SDCCH" }, diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 7b2c18f..56a57b8 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -372,6 +372,8 @@ gsm48_generate_mid_from_imsi; gsm48_generate_mid_from_tmsi; gsm48_mi_to_string; +gsm48_chan_mode_to_vamos; +gsm48_chan_mode_to_non_vamos; osmo_mobile_identity_to_str_buf; osmo_mobile_identity_to_str_c; osmo_mobile_identity_cmp; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie0ea592da5610ae70290106d004e549cf3212a89 Gerrit-Change-Number: 23805 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Apr 20 14:25:23 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 14:25:23 +0000 Subject: Change in libosmocore[master]: RR: add missing Extended TSC Set IE In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23806 ) Change subject: RR: add missing Extended TSC Set IE ...................................................................... RR: add missing Extended TSC Set IE Defined in 48.018 10.5.2.82. This will be used by Channel Mode Modify for VAMOS. Related: SYS#4895 SYS#5315 Change-Id: I9bad6e7121af43dfa9706635e58279ce672a4e14 --- M include/osmocom/gsm/protocol/gsm_04_08.h M src/gsm/gsm48.c 2 files changed, 2 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index c9cc667..3fa9419 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -1729,6 +1729,7 @@ #define GSM48_IE_CHDES_2_AFTER 0x64 #define GSM48_IE_MODE_SEC_CH 0x66 #define GSM48_IE_F_CH_SEQ_AFTER 0x69 +#define GSM48_IE_EXTENDED_TSC_SET 0x6d #define GSM48_IE_MA_AFTER 0x72 #define GSM48_IE_BA_RANGE 0x73 #define GSM48_IE_GROUP_CHDES 0x74 diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 927e639..02489c9 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -124,6 +124,7 @@ [GSM48_IE_CHDES_2_AFTER] = { TLV_TYPE_FIXED, 3 }, [GSM48_IE_MODE_SEC_CH] = { TLV_TYPE_TV }, [GSM48_IE_F_CH_SEQ_AFTER] = { TLV_TYPE_FIXED, 9 }, + [GSM48_IE_EXTENDED_TSC_SET] = { TLV_TYPE_TV }, [GSM48_IE_MA_AFTER] = { TLV_TYPE_TLV }, [GSM48_IE_BA_RANGE] = { TLV_TYPE_TLV }, [GSM48_IE_GROUP_CHDES] = { TLV_TYPE_TLV }, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9bad6e7121af43dfa9706635e58279ce672a4e14 Gerrit-Change-Number: 23806 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 14:40:26 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 14:40:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_channel_needs_modify(): ask actual TCH lchan mode via VTY In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 ) Change subject: f_channel_needs_modify(): ask actual TCH lchan mode via VTY ...................................................................... Patch Set 1: > Patch Set 1: > > I mean, we shouldn't rely on what osmo-bsc tells us about it, since we are actually testing it. We should know from the test what to expect without asking. Perhaps passing g_pars.expect_channel_mode_modify there or similar would help? I actually disagree the way f_establish_fully() currently does all sorts of magic decisions like this. I would much more appreciate a test that expects what should happen 1:1 and not assume/infer important parts of the test in the way f_establish_fully() does. But I am not going to completely refactor f_establish_fully(), we're using that everywhere and it is likely going to cause quite some effort. I'm also not going to duplicate and modify that code, because I'd have to also duplicate a lot of the channel activation testing code and, as ugly to me as it is, it is apparently working quite well for the last years. The quickest way to achieving a working Mode Modify test is asking the BSC for the current channel mode. At first I thought, indeed, we could also use that mad f_rslem_get_last_act() to recall the last channel activation message and read the mode from that. But in fact we would also have to check whether the last activation was ACKed or NACKed, whether another Channel Mode Modify happened in the meantime and changed the mode, and whether the channel was released or not. So, directly asking the BSC for the current actual mode is the most accurate and least error prone way to keep using f_establish_fully(). -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 Gerrit-Change-Number: 23807 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 14:40: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 Apr 20 14:49:32 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 14:49:32 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h at 674 PS1, Line 674: int gsm_net_set_system_infos(); > https://www.c-programming-simple-steps.com/what-is-void.html: [?] really, any number of any parameters??? C still does surprise me with some really crazy quirk every now and then. Maybe then we should do a sed to replace all / most parameter-less function declarations with "(void)" and have a check in the gerrit verfication job that prevents those in the future? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 14:49:32 +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 Apr 20 14:50:25 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 20 Apr 2021 14:50:25 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes 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/+/23785 to look at the new patch set (#3). Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... update neighbor ARFCNs on startup and config changes The effects of the neighbor configuration depend on the LAC, Cell Identity, ARFCN, BSIC configuration of neighbor cells. Make sure that the neighbor ARFCN list in the System Information is updated. This may seem rather aggressive: updating the SI of all BTS if only one config item changed. But indeed even modifying one config item of one BTS may cause a change in the neighbor relations that many other BTS may have to the changed BTS. For example, if many BTS configure a 'neighbor lac-ci 42 23', and this cell's config changes to LAC 43, all of those other BTS need to update their neighbor ARFCNs. Also update the system information even before the BTS are connected and started up. The main benefit here is that the VTY 'show bts N' command then already lists the correct neighbor ARFCNs. In gsm_bts_trx_set_system_infos(), make sure that the updated SI is only sent to TRXes that are actually usable, otherwise abis_rsl_sendmsg() spams the log with complaints that a message's dst == NULL. Still return an error rc in case a TRX is not connected, so that the CTRL command bts.N.send-new-system-informations accurately returns whether SI were actually sent to all TRXes. The desire to have the ARFCNs listed in the VTY before starting up BTSes came during analysis for Ifb54d9a91e9bca032c721f12c873c6216733e7b1, which fixes a bug that is now much easier to verify being fixed. Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_trx.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c 7 files changed, 48 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/23785/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 14:59:47 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Tue, 20 Apr 2021 14:59:47 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 3: Hi all, I've rebased to make sure this can be dusted off properly. Daniel, if you get a chance please let me know what I can change to make this more in line with how the stats system was intended. I know there was debate on counter vs stat. Thanks, -Michael' -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 3 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 14:59:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 15:40:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 15:40:17 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h at 674 PS1, Line 674: int gsm_net_set_system_infos(); > really, any number of any parameters??? C still does surprise me with some really crazy quirk every [?] patches welcome :D -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 15:40:17 +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 Apr 20 15:41:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 15:41:25 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 15:41: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 Apr 20 16:03:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 20 Apr 2021 16:03:10 +0000 Subject: Change in osmo-mgw[master]: Fix OSMO_ASSERT() in case rtp.end.addr is still uninitialized References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23812 ) Change subject: Fix OSMO_ASSERT() in case rtp.end.addr is still uninitialized ...................................................................... Fix OSMO_ASSERT() in case rtp.end.addr is still uninitialized In case the local RTP socket IP/port has not yet been configured, conn->u.rtp.end.addr.u.sa.sa_family is still uninitialized. When receiving an inbound RTP packet that we want to loop back, we hence run into the OSMO_ASSERT() that the socket sa_family (0) is not AF_INET nor AF_INET6. We have received a packet from a given source address on this socket, and we hence should be able to send a response back. This patch was written without a lot of understanding of the larger osmo-mgw codebase. Maybe the problem is that conn->u.rtp.end.addr.u.sa.sa_family should be set correctly during the CRCX time already. Then of course that would be amore proper fix than this one. Change-Id: I2ecf81447e6a92fb566baba53fcf819f4029d54d Closes: OS#5123 --- M src/libosmo-mgcp/mgcp_network.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/12/23812/1 diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 6b31f2b..bd6a94e 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1269,7 +1269,8 @@ * address data from the UDP packet header to patch the * outgoing address in connection on the fly */ if (conn->u.rtp.end.rtp_port == 0) { - OSMO_ASSERT(conn->u.rtp.end.addr.u.sa.sa_family == from_addr->u.sa.sa_family); + OSMO_ASSERT(conn->u.rtp.end.addr.u.sa.sa_family == 0 || + conn->u.rtp.end.addr.u.sa.sa_family == from_addr->u.sa.sa_family); switch (from_addr->u.sa.sa_family) { case AF_INET: conn->u.rtp.end.addr.u.sin.sin_addr = from_addr->u.sin.sin_addr; @@ -1340,7 +1341,8 @@ * address data from the UDP packet header to patch the * outgoing address in connection on the fly */ if (conn->u.rtp.end.rtp_port == 0) { - OSMO_ASSERT(conn->u.rtp.end.addr.u.sa.sa_family == from_addr->u.sa.sa_family); + OSMO_ASSERT(conn->u.rtp.end.addr.u.sa.sa_family == 0 || + conn->u.rtp.end.addr.u.sa.sa_family == from_addr->u.sa.sa_family); switch (from_addr->u.sa.sa_family) { case AF_INET: conn->u.rtp.end.addr.u.sin.sin_addr = from_addr->u.sin.sin_addr; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23812 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2ecf81447e6a92fb566baba53fcf819f4029d54d Gerrit-Change-Number: 23812 Gerrit-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 Apr 20 16:11:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 16:11:13 +0000 Subject: Change in osmo-mgw[master]: Fix OSMO_ASSERT() in case rtp.end.addr is still uninitialized In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23812 ) Change subject: Fix OSMO_ASSERT() in case rtp.end.addr is still uninitialized ...................................................................... Patch Set 1: Code-Review-1 Marking -1 for now, checking further. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23812 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2ecf81447e6a92fb566baba53fcf819f4029d54d Gerrit-Change-Number: 23812 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 16:11:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 16:15:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 20 Apr 2021 16:15:08 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 16:15:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 16:15:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 20 Apr 2021 16:15:46 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h at 674 PS1, Line 674: int gsm_net_set_system_infos(); > patches welcome :D I wasn't aware we had any parameterless functions wtihout 'void' in their declaration? If we do, then that clearly is a mistake/bug. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 16:15:46 +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 Apr 20 16:16:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 20 Apr 2021 16:16:54 +0000 Subject: Change in osmo-pcu[master]: RIM: Improve logging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23800 ) Change subject: RIM: Improve logging ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0adbb8ea4480912463dc1dded6c06a1b8f7ed807 Gerrit-Change-Number: 23800 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 20 Apr 2021 16:16: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 Apr 20 16:17:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 20 Apr 2021 16:17:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Fix tests TC_si2quater_*_earfcns In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23797 ) Change subject: bsc: Fix tests TC_si2quater_*_earfcns ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3073152475a338b29214393a9b550891d52e1f24 Gerrit-Change-Number: 23797 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 20 Apr 2021 16: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 Tue Apr 20 16:19:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 20 Apr 2021 16:19:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 ) Change subject: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id34924bbf0a5cf08b4b6f5ea56a10cef6b69c877 Gerrit-Change-Number: 23798 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 16:19: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 Apr 20 16:19:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 20 Apr 2021 16:19:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Fix tests TC_si2quater_*_earfcns In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23797 ) Change subject: bsc: Fix tests TC_si2quater_*_earfcns ...................................................................... bsc: Fix tests TC_si2quater_*_earfcns Update TC_si2quater_*_earfcns test to trigger Tx of SI2quater eutran neigh list properly, by sending a CommonID with "Last Used E-UTRAN PLMN ID" IE. This should have been updated in a recent commit (see below). Fixes: 841b90daf281c4bdeb73fb2956f195c88e2bff4c Related: SYS#5337 Change-Id: I3073152475a338b29214393a9b550891d52e1f24 --- M bsc/BSC_Tests.ttcn 1 file changed, 3 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/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 1f8f951..16afbf8 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2366,6 +2366,9 @@ var DchanTuple dt; dt := f_est_dchan('23'O, 23, '00010203040506'O); + /* Send CommonID with some random PLMN (BSC doesn't take it into account + * yet when generating the EUTRAN neigh list in RR CHannel Release) */ + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_CommonId('001019876543210'H, '323454'O))); /* Instruct BSC to clear channel */ var BssmapCause cause := 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3073152475a338b29214393a9b550891d52e1f24 Gerrit-Change-Number: 23797 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 16:19:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 20 Apr 2021 16:19:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 ) Change subject: bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out ...................................................................... bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out Related: SYS#5337 Change-Id: Id34924bbf0a5cf08b4b6f5ea56a10cef6b69c877 --- M bsc/BSC_Tests.ttcn M library/BSSMAP_Templates.ttcn 2 files changed, 87 insertions(+), 22 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 16afbf8..bc243b1 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -4767,19 +4767,12 @@ BSSAP.receive(tr_BSSMAP_ClearComplete); } -private function f_tc_ho_out_of_this_bsc(charstring id) runs on MSC_ConnHdlr { - g_pars := f_gen_test_hdlr_pars(); - - var PDU_BSSAP ass_req := f_gen_ass_req(); - ass_req.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType); - ass_req.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); - var template PDU_BSSAP exp_compl := f_gen_exp_compl(); - f_establish_fully(ass_req, exp_compl); +private function f_ho_out_of_this_bsc(template (omit) BSSMAP_oldToNewBSSIEs exp_oldToNewBSSIEs := omit) runs on MSC_ConnHdlr { f_bts_0_cfg(BSCVTY, {"neighbor lac 99 arfcn 123 bsic any"}); f_vty_transceive(BSCVTY, "handover any to arfcn 123 bsic any"); - BSSAP.receive(tr_BSSMAP_HandoverRequired); + BSSAP.receive(tr_BSSMAP_HandoverRequired(exp_oldToNewBSSIEs)); f_sleep(0.5); /* The MSC negotiates Handover Request and Handover Request Ack with @@ -4820,6 +4813,17 @@ f_expect_dlcx_conns(); setverdict(pass); +} + +private function f_tc_ho_out_of_this_bsc(charstring id) runs on MSC_ConnHdlr { + g_pars := f_gen_test_hdlr_pars(); + var PDU_BSSAP ass_req := f_gen_ass_req(); + ass_req.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType); + ass_req.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + var template PDU_BSSAP exp_compl := f_gen_exp_compl(); + f_establish_fully(ass_req, exp_compl); + + f_ho_out_of_this_bsc(); f_sleep(1.0); } testcase TC_ho_out_of_this_bsc() runs on test_CT { @@ -5105,14 +5109,12 @@ f_shutdown_helper(); } -private function f_tc_ho_into_this_bsc(charstring id) runs on MSC_ConnHdlr { +private function f_ho_into_this_bsc(charstring id, template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit) runs on MSC_ConnHdlr { /* Hack: the proper way would be to wait for the BSSMAP Handover Request ACK and extract the * actual assigned chan_nr from its L3 (RR Handover Command) message. But osmo-bsc starts acting * on the lchan even before we get a chance to evaluate the BSSMAP Handover Request ACK. So we * need to assume that osmo-bsc will activate TS 1 and already set up this lchan's RSL emulation * before we get started. */ - var template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit; - var template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE; var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, RSL_CHAN_NR_Bm_ACCH)); f_rslem_register(0, new_chan_nr); g_chan_nr := new_chan_nr; @@ -5122,11 +5124,6 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - if (not istemplatekind(g_pars.last_used_eutran_plmn, "omit")) { - oldToNewBSSIEs := f_ts_BSSMAP_oldToNewBSSIEs(ts_BSSMAP_LastUsedEUTRANPLMNId(g_pars.last_used_eutran_plmn)); - exp_rr_rel_tmpl := tr_RRM_RR_RELEASE_CellSelectInd; - } - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req(aoip_tla := g_pars.host_aoip_tla, oldToNewBSSIEs := oldToNewBSSIEs))); @@ -5174,7 +5171,17 @@ enc_PDU_ML3_MS_NW(l3_tx))); BSSAP.receive(tr_BSSMAP_HandoverComplete); + setverdict(pass); +} +private function f_tc_ho_into_this_bsc(charstring id) runs on MSC_ConnHdlr { + var template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE; + var template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit; + if (not istemplatekind(g_pars.last_used_eutran_plmn, "omit")) { + oldToNewBSSIEs := f_ts_BSSMAP_oldToNewBSSIEs(ts_BSSMAP_LastUsedEUTRANPLMNId(g_pars.last_used_eutran_plmn)); + exp_rr_rel_tmpl := tr_RRM_RR_RELEASE_CellSelectInd; + } + f_ho_into_this_bsc(id, oldToNewBSSIEs); f_perform_clear(RSL, exp_rr_rel_tmpl); setverdict(pass); } @@ -5213,7 +5220,7 @@ } /* Similar to TC_ho_into_this_bsc, but when in SRVCC, HO Req contains "Old BSS - to New BSS Information" IE with "Last Used E-UTRAN PLMN Id", whihch, when the + to New BSS Information" IE with "Last Used E-UTRAN PLMN Id", which, when the channel is later released (RR CHannel Release), should trigger inclusion of IE "Cell Selection Indicator after Release of all TCH and SDCCH" with E-UTRAN neighbors. */ @@ -5224,6 +5231,43 @@ f_shutdown_helper(); } +private function f_tc_srvcc_eutran_to_geran_ho_out(charstring id) runs on MSC_ConnHdlr { + var template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs; + oldToNewBSSIEs := f_ts_BSSMAP_oldToNewBSSIEs(ts_BSSMAP_LastUsedEUTRANPLMNId(g_pars.last_used_eutran_plmn)); + f_ho_into_this_bsc(id, oldToNewBSSIEs); + f_ho_out_of_this_bsc(oldToNewBSSIEs); + setverdict(pass); +} +/* First, HO into BSC from EUTRAN (SRVCC): HO Request contains "Old BSS to New + BSS Information" IE with "Last Used E-UTRAN PLMN Id". + Second, HO to another BSC: HO Required contains "Old BSS to New BSS Information" + IE with "Last Used E-UTRAN PLMN Id" from first step. */ +testcase TC_srvcc_eutran_to_geran_ho_out() runs on test_CT { + var MSC_ConnHdlr vc_conn; + var TestHdlrParams pars := f_gen_test_hdlr_pars(); + + f_init(1, true); + f_sleep(1.0); + + f_ctrs_bsc_and_bts_init(); + + pars.last_used_eutran_plmn := '323454'O; + pars.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + + vc_conn := f_start_handler(refers(f_tc_srvcc_eutran_to_geran_ho_out), pars); + vc_conn.done; + + f_ctrs_bsc_and_bts_add(0, "handover:attempted", 2); + f_ctrs_bsc_and_bts_add(0, "handover:completed", 2); + f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:attempted", 1); + f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:completed", 1); + f_ctrs_bsc_and_bts_add(0, "interbsc_ho_out:attempted", 1); + f_ctrs_bsc_and_bts_add(0, "interbsc_ho_out:completed", 1); + f_ctrs_bsc_and_bts_verify(); + f_shutdown_helper(); +} + private function f_tc_ho_in_fail_msc_clears(charstring id) runs on MSC_ConnHdlr { var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, RSL_CHAN_NR_Bm_ACCH)); f_rslem_register(0, new_chan_nr); @@ -8673,6 +8717,7 @@ execute( TC_ho_into_this_bsc_tla_v6() ); } execute( TC_srvcc_eutran_to_geran() ); + execute( TC_srvcc_eutran_to_geran_ho_out() ); execute( TC_ho_in_fail_msc_clears() ); execute( TC_ho_in_fail_msc_clears_after_ho_detect() ); execute( TC_ho_in_fail_no_detect() ); diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 8049bb0..2b99a5b 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -232,6 +232,24 @@ } } +template BSSMAP_IE_OldToNewBSSInfo tr_BSSMAP_IE_OldToNewBSSInfo(template (value) BSSMAP_oldToNewBSSIEs val) := { + elementIdentifier := '3A'O, + lengthIndicator := ?, /* overwritten by codec */ + oldToNewBSSIEs := enc_BSSMAP_oldToNewBSSIEs(valueof(val)) +} +function f_tr_BSSMAP_IE_OldToNewBSSInfo(template BSSMAP_oldToNewBSSIEs val := *) + return template BSSMAP_IE_OldToNewBSSInfo { + if (istemplatekind(val, "*")) { + return *; + } else if (istemplatekind(val, "?")) { + return ?; + } else if (istemplatekind(val, "omit")) { + return omit; + } else { + return tr_BSSMAP_IE_OldToNewBSSInfo(val); + } +} + template (value) BSSMAP_IE_Osmo_OsmuxSupport tr_BSSMAP_IE_Osmo_OsmuxSupport := { elementIdentifier := 'F0'O } @@ -815,7 +833,8 @@ } template PDU_BSSAP ts_BSSMAP_HandoverRequired(BssmapCause cause, - template BSSMAP_FIELD_CellIdentificationList cid_list) + template BSSMAP_FIELD_CellIdentificationList cid_list, + template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit) modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { @@ -828,7 +847,7 @@ currentChannelType1 := omit, speechVersion := omit, queueingIndicator := omit, - oldToNewBSSInfo := omit, + oldToNewBSSInfo := f_ts_BSSMAP_IE_OldToNewBSSInfo(oldToNewBSSIEs), sourceToTargetRNCTransparentInfo := omit, sourceToTargetRNCTransparentInfoCDMA := omit, gERANClassmark := omit, @@ -841,11 +860,12 @@ } -template PDU_BSSAP tr_BSSMAP_HandoverRequired modifies tr_BSSAP_BSSMAP := { +template PDU_BSSAP tr_BSSMAP_HandoverRequired(template BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := *) modifies tr_BSSAP_BSSMAP := { pdu := { bssmap := { handoverRequired := { - messageType := '11'O + messageType := '11'O, + oldToNewBSSInfo := f_tr_BSSMAP_IE_OldToNewBSSInfo(oldToNewBSSIEs) } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23798 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id34924bbf0a5cf08b4b6f5ea56a10cef6b69c877 Gerrit-Change-Number: 23798 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 16:23:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 16:23:53 +0000 Subject: Change in osmo-mgw[master]: Fix OSMO_ASSERT() in case rtp.end.addr is still uninitialized In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23812 ) Change subject: Fix OSMO_ASSERT() in case rtp.end.addr is still uninitialized ...................................................................... Patch Set 1: Code-Review-2 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/23812/1/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/23812/1/src/libosmo-mgcp/mgcp_network.c at 1272 PS1, Line 1272: OSMO_ASSERT(conn->u.rtp.end.addr.u.sa.sa_family == 0 || This OSMO_ASSERT can be dropped completely. The condition above "if (conn->u.rtp.end.rtp_port == 0)" basically checks if the remote rtp endp is configured. As a result, inside this code path, this assert condition is always going to be false. If at all, the assert condition should be "OSMO_ASSERT(conn->u.rtp.end.addr.u.sa.sa_family == AF_UNSPEC)". -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23812 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2ecf81447e6a92fb566baba53fcf819f4029d54d Gerrit-Change-Number: 23812 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 20 Apr 2021 16:23: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 Tue Apr 20 16:25:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 20 Apr 2021 16:25:17 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/23785/1/include/osmocom/bsc/bts.h at 674 PS1, Line 674: int gsm_net_set_system_infos(); > I wasn't aware we had any parameterless functions wtihout 'void' in their declaration? If we do, th [?] I think I already submitted patches for that some time ago, but it's definetly possible that we introduced more over time. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 16:25:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels 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 Apr 20 18:12:56 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 18:12:56 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23795 ) Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23795/1/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/c/libosmocore/+/23795/1/src/gsm/gsm0808.c at 1580 PS1, Line 1580: static Is there any reason to keep this symbol static if you expose it via the function below anyway? What do we benefit from keeping it encapsulated/protected like that? I see that the same is done for bss_att_tlvdef, but still wondering. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 20 Apr 2021 18:12:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 19:17:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 19:17:42 +0000 Subject: Change in osmo-trx[master]: TRXD: set don't-fragment flag on all outgoing packets References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/23813 ) Change subject: TRXD: set don't-fragment flag on all outgoing packets ...................................................................... TRXD: set don't-fragment flag on all outgoing packets Change-Id: I0891f1d80e4c7c92a58b34ac986ef5334e8c78e2 Related: SYS#4895, OS#4941, OS#4006 --- M Transceiver52M/Transceiver.cpp 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/13/23813/1 diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index 91f06ec..20714cf 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -255,6 +255,12 @@ if (mDataSockets[i] < 0) return false; + /* Force the don't-fragment flag to be set on all outgoing packets */ + int val = IP_PMTUDISC_DO; + rv = setsockopt(mDataSockets[i], IPPROTO_IP, IP_MTU_DISCOVER, &val, sizeof(val)); + if (rv != 0) + LOG(FATAL) << "Failed to set the don't-fragment flag for TRXD socket"; + if (i && filler == FILLER_DUMMY) filler = FILLER_ZERO; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/23813 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I0891f1d80e4c7c92a58b34ac986ef5334e8c78e2 Gerrit-Change-Number: 23813 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 Apr 20 19:18:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 19:18:22 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: set don't-fragment flag on all TRXD packets References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23814 ) Change subject: osmo-bts-trx: set don't-fragment flag on all TRXD packets ...................................................................... osmo-bts-trx: set don't-fragment flag on all TRXD packets Change-Id: I25415b76b69ccf43f83ddfb0e7dd1e330fb23aa7 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/14/23814/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 2e97319..4a690dd 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -72,6 +72,10 @@ if (rc < 0) return rc; + /* Force the don't-fragment flag to be set on all outgoing packets */ + int val = IP_PMTUDISC_DO; + setsockopt(ofd->fd, IPPROTO_IP, IP_MTU_DISCOVER, &val, sizeof(val)); + return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I25415b76b69ccf43f83ddfb0e7dd1e330fb23aa7 Gerrit-Change-Number: 23814 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 Apr 20 19:19:59 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 19:19:59 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: set don't-fragment flag on all TRXD packets In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/23814 ) Change subject: osmo-bts-trx: set don't-fragment flag on all TRXD packets ...................................................................... osmo-bts-trx: set don't-fragment flag on all TRXD packets Change-Id: I25415b76b69ccf43f83ddfb0e7dd1e330fb23aa7 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/14/23814/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I25415b76b69ccf43f83ddfb0e7dd1e330fb23aa7 Gerrit-Change-Number: 23814 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 Tue Apr 20 19:36:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 19:36:07 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_if.py: set the don't-fragment flag References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23815 ) Change subject: trx_toolkit/data_if.py: set the don't-fragment flag ...................................................................... trx_toolkit/data_if.py: set the don't-fragment flag Change-Id: If49dfe5d2298b3c2f91f790a3a94ead1a103a0cc Related: SYS#4895, OS#4941, OS#4006 --- M src/target/trx_toolkit/data_if.py 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/15/23815/1 diff --git a/src/target/trx_toolkit/data_if.py b/src/target/trx_toolkit/data_if.py index 07f3d32..3f6965e 100644 --- a/src/target/trx_toolkit/data_if.py +++ b/src/target/trx_toolkit/data_if.py @@ -22,6 +22,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import logging as log +import socket from udp_link import UDPLink from data_msg import * @@ -32,6 +33,13 @@ self._hdr_ver = 0x00 UDPLink.__init__(self, *udp_link_args) + + # WTF: socket.{IP_MTU_DISCOVER,IP_PMTUDISC_DONT} are not defined?!? + IP_MTU_DISCOVER = 10 + IP_PMTUDISC_DO = 2 + # Force the don't-fragment flag to be set on all outgoing packets + self.sock.setsockopt(socket.IPPROTO_IP, IP_MTU_DISCOVER, IP_PMTUDISC_DO) + log.debug("Init TRXD interface (%s)" % self.desc_link()) def set_hdr_ver(self, ver): -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If49dfe5d2298b3c2f91f790a3a94ead1a103a0cc Gerrit-Change-Number: 23815 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 Apr 20 19:42:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 19:42:37 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_if.py: set the don't-fragment flag 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/osmocom-bb/+/23815 to look at the new patch set (#2). Change subject: trx_toolkit/data_if.py: set the don't-fragment flag ...................................................................... trx_toolkit/data_if.py: set the don't-fragment flag Change-Id: If49dfe5d2298b3c2f91f790a3a94ead1a103a0cc Related: SYS#4895, OS#4941, OS#4006 --- M src/target/trx_toolkit/data_if.py 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/15/23815/2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If49dfe5d2298b3c2f91f790a3a94ead1a103a0cc Gerrit-Change-Number: 23815 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 Apr 20 20:41:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 20:41:18 +0000 Subject: Change in osmo-bts[master]: lchan2lch_par(): fix missing default branch in switch References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23816 ) Change subject: lchan2lch_par(): fix missing default branch in switch ...................................................................... lchan2lch_par(): fix missing default branch in switch New channel mode values have recently beed added with change [1] to 'enum gsm48_chan_mode'. The lack of default branch in lchan2lch_par() caused build failures on Jenkins: oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V2_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V3_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V5_VAMOS? not handled in switch [-Werror=switch] This function is duplicated in osmo-bts-{lc15,oc2g,octphy,sysmo}, so we unfortunately need to apply the same fix to all copy-pasted files. Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Related: [1] Ie0ea592da5610ae70290106d004e549cf3212a89 --- M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-sysmo/oml.c 4 files changed, 62 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/23816/1 diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index 44139cf..39d0e5e 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -935,7 +935,7 @@ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp; } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1020,10 +1020,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1032,6 +1035,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1054,7 +1058,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1390,6 +1397,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1404,7 +1412,10 @@ conf_req->hLayer3 = (HANDLE)l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index ced6ad1..8fd3688 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -950,7 +950,7 @@ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp; } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1035,10 +1035,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1047,6 +1050,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1069,7 +1073,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1401,6 +1408,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1415,7 +1423,10 @@ conf_req->hLayer3 = (HANDLE)l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index bf17125..b0cb612 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -250,7 +250,7 @@ p_Config->abyRate[i] = cOCTVC1_GSM_AMR_CODEC_MODE_ENUM_UNSET; } -static void lchan2lch_par(struct gsm_lchan *lchan, +static int lchan2lch_par(struct gsm_lchan *lchan, tOCTVC1_GSM_LOGICAL_CHANNEL_CONFIG * p_Config) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; @@ -348,11 +348,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; - + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } /*********************************************************************** @@ -459,7 +461,10 @@ lac->Config.byTimingAdvance = lchan->rqd_ta; lac->Config.byBSIC = lchan->ts->trx->bts->bsic; - lchan2lch_par(lchan, &lac->Config); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } mOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CMD_SWAP(lac); diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 8e38c60..ac3176c 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -943,7 +943,7 @@ #endif /* L1_HAS_RTP_MODE */ } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1028,10 +1028,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1040,6 +1043,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1062,7 +1066,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1347,6 +1354,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1361,7 +1369,10 @@ conf_req->hLayer3 = l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Gerrit-Change-Number: 23816 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 Apr 20 20:42:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 20:42:22 +0000 Subject: Change in osmo-bts[master]: lchan2lch_par(): fix missing default branch in switch In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/23816 ) Change subject: lchan2lch_par(): fix missing default branch in switch ...................................................................... lchan2lch_par(): fix missing default branch in switch New channel mode values have recently been added with change [1] to 'enum gsm48_chan_mode'. The lack of default branch in lchan2lch_par() caused build failures on Jenkins: oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V2_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V3_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V5_VAMOS? not handled in switch [-Werror=switch] This function is duplicated in osmo-bts-{lc15,oc2g,octphy,sysmo}, so we unfortunately need to apply the same fix to all copy-pasted files. Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Related: [1] Ie0ea592da5610ae70290106d004e549cf3212a89 --- M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-sysmo/oml.c 4 files changed, 62 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/23816/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Gerrit-Change-Number: 23816 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 20:42:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 20:42:22 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: set don't-fragment flag on all TRXD packets 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/+/23814 to look at the new patch set (#4). Change subject: osmo-bts-trx: set don't-fragment flag on all TRXD packets ...................................................................... osmo-bts-trx: set don't-fragment flag on all TRXD packets Change-Id: I25415b76b69ccf43f83ddfb0e7dd1e330fb23aa7 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/14/23814/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I25415b76b69ccf43f83ddfb0e7dd1e330fb23aa7 Gerrit-Change-Number: 23814 Gerrit-PatchSet: 4 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 Apr 20 20:50:16 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 20:50:16 +0000 Subject: Change in osmo-bts[master]: lchan2lch_par(): fix missing default branch in switch In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/osmo-bts/+/23816 ) Change subject: lchan2lch_par(): fix missing default branch in switch ...................................................................... lchan2lch_par(): fix missing default branch in switch New channel mode values have recently been added with change [1] to 'enum gsm48_chan_mode'. The lack of default branch in lchan2lch_par() caused build failures on Jenkins: oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V2_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V3_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V5_VAMOS? not handled in switch [-Werror=switch] This function is duplicated in osmo-bts-{lc15,oc2g,octphy,sysmo}, so we unfortunately need to apply the same fix to all copy-pasted files. Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Related: [1] Ie0ea592da5610ae70290106d004e549cf3212a89 --- M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-sysmo/oml.c 4 files changed, 63 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/23816/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Gerrit-Change-Number: 23816 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 Tue Apr 20 21:27:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 20 Apr 2021 21:27:16 +0000 Subject: Change in pysim[master]: filesystem: fix wrong comment References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23817 ) Change subject: filesystem: fix wrong comment ...................................................................... filesystem: fix wrong comment The property rec_len is not a tuple, it is a set. Related: OS#4963 Change-Id: I366772c62d0bb5a6400ce5b431eb94ac9248dccc --- M pySim/filesystem.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/17/23817/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 36588e2..6fd2cd9 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -688,7 +688,7 @@ name : Brief name of the file, lik EF_ICCID desc : Description of the file parent : Parent CardFile object within filesystem hierarchy - rec_len : tuple of (minimum_length, recommended_length) + rec_len : set of (minimum_length, recommended_length) """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent) self.rec_len = rec_len -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I366772c62d0bb5a6400ce5b431eb94ac9248dccc Gerrit-Change-Number: 23817 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 Apr 20 21:27:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 20 Apr 2021 21:27:16 +0000 Subject: Change in pysim[master]: filesystem: fix wrong helpstring for update_record_decoded References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23818 ) Change subject: filesystem: fix wrong helpstring for update_record_decoded ...................................................................... filesystem: fix wrong helpstring for update_record_decoded the helpstring of update_record_decoded mentions hex bytes for the data parameter, but it should be mentioned as abstract json data like in update_binary_decoded Change-Id: Ibae2ab49054ac5dd6fcccddd28c98d886403dac9 Related: OS#4963 --- M pySim/filesystem.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/18/23818/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 6fd2cd9..c24078f 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -638,7 +638,7 @@ upd_rec_dec_parser = argparse.ArgumentParser() upd_rec_dec_parser.add_argument('record_nr', type=int, help='Number of record to be read') - upd_rec_dec_parser.add_argument('data', help='Data bytes (hex format) to write') + upd_rec_dec_parser.add_argument('data', help='Abstract data (JSON format) to write') upd_rec_dec_parser.add_argument('--json-path', type=str, help='JSON path to modify specific element of record only') @cmd2.with_argparser(upd_rec_dec_parser) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibae2ab49054ac5dd6fcccddd28c98d886403dac9 Gerrit-Change-Number: 23818 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 Apr 20 21:27:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 20 Apr 2021 21:27:16 +0000 Subject: Change in pysim[master]: utils: fix encoding of EF.MSISDN References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23819 ) Change subject: utils: fix encoding of EF.MSISDN ...................................................................... utils: fix encoding of EF.MSISDN The encoding of EF.MSISDN is a bit unstrutured. The encoder function does not return a valid result since it lacks the parameters Capability/Configuration2 Record Identifier and Extension5 Record Identifier, which are mandatory but can be set to 0xFF. Also the encoder gets its input from pySim-shell, so it should have some more input validation, especially when the user encodes an empty string. The encoder and decoder function also do not have unit-tests. Since the encoder now adds the missing two bytes by isself this does not have to be done manually anymore, so cards.py needs to be re-aligned. For pySim-shell.py the encoder is used from ts_51_011.py. Unfortunately it is used wrongly there. The optional Alpha Identifier is required here as well. Related: OS#4963 Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b --- M pySim/cards.py M pySim/ts_51_011.py M pySim/utils.py M tests/test_utils.py 4 files changed, 46 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/19/23819/1 diff --git a/pySim/cards.py b/pySim/cards.py index 9a19eed..719bf0c 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -963,7 +963,7 @@ # TODO: Extension1 Record Identifier if p.get('msisdn') is not None: msisdn = enc_msisdn(p['msisdn']) - data = 'ff' * 20 + msisdn + 'ff' * 2 + data = 'ff' * 20 + msisdn r = self._scc.select_path(['3f00', '7f10']) data, sw = self._scc.update_record('6F40', 1, data, force_len=True) @@ -1356,7 +1356,7 @@ # TODO: Extension1 Record Identifier if p.get('msisdn') is not None: msisdn = enc_msisdn(p['msisdn']) - content = 'ff' * 20 + msisdn + 'ff' * 2 + content = 'ff' * 20 + msisdn r = self._scc.select_path(['3f00', '7f10']) data, sw = self._scc.update_record('6F40', 1, content, force_len=True) diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 48649cd..9123330 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -377,11 +377,13 @@ # TS 51.011 Section 10.5.5 class EF_MSISDN(LinFixedEF): def __init__(self, fid='6f40', sfid=None, name='EF.MSISDN', desc='MSISDN'): - super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={15, None}) + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={15, 34}) def _decode_record_hex(self, raw_hex_data): return {'msisdn': dec_msisdn(raw_hex_data)} def _encode_record_hex(self, abstract): - return enc_msisdn(abstract['msisdn']) + encoded_msisdn = enc_msisdn(abstract['msisdn']) + alpha_identifier = (list(self.rec_len)[0] - len(encoded_msisdn) // 2) * "ff" + return alpha_identifier + encoded_msisdn # TS 51.011 Section 10.5.6 class EF_SMSP(LinFixedEF): diff --git a/pySim/utils.py b/pySim/utils.py index a0da03a..e4feac3 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -400,18 +400,27 @@ def enc_msisdn(msisdn:str, npi:int=0x01, ton:int=0x03) -> Hexstr: """ Encode MSISDN as LHV so it can be stored to EF.MSISDN. - See 3GPP TS 31.102, section 4.2.26 and 4.4.2.3. + See 3GPP TS 31.102, section 4.2.26 and 4.4.2.3. (The result + will not contain the optional Alpha Identifier at the beginning.) Default NPI / ToN values: - NPI: ISDN / telephony numbering plan (E.164 / E.163), - ToN: network specific or international number (if starts with '+'). """ + # If no MSISDN is supplied then encode the file contents as all "ff" + if not msisdn or msisdn == "" or msisdn == "+": + return "ff" * 14 + # Leading '+' indicates International Number if msisdn[0] == '+': msisdn = msisdn[1:] ton = 0x01 + # Truncate overlong MSISDN + if len(msisdn) > 20: + msisdn = msisdn[0:20] + # Append 'f' padding if number of digits is odd if len(msisdn) % 2 > 0: msisdn += 'f' @@ -421,7 +430,8 @@ npi_ton = (npi & 0x0f) | ((ton & 0x07) << 4) | 0x80 bcd = rpad(swap_nibbles(msisdn), 10 * 2) # pad to 10 octets - return ('%02x' % bcd_len) + ('%02x' % npi_ton) + bcd + return ('%02x' % bcd_len) + ('%02x' % npi_ton) + bcd + ("ff" * 2) + def dec_st(st, table="sim") -> str: """ diff --git a/tests/test_utils.py b/tests/test_utils.py index badde55..c8a5cb0 100755 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -109,5 +109,33 @@ encoded = suci_calc_info._encode_hex(self.decoded_testfile_suci) self.assertEqual(encoded.lower(), self.testfile_suci_calc_info.lower()) + def testEnc_msisdn(self): + msisdn_encoded = utils.enc_msisdn("+4916012345678", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "0891946110325476f8ffffffffff") + msisdn_encoded = utils.enc_msisdn("123456", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "04b1214365ffffffffffffffffff") + msisdn_encoded = utils.enc_msisdn("12345678901234567890", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "0bb121436587092143658709ffff") + msisdn_encoded = utils.enc_msisdn("", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "ffffffffffffffffffffffffffff") + msisdn_encoded = utils.enc_msisdn("+", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "ffffffffffffffffffffffffffff") + msisdn_encoded = utils.enc_msisdn("1234567890123456789012345678901234567890", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "0bb121436587092143658709ffff") + + def testDec_msisdn(self): + msisdn_decoded = utils.dec_msisdn("0891946110325476f8ffffffffff") + self.assertEqual(msisdn_decoded, (1, 1, "+4916012345678")) + msisdn_decoded = utils.dec_msisdn("04b1214365ffffffffffffffffff") + self.assertEqual(msisdn_decoded, (1, 3, "123456")) + msisdn_decoded = utils.dec_msisdn("0bb121436587092143658709ffff") + self.assertEqual(msisdn_decoded, (1, 3, "12345678901234567890")) + msisdn_decoded = utils.dec_msisdn("ffffffffffffffffffffffffffff") + self.assertEqual(msisdn_decoded, None) + msisdn_decoded = utils.dec_msisdn("00112233445566778899AABBCCDDEEFF001122330bb121436587092143658709ffff") + self.assertEqual(msisdn_decoded, (1, 3, "12345678901234567890")) + msisdn_decoded = utils.dec_msisdn("ffffffffffffffffffffffffffffffffffffffff0bb121436587092143658709ffff") + self.assertEqual(msisdn_decoded, (1, 3, "12345678901234567890")) + if __name__ == "__main__": unittest.main() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b Gerrit-Change-Number: 23819 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 Apr 20 21:54:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 21:54:19 +0000 Subject: Change in osmo-bts[rel-1.3.1]: lchan2lch_par(): fix missing default branch in switch References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23820 ) Change subject: lchan2lch_par(): fix missing default branch in switch ...................................................................... lchan2lch_par(): fix missing default branch in switch New channel mode values have recently been added with change [1] to 'enum gsm48_chan_mode'. The lack of default branch in lchan2lch_par() caused build failures on Jenkins: oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V2_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V3_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V5_VAMOS? not handled in switch [-Werror=switch] This function is duplicated in osmo-bts-{lc15,oc2g,octphy,sysmo}, so we unfortunately need to apply the same fix to all copy-pasted files. Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Related: [1] Ie0ea592da5610ae70290106d004e549cf3212a89 --- M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-sysmo/oml.c 4 files changed, 63 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/20/23820/1 diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index 44139cf..39d0e5e 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -935,7 +935,7 @@ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp; } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1020,10 +1020,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1032,6 +1035,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1054,7 +1058,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1390,6 +1397,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1404,7 +1412,10 @@ conf_req->hLayer3 = (HANDLE)l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index ced6ad1..8fd3688 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -950,7 +950,7 @@ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp; } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1035,10 +1035,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1047,6 +1050,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1069,7 +1073,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1401,6 +1408,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1415,7 +1423,10 @@ conf_req->hLayer3 = (HANDLE)l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index bf17125..b7f4935 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -250,7 +250,7 @@ p_Config->abyRate[i] = cOCTVC1_GSM_AMR_CODEC_MODE_ENUM_UNSET; } -static void lchan2lch_par(struct gsm_lchan *lchan, +static int lchan2lch_par(struct gsm_lchan *lchan, tOCTVC1_GSM_LOGICAL_CHANNEL_CONFIG * p_Config) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; @@ -348,11 +348,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; - + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } /*********************************************************************** @@ -444,6 +446,7 @@ struct octphy_hdl *fl1h = pinst->phy_link->u.octphy.hdl; struct msgb *msg = l1p_msgb_alloc(); tOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CMD *lac; + int rc; lac = (tOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CMD *) msgb_put(msg, sizeof(*lac)); @@ -458,8 +461,10 @@ lac->Config.byTimingAdvance = lchan->rqd_ta; lac->Config.byBSIC = lchan->ts->trx->bts->bsic; - - lchan2lch_par(lchan, &lac->Config); + if ((rc = lchan2lch_par(lchan, &lac->Config)) != 0) { + talloc_free(msg); + return rc; + } mOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CMD_SWAP(lac); diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 8e38c60..ac3176c 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -943,7 +943,7 @@ #endif /* L1_HAS_RTP_MODE */ } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1028,10 +1028,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1040,6 +1043,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1062,7 +1066,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1347,6 +1354,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1361,7 +1369,10 @@ conf_req->hLayer3 = l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Gerrit-Change-Number: 23820 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 Apr 20 21:54:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 21:54:19 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0-1-g4f346b04_=E2=86=92_1=2E3=2E1?= References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 ...................................................................... Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Signed-off-by: Vadim Yanitskiy --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/21/23821/1 diff --git a/debian/changelog b/debian/changelog index bc44837..2b74c9f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-bts (1.4.0) unstable; urgency=medium + + * lchan2lch_par(): fix missing default branch in switch + + -- Vadim Yanitskiy Tue, 20 Apr 2021 21:42:32 +0000 + osmo-bts (1.3.0) unstable; urgency=medium [ Michael McTernan ] -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 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 Apr 20 22:00:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 22:00:27 +0000 Subject: Change in pysim[master]: utils: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23819 ) Change subject: utils: fix encoding of EF.MSISDN ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/pysim/+/23819/1/pySim/utils.py File pySim/utils.py: https://gerrit.osmocom.org/c/pysim/+/23819/1/pySim/utils.py at 412 PS1, Line 412: not msisdn or msisdn == "" It cannot be None (according to the type hint for 'msisdn'), so both statements are equivalent. This I would remove one of them. https://gerrit.osmocom.org/c/pysim/+/23819/1/pySim/utils.py at 420 PS1, Line 420: Truncate overlong MSISDN I don't think it's a good idea to silently truncate something, better raise an exception here. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b Gerrit-Change-Number: 23819 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 22:00:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 22:04:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 22:04:52 +0000 Subject: Change in pysim[master]: filesystem: fix wrong comment In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23817 ) Change subject: filesystem: fix wrong comment ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/pysim/+/23817/1/pySim/filesystem.py File pySim/filesystem.py: https://gerrit.osmocom.org/c/pysim/+/23817/1/pySim/filesystem.py at 691 PS1, Line 691: (minimum_length, recommended_length) Please also change parentheses to { } then, otherwise it still looks like a tuple. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I366772c62d0bb5a6400ce5b431eb94ac9248dccc Gerrit-Change-Number: 23817 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 20 Apr 2021 22:04:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 20 23:05:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:17 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23822 ) Change subject: osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' ...................................................................... osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' TRXDv2 brings significant changes to the whole PDU structure, not just the header. Let's highlight this in the code / strings. Change-Id: Id0274bd1ae5c419548596ed1852e6a28ec62b713 Related: SYS#4895, OS#4941, OS#4006 --- M include/osmo-bts/phy_link.h M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h M src/osmo-bts-trx/trx_provision_fsm.c M src/osmo-bts-trx/trx_vty.c 7 files changed, 49 insertions(+), 49 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/22/23822/1 diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index ef3df27..16cfd06 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -48,7 +48,7 @@ uint32_t clock_advance; uint32_t rts_advance; bool use_legacy_setbsic; - uint8_t trxd_hdr_ver_max; /* Maximum TRXD header version to negotiate */ + uint8_t trxd_pdu_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; diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 8c309db..112a6ab 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -60,8 +60,8 @@ }; 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 */ + uint8_t trxd_pdu_ver_req; /* requested TRXD PDU version */ + uint8_t trxd_pdu_ver_use; /* actual TRXD PDU version in use */ bool setformat_sent; bool setformat_acked; diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index 7e6dea9..e0a99a5 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -169,7 +169,7 @@ plink->u.osmotrx.clock_advance = 2; plink->u.osmotrx.rts_advance = 3; /* attempt use newest TRXD version by default: */ - plink->u.osmotrx.trxd_hdr_ver_max = TRX_DATA_FORMAT_VER; + plink->u.osmotrx.trxd_pdu_ver_max = TRX_DATA_PDU_VER; } void bts_model_phy_instance_set_defaults(struct phy_instance *pinst) diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 2e97319..bec6a5a 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -275,11 +275,11 @@ return trx_ctrl_cmd_cb(l1h, 1, cb, "POWERON", ""); } -/*! Send "SETFORMAT" command to TRX: change TRXD header format version */ +/*! Send "SETFORMAT" command to TRX: change TRXD PDU version */ int trx_if_cmd_setformat(struct trx_l1h *l1h, uint8_t ver, trx_if_cmd_generic_cb *cb) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_INFO, - "Requesting TRXD header format version %u\n", ver); + "Requesting TRXD PDU version %u\n", ver); return trx_ctrl_cmd_cb(l1h, 0, cb, "SETFORMAT", "%u", ver); } @@ -510,7 +510,7 @@ return rsp->status == 0 ? 0 : -EINVAL; } -/* TRXD header format negotiation handler. +/* TRXD PDU format negotiation handler. * * If the transceiver does not support the format negotiation, it would * reject SETFORMAT with 'RSP ERR 1'. If the requested version is not @@ -526,7 +526,7 @@ if (strcmp(rsp->cmd, "SETFORMAT") != 0) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, "Transceiver rejected the format negotiation command, " - "using legacy TRXD header format version (0)\n"); + "using legacy TRXD PDU version (0)\n"); if (rsp->cb) { cb = (trx_if_cmd_generic_cb*) rsp->cb; cb(l1h, 0); @@ -535,11 +535,11 @@ } /* Status shall indicate a proper version supported by the transceiver */ - if (rsp->status < 0 || rsp->status > l1h->config.trxd_hdr_ver_req) { + if (rsp->status < 0 || rsp->status > l1h->config.trxd_pdu_ver_req) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Transceiver indicated an out of range " - "header format version %d (requested %u)\n", - rsp->status, l1h->config.trxd_hdr_ver_req); + "PDU version %d (requested %u)\n", + rsp->status, l1h->config.trxd_pdu_ver_req); return -EINVAL; } @@ -814,7 +814,7 @@ return TRX_UL_V1HDR_LEN; } -/* TRXD burst handler for header version 0 */ +/* TRXD burst handler for PDU version 0 */ static int trx_data_handle_burst_v0(struct trx_l1h *l1h, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) @@ -850,7 +850,7 @@ return 0; } -/* TRXD burst handler for header version 1 */ +/* TRXD burst handler for PDU version 1 */ static int trx_data_handle_burst_v1(struct trx_l1h *l1h, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) @@ -869,7 +869,7 @@ return -EINVAL; } - /* The burst format is the same as for version 0. + /* The PDU format is the same as for version 0. * NOTE: other modulation types to be handled separately. */ return trx_data_handle_burst_v0(l1h, bi, buf, buf_len); } @@ -937,7 +937,7 @@ * +-----------------+------------------------+ * | 7 6 5 4 3 2 1 0 | bit numbers | * +-----------------+------------------------+ - * | X X X X . . . . | header version (0..15) | + * | X X X X . . . . | PDU version (0..15) | * +-----------------+------------------------+ * | . . . . . X X X | TDMA TN (0..7) | * +-----------------+------------------------+ @@ -1040,7 +1040,7 @@ uint8_t buf[TRX_DATA_MSG_MAX_LEN]; struct trx_ul_burst_ind bi; ssize_t hdr_len, buf_len; - uint8_t hdr_ver; + uint8_t pdu_ver; int rc; buf_len = recv(ofd->fd, buf, sizeof(buf), 0); @@ -1054,9 +1054,9 @@ /* Pre-clean (initialize) the flags */ bi.flags = 0x00; - /* Parse the header depending on its version */ - hdr_ver = buf[0] >> 4; - switch (hdr_ver) { + /* Parse header depending on the PDU version */ + pdu_ver = buf[0] >> 4; + switch (pdu_ver) { case 0: /* Legacy protocol has no version indicator */ hdr_len = trx_data_handle_hdr_v0(l1h, &bi, buf, buf_len); @@ -1066,7 +1066,7 @@ break; default: LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "TRXD header version %u is not supported\n", hdr_ver); + "TRXD PDU version %u is not supported\n", pdu_ver); return -ENOTSUP; } @@ -1083,7 +1083,7 @@ buf_len -= hdr_len; /* Handle burst bits */ - switch (hdr_ver) { + switch (pdu_ver) { case 0: rc = trx_data_handle_burst_v0(l1h, &bi, buf + hdr_len, buf_len); break; @@ -1101,9 +1101,9 @@ skip_burst: /* Print header & burst info */ - LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, "Rx %s (hdr_ver=%u): %s\n", + LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, "Rx %s (pdu_ver=%u): %s\n", (bi.flags & TRX_BI_F_NOPE_IND) ? "NOPE.ind" : "UL burst", - hdr_ver, trx_data_desc_msg(&bi)); + pdu_ver, trx_data_desc_msg(&bi)); /* feed received burst into scheduler code */ trx_sched_route_burst_ind(&bi, &l1h->l1s); @@ -1118,7 +1118,7 @@ int trx_if_send_burst(struct trx_l1h *l1h, const struct trx_dl_burst_req *br) { ssize_t snd_len; - uint8_t hdr_ver = l1h->config.trxd_hdr_ver_use; + uint8_t pdu_ver = l1h->config.trxd_pdu_ver_use; uint8_t buf[TRX_DATA_MSG_MAX_LEN]; if ((br->burst_len != GSM_BURST_LEN) && (br->burst_len != EGPRS_BURST_LEN)) { @@ -1128,22 +1128,22 @@ } LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, - "Tx burst (hdr_ver=%u): tn=%u fn=%u att=%u\n", - hdr_ver, br->tn, br->fn, br->att); + "Tx burst (pdu_ver=%u): tn=%u fn=%u att=%u\n", + pdu_ver, br->tn, br->fn, br->att); - switch (hdr_ver) { + switch (pdu_ver) { case 0: case 1: - /* Both versions have the same header format */ + /* Both versions have the same PDU format */ break; default: LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Requested TRXD header version %u is not supported\n", hdr_ver); + "Requested TRXD PDU version %u is not supported\n", pdu_ver); return -ENOTSUP; } - buf[0] = ((hdr_ver & 0x0f) << 4) | br->tn; + buf[0] = ((pdu_ver & 0x0f) << 4) | br->tn; osmo_store32be(br->fn, buf + 1); buf[5] = br->att; diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 17bc7db..dd77270 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -40,7 +40,7 @@ int trx_if_powered(struct trx_l1h *l1h); /* The latest supported TRXD header format version */ -#define TRX_DATA_FORMAT_VER 1 +#define TRX_DATA_PDU_VER 1 /* Format negotiation command */ int trx_if_cmd_setformat(struct trx_l1h *l1h, uint8_t ver, trx_if_cmd_generic_cb *cb); diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index e4721ba..1e5de2e 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -148,16 +148,16 @@ l1h->config.bsic_acked = false; } - /* Ask transceiver to use the newest TRXD header version if not using it yet */ + /* Ask transceiver to use the newest TRXD PDU version if not using it yet */ if (!l1h->config.setformat_sent) { l1h->config.setformat_sent = true; - if (plink->u.osmotrx.trxd_hdr_ver_max == 0) { + if (plink->u.osmotrx.trxd_pdu_ver_max == 0) { LOGPPHI(pinst, DL1C, LOGL_INFO, "No need to negotiate max TRXD version 0"); - l1h->config.trxd_hdr_ver_use = 0; + l1h->config.trxd_pdu_ver_use = 0; l1h->config.setformat_acked = true; } else { - trx_if_cmd_setformat(l1h, l1h->config.trxd_hdr_ver_req, l1if_setformat_cb); + trx_if_cmd_setformat(l1h, l1h->config.trxd_pdu_ver_req, l1if_setformat_cb); l1h->config.setformat_acked = false; } } @@ -276,7 +276,7 @@ struct trx_l1h *l1h = (struct trx_l1h *)fi->priv; struct phy_instance *pinst = l1h->phy_inst; - l1h->config.trxd_hdr_ver_req = pinst->phy_link->u.osmotrx.trxd_hdr_ver_max; + l1h->config.trxd_pdu_ver_req = pinst->phy_link->u.osmotrx.trxd_pdu_ver_max; /* Apply initial RFMUTE state */ trx_if_cmd_rfmute(l1h, pinst->trx->mo.nm_state.administrative != NM_STATE_UNLOCKED); @@ -354,18 +354,18 @@ case TRX_PROV_EV_SETFORMAT_CNF: status = (int)(intptr_t)data; /* Transceiver may suggest a lower version (than requested) */ - if (status == l1h->config.trxd_hdr_ver_req) { - l1h->config.trxd_hdr_ver_use = status; + if (status == l1h->config.trxd_pdu_ver_req) { + l1h->config.trxd_pdu_ver_use = status; l1h->config.setformat_acked = true; LOGPPHI(l1h->phy_inst, DTRX, LOGL_INFO, - "Using TRXD header format version %u\n", - l1h->config.trxd_hdr_ver_use); + "Using TRXD PDU version %u\n", + l1h->config.trxd_pdu_ver_use); } else { LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, - "Transceiver suggests TRXD header version %u (requested %u)\n", - status, l1h->config.trxd_hdr_ver_req); + "Transceiver suggests TRXD PDU version %u (requested %u)\n", + status, l1h->config.trxd_pdu_ver_req); /* Send another SETFORMAT with suggested version */ - l1h->config.trxd_hdr_ver_req = status; + l1h->config.trxd_pdu_ver_req = status; l1h->config.setformat_sent = false; } break; diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 4e8c8d6..b85dcdc 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -517,15 +517,15 @@ int max_ver; if (strcmp(argv[0], "latest") == 0) - max_ver = TRX_DATA_FORMAT_VER; + max_ver = TRX_DATA_PDU_VER; else max_ver = atoi(argv[0]); - if (max_ver > TRX_DATA_FORMAT_VER) { + if (max_ver > TRX_DATA_PDU_VER) { vty_out(vty, "%% Format version %d is not supported, maximum supported is %d%s", - max_ver, TRX_DATA_FORMAT_VER, VTY_NEWLINE); + max_ver, TRX_DATA_PDU_VER, VTY_NEWLINE); return CMD_WARNING; } - plink->u.osmotrx.trxd_hdr_ver_max = max_ver; + plink->u.osmotrx.trxd_pdu_ver_max = max_ver; return CMD_SUCCESS; } @@ -554,8 +554,8 @@ if (plink->u.osmotrx.use_legacy_setbsic) vty_out(vty, " osmotrx legacy-setbsic%s", VTY_NEWLINE); - if (plink->u.osmotrx.trxd_hdr_ver_max != TRX_DATA_FORMAT_VER) - vty_out(vty, " osmotrx trxd-max-version %d%s", plink->u.osmotrx.trxd_hdr_ver_max, VTY_NEWLINE); + if (plink->u.osmotrx.trxd_pdu_ver_max != TRX_DATA_PDU_VER) + vty_out(vty, " osmotrx trxd-max-version %d%s", plink->u.osmotrx.trxd_pdu_ver_max, VTY_NEWLINE); } void bts_model_config_write_phy_inst(struct vty *vty, const struct phy_instance *pinst) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id0274bd1ae5c419548596ed1852e6a28ec62b713 Gerrit-Change-Number: 23822 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 Apr 20 23:05:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:17 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: remove outdated TRXD protocol documentation References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23823 ) Change subject: osmo-bts-trx: remove outdated TRXD protocol documentation ...................................................................... osmo-bts-trx: remove outdated TRXD protocol documentation We do have TRXC/TRXD documentation in osmo-gsm-manuals repository. This big comment is out of sync with what we have in the manuals, so let's better remove it to avoid maintaining docs in several places. Change-Id: Ibfcefcbb5f30fe9b6c691578a93e6fedd5644b30 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 1 insertion(+), 118 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/23/23823/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index bec6a5a..495de92 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -916,124 +916,7 @@ return buf; } -/* Parse TRXD message from transceiver, compose an UL burst indication. - * - * This message contains a demodulated Uplink burst with fixed-size - * header preceding the burst bits. The header consists of the common - * and message specific part. - * - * +---------------+-----------------+------------+ - * | common header | specific header | burst bits | - * +---------------+-----------------+------------+ - * - * Common header is the same as for Downlink message: - * - * +-----------------+----------------+-------------------+ - * | VER (1/2 octet) | TN (1/2 octet) | FN (4 octets, BE) | - * +-----------------+----------------+-------------------+ - * - * and among with TDMA parameters, contains the version indicator: - * - * +-----------------+------------------------+ - * | 7 6 5 4 3 2 1 0 | bit numbers | - * +-----------------+------------------------+ - * | X X X X . . . . | PDU version (0..15) | - * +-----------------+------------------------+ - * | . . . . . X X X | TDMA TN (0..7) | - * +-----------------+------------------------+ - * | . . . . X . . . | RESERVED (0) | - * +-----------------+------------------------+ - * - * which is encoded in 4 MSB bits of the first octet, which used to be - * zero-initialized due to the value range of TDMA TN. Therefore, the - * old header format has implicit version 0x00. - * - * The message specific header has the following structure: - * - * == Version 0x00 - * - * +------+-----+--------------------+ - * | RSSI | ToA | soft-bits (254..0) | - * +------+-----+--------------------+ - * - * == Version 0x01 - * - * +------+-----+-----+-----+--------------------+ - * | RSSI | ToA | MTS | C/I | soft-bits (254..0) | - * +------+-----+-----+-----+--------------------+ - * - * where: - * - * - RSSI (1 octet) - Received Signal Strength Indication - * encoded without the negative sign. - * - ToA (2 octets) - Timing of Arrival in units of 1/256 - * of symbol (big endian). - * - MTS (1 octet) - Modulation and Training Sequence info. - * - C/I (2 octets) - Carrier-to-Interference ratio (big endian). - * - * == Coding of MTS: Modulation and Training Sequence info - * - * 3GPP TS 45.002 version 15.1.0 defines several modulation types, - * and a few sets of training sequences for each type. The most - * common are GMSK and 8-PSK (which is used in EDGE). - * - * +-----------------+---------------------------------------+ - * | 7 6 5 4 3 2 1 0 | bit numbers (value range) | - * +-----------------+---------------------------------------+ - * | . . . . . X X X | Training Sequence Code (0..7) | - * +-----------------+---------------------------------------+ - * | . X X X X . . . | Modulation, TS set number (see below) | - * +-----------------+---------------------------------------+ - * | X . . . . . . . | IDLE / nope frame indication (0 or 1) | - * +-----------------+---------------------------------------+ - * - * The bit number 7 (MSB) is set to high when either nothing has been - * detected, or during IDLE frames, so we can deliver noise levels, - * and avoid clock gaps on the L1 side. Other bits are ignored, - * and should be set to low (0) in this case. L16 shall be set to 0x00. - * - * == Coding of modulation and TS set number - * - * GMSK has 4 sets of training sequences (see tables 5.2.3a-d), - * while 8-PSK (see tables 5.2.3f-g) and the others have 2 sets. - * Access and Synchronization bursts also have several synch. - * sequences. - * - * +-----------------+---------------------------------------+ - * | 7 6 5 4 3 2 1 0 | bit numbers (value range) | - * +-----------------+---------------------------------------+ - * | . 0 0 X X . . . | GMSK, 4 TS sets (0..3) | - * +-----------------+---------------------------------------+ - * | . 0 1 0 X . . . | 8-PSK, 2 TS sets (0..1) | - * +-----------------+---------------------------------------+ - * | . 0 1 1 X . . . | AQPSK, 2 TS sets (0..1) | - * +-----------------+---------------------------------------+ - * | . 1 0 0 X . . . | 16QAM, 2 TS sets (0..1) | - * +-----------------+---------------------------------------+ - * | . 1 0 1 X . . . | 32QAM, 2 TS sets (0..1) | - * +-----------------+---------------------------------------+ - * | . 1 1 1 X . . . | RESERVED (0) | - * +-----------------+---------------------------------------+ - * - * NOTE: we only support GMSK and 8-PSK. - * - * == C/I: Carrier-to-Interference ratio - * - * The C/I value can be computed from the training sequence of each - * burst, where we can compare the "ideal" training sequence with - * the actual training sequence and then express that in centiBels. - * - * == Coding of the burst bits - * - * Unlike to be transmitted bursts, the received bursts are designated - * using the soft-bits notation, so the receiver can indicate its - * assurance from 0 to -127 that a given bit is 1, and from 0 to +127 - * that a given bit is 0. - * - * Each soft-bit (-127..127) of the burst is encoded as an unsigned - * value in range (254..0) respectively using the constant shift. - * - */ +/* Parse TRXD message from transceiver, compose an UL burst indication. */ static int trx_data_read_cb(struct osmo_fd *ofd, unsigned int what) { struct trx_l1h *l1h = ofd->data; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfcefcbb5f30fe9b6c691578a93e6fedd5644b30 Gerrit-Change-Number: 23823 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 Apr 20 23:05:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:18 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: use '#pragma once' in trx_if.h References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23824 ) Change subject: osmo-bts-trx: cosmetic: use '#pragma once' in trx_if.h ...................................................................... osmo-bts-trx: cosmetic: use '#pragma once' in trx_if.h Change-Id: I78b93a8f5fbbd94141d30518d37c1ce05f8a681f --- M src/osmo-bts-trx/trx_if.h 1 file changed, 1 insertion(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/24/23824/1 diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index dd77270..8adb22f 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -1,5 +1,4 @@ -#ifndef TRX_IF_H -#define TRX_IF_H +#pragma once struct trx_dl_burst_req; struct trx_l1h; @@ -44,5 +43,3 @@ /* Format negotiation command */ int trx_if_cmd_setformat(struct trx_l1h *l1h, uint8_t ver, trx_if_cmd_generic_cb *cb); - -#endif /* TRX_IF_H */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I78b93a8f5fbbd94141d30518d37c1ce05f8a681f Gerrit-Change-Number: 23824 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 Apr 20 23:05:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:18 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: reduce and share TRXC message buffer size References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23825 ) Change subject: osmo-bts-trx: reduce and share TRXC message buffer size ...................................................................... osmo-bts-trx: reduce and share TRXC message buffer size struct 'trx_ctrl_msg' limits the length of the command and its parameters to 28 and 100 characters respectively. And this is generally enough for TRXC messages, no need to allocate 1500 bytes for that. Define the macro in the header file. Change-Id: I21c9ef37954c73ab74f07a3d226707744cbb2f01 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 2 files changed, 6 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/25/23825/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 495de92..0041b76 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -95,7 +95,7 @@ { struct phy_link *plink = ofd->data; struct phy_instance *pinst = phy_instance_by_num(plink, 0); - char buf[1500]; + char buf[TRXC_MSG_BUF_SIZE]; ssize_t len; uint32_t fn; @@ -148,7 +148,7 @@ static void trx_ctrl_send(struct trx_l1h *l1h) { struct trx_ctrl_msg *tcm; - char buf[1500]; + char buf[TRXC_MSG_BUF_SIZE]; int len; ssize_t snd_len; @@ -634,7 +634,7 @@ { struct trx_l1h *l1h = ofd->data; struct phy_instance *pinst = l1h->phy_inst; - char buf[1500]; + char buf[TRXC_MSG_BUF_SIZE]; struct trx_ctrl_rsp rsp; int len, rc; struct trx_ctrl_msg *tcm; diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 8adb22f..76dfbc4 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -1,5 +1,8 @@ #pragma once +/* TRXC read/send buffer size */ +#define TRXC_MSG_BUF_SIZE 128 + struct trx_dl_burst_req; struct trx_l1h; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I21c9ef37954c73ab74f07a3d226707744cbb2f01 Gerrit-Change-Number: 23825 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 Apr 20 23:05:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:18 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move TRXD message length to trx_if.h References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23826 ) Change subject: osmo-bts-trx: move TRXD message length to trx_if.h ...................................................................... osmo-bts-trx: move TRXD message length to trx_if.h Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 2 files changed, 4 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/26/23826/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 0041b76..905d3da 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -718,9 +718,6 @@ * TRX burst data socket */ -/* Maximum DATA message length (header + burst) */ -#define TRX_DATA_MSG_MAX_LEN 512 - /* Common header length: 1/2 VER + 1/2 TDMA TN + 4 TDMA FN */ #define TRX_CHDR_LEN (1 + 4) /* Uplink v0 header length: 1 RSSI + 2 ToA256 */ @@ -920,7 +917,7 @@ static int trx_data_read_cb(struct osmo_fd *ofd, unsigned int what) { struct trx_l1h *l1h = ofd->data; - uint8_t buf[TRX_DATA_MSG_MAX_LEN]; + uint8_t buf[TRXD_MSG_BUF_SIZE]; struct trx_ul_burst_ind bi; ssize_t hdr_len, buf_len; uint8_t pdu_ver; @@ -1002,7 +999,7 @@ { ssize_t snd_len; uint8_t pdu_ver = l1h->config.trxd_pdu_ver_use; - uint8_t buf[TRX_DATA_MSG_MAX_LEN]; + uint8_t buf[TRXD_MSG_BUF_SIZE]; if ((br->burst_len != GSM_BURST_LEN) && (br->burst_len != EGPRS_BURST_LEN)) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Tx burst length %zu invalid\n", diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 76dfbc4..133f3d2 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -2,6 +2,8 @@ /* TRXC read/send buffer size */ #define TRXC_MSG_BUF_SIZE 128 +/* TRXD read/send buffer size */ +#define TRXD_MSG_BUF_SIZE 512 struct trx_dl_burst_req; struct trx_l1h; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Gerrit-Change-Number: 23826 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 Apr 20 23:05:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:19 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: 'burst type' is actually modulation type References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23827 ) Change subject: osmo-bts-trx: 'burst type' is actually modulation type ...................................................................... osmo-bts-trx: 'burst type' is actually modulation type Burst type and modulation type are actually different things. Change-Id: Ic06c96434ad32dd3770b88cb1fefcbefb2fc3928 Related: SYS#4895, OS#4941, OS#4006 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/sched_lchan_pdtch.c M src/osmo-bts-trx/trx_if.c 3 files changed, 18 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/23827/1 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index b1e4294..ad6e5c5 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -63,9 +63,9 @@ #define GPRS_BURST_LEN GSM_BURST_LEN #define EGPRS_BURST_LEN 444 -enum trx_burst_type { - TRX_BURST_GMSK, - TRX_BURST_8PSK, +enum trx_mod_type { + TRX_MOD_T_GMSK, + TRX_MOD_T_8PSK, }; /* A set of measurements belonging to one Uplink burst */ @@ -85,7 +85,7 @@ /* scheduler */ bool active; /* Channel is active */ ubit_t *dl_bursts; /* burst buffer for TX */ - enum trx_burst_type dl_burst_type; /* GMSK or 8PSK burst type */ + enum trx_mod_type dl_mod_type; /* Downlink modulation 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 */ @@ -244,7 +244,7 @@ int8_t rssi; /*!< Received Signal Strength Indication */ /* Optional fields (defined by flags) */ - enum trx_burst_type bt; /*!< Modulation type */ + enum trx_mod_type mod; /*!< Modulation type */ uint8_t tsc_set; /*!< Training Sequence Set */ uint8_t tsc; /*!< Training Sequence Code */ int16_t ci_cb; /*!< Carrier-to-Interference ratio (in centiBels) */ diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c index 5e61a1d..d936f75 100644 --- a/src/osmo-bts-trx/sched_lchan_pdtch.c +++ b/src/osmo-bts-trx/sched_lchan_pdtch.c @@ -156,7 +156,7 @@ struct gsm_bts_trx_ts *ts = &l1t->trx->ts[br->tn]; struct msgb *msg = NULL; /* make GCC happy */ ubit_t *burst, **bursts_p = &l1ts->chan_state[chan].dl_bursts; - enum trx_burst_type *burst_type = &l1ts->chan_state[chan].dl_burst_type; + enum trx_mod_type *mod = &l1ts->chan_state[chan].dl_mod_type; int rc = 0; /* send burst, if we already got a frame */ @@ -205,9 +205,9 @@ msgb_free(msg); goto no_msg; } else if (rc == GSM0503_EGPRS_BURSTS_NBITS) { - *burst_type = TRX_BURST_8PSK; + *mod = TRX_MOD_T_8PSK; } else { - *burst_type = TRX_BURST_GMSK; + *mod = TRX_MOD_T_GMSK; } /* free message */ @@ -215,7 +215,7 @@ send_burst: /* compose burst */ - if (*burst_type == TRX_BURST_8PSK) { + if (*mod == TRX_MOD_T_8PSK) { burst = *bursts_p + bid * 348; memset(br->burst, 1, 9); memcpy(br->burst + 9, burst, 174); diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 905d3da..bfa1514 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -786,11 +786,11 @@ /* Modulation info and TSC set */ mts = (buf[0] >> 3) & 0b1111; if ((mts & 0b1100) == 0x00) { - bi->bt = TRX_BURST_GMSK; + bi->mod = TRX_MOD_T_GMSK; bi->tsc_set = mts & 0b11; bi->flags |= TRX_BI_F_MOD_TYPE; } else if ((mts & 0b0100) == 0b0100) { - bi->bt = TRX_BURST_8PSK; + bi->mod = TRX_MOD_T_8PSK; bi->tsc_set = mts & 0b1; bi->flags |= TRX_BI_F_MOD_TYPE; } else { @@ -854,15 +854,15 @@ { /* Modulation types defined in 3GPP TS 45.002 */ static const size_t bl[] = { - [TRX_BURST_GMSK] = 148, /* 1 bit per symbol */ - [TRX_BURST_8PSK] = 444, /* 3 bits per symbol */ + [TRX_MOD_T_GMSK] = 148, /* 1 bit per symbol */ + [TRX_MOD_T_8PSK] = 444, /* 3 bits per symbol */ }; /* Verify burst length */ - if (bl[bi->bt] != buf_len) { + if (bl[bi->mod] != buf_len) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, "Rx TRXD message with odd burst length %zu, " - "expected %zu\n", buf_len, bl[bi->bt]); + "expected %zu\n", buf_len, bl[bi->mod]); return -EINVAL; } @@ -878,8 +878,8 @@ /* Modulation types defined in 3GPP TS 45.002 */ static const char *mod_names[] = { - [TRX_BURST_GMSK] = "GMSK", - [TRX_BURST_8PSK] = "8-PSK", + [TRX_MOD_T_GMSK] = "GMSK", + [TRX_MOD_T_8PSK] = "8-PSK", }; /* Initialize the string buffer */ @@ -901,7 +901,7 @@ /* Modulation and TSC set */ if (bi->flags & TRX_BI_F_MOD_TYPE) - OSMO_STRBUF_PRINTF(sb, " mod=%s", mod_names[bi->bt]); + OSMO_STRBUF_PRINTF(sb, " mod=%s", mod_names[bi->mod]); /* Training Sequence Code */ if (bi->flags & TRX_BI_F_TS_INFO) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic06c96434ad32dd3770b88cb1fefcbefb2fc3928 Gerrit-Change-Number: 23827 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 Apr 20 23:05:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:20 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move MTS parser into trx_data_parse_mts() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23828 ) Change subject: osmo-bts-trx: move MTS parser into trx_data_parse_mts() ...................................................................... osmo-bts-trx: move MTS parser into trx_data_parse_mts() This would allow to re-use this code from the TRXDv2 parser. Change-Id: I2de2cb2d58110452d8dedbcacfef28f85f6d67c1 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 38 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/28/23828/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index bfa1514..e51b2e0 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -752,12 +752,45 @@ return TRX_UL_V0HDR_LEN; } +/* Parser for MTS (Modulation and Training Sequence) */ +static int trx_data_parse_mts(struct trx_l1h *l1h, + struct trx_ul_burst_ind *bi, + const uint8_t mts) +{ + if (mts & (1 << 7)) { + bi->flags |= TRX_BI_F_NOPE_IND; + return 0; + } + + /* | 7 6 5 4 3 2 1 0 | Bitmask / description + * | . 0 0 X X . . . | GMSK, 4 TSC sets (0..3) + * | . 0 1 0 X . . . | 8-PSK, 2 TSC sets (0..1) */ + if ((mts >> 5) == 0x00) { + bi->mod = TRX_MOD_T_GMSK; + bi->tsc_set = (mts >> 3) & 0x03; + } else if ((mts >> 4) == 0x02) { + bi->mod = TRX_MOD_T_8PSK; + bi->tsc_set = (mts >> 3) & 0x01; + } else { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Rx TRXD PDU with unknown or not supported " + "modulation (MTS=0x%02x)\n", mts); + return -ENOTSUP; + } + + /* Training Sequence Code */ + bi->tsc = mts & 0x07; + + bi->flags |= (TRX_BI_F_MOD_TYPE | TRX_BI_F_TS_INFO); + + return 0; +} + /* TRXD header dissector for version 0x01 */ static int trx_data_handle_hdr_v1(struct trx_l1h *l1h, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { - uint8_t mts; int rc; /* Make sure we have enough data */ @@ -777,33 +810,11 @@ buf_len -= rc; buf += rc; - /* IDLE / NOPE frame indication */ - if (buf[0] & (1 << 7)) { - bi->flags |= TRX_BI_F_NOPE_IND; - goto skip_mts; - } + /* MTS (Modulation and Training Sequence) */ + rc = trx_data_parse_mts(l1h, bi, buf[0]); + if (rc < 0) + return rc; - /* Modulation info and TSC set */ - mts = (buf[0] >> 3) & 0b1111; - if ((mts & 0b1100) == 0x00) { - bi->mod = TRX_MOD_T_GMSK; - bi->tsc_set = mts & 0b11; - bi->flags |= TRX_BI_F_MOD_TYPE; - } else if ((mts & 0b0100) == 0b0100) { - bi->mod = TRX_MOD_T_8PSK; - bi->tsc_set = mts & 0b1; - bi->flags |= TRX_BI_F_MOD_TYPE; - } else { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Indicated modulation 0x%02x is not supported\n", mts & 0b1110); - return -ENOTSUP; - } - - /* Training Sequence Code */ - bi->tsc = buf[0] & 0b111; - bi->flags |= TRX_BI_F_TS_INFO; - -skip_mts: /* C/I: Carrier-to-Interference ratio (in centiBels) */ bi->ci_cb = (int16_t) osmo_load16be(buf + 1); bi->flags |= TRX_BI_F_CI_CB; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2de2cb2d58110452d8dedbcacfef28f85f6d67c1 Gerrit-Change-Number: 23828 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 Apr 20 23:05:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:21 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23829 ) Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... osmo-bts-trx: discard TRXD PDUs with unexpected version Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 11 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/29/23829/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index e51b2e0..a528599 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -945,8 +945,18 @@ /* Pre-clean (initialize) the flags */ bi.flags = 0x00; - /* Parse header depending on the PDU version */ + /* Parse PDU version first */ pdu_ver = buf[0] >> 4; + + /* Make sure that PDU version matches our expectations */ + if (pdu_ver != l1h->config.trxd_pdu_ver_use) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Rx TRXD PDU with unexpected version %u (expected %u)\n", + pdu_ver, l1h->config.trxd_pdu_ver_use); + return -EIO; + } + + /* Parse header depending on the PDU version */ switch (pdu_ver) { case 0: /* Legacy protocol has no version indicator */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 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 Apr 20 23:05:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:21 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23830 ) Change subject: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() ...................................................................... osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() Change-Id: Ib3c4a5ad7f16196dc5c591aa0b4d7e0ec3267f05 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 5 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/30/23830/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index a528599..4364acf 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -743,12 +743,6 @@ bi->rssi = -(int8_t)buf[5]; bi->toa256 = (int16_t) osmo_load16be(buf + 6); - if (bi->fn >= GSM_TDMA_HYPERFRAME) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Illegal TDMA fn=%u\n", bi->fn); - return -EINVAL; - } - return TRX_UL_V0HDR_LEN; } @@ -975,6 +969,11 @@ if (hdr_len < 0) return hdr_len; + if (bi.fn >= GSM_TDMA_HYPERFRAME) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Illegal TDMA fn=%u\n", bi.fn); + return -EINVAL; + } + if (bi.flags & TRX_BI_F_NOPE_IND) { bi.burst_len = 0; goto skip_burst; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib3c4a5ad7f16196dc5c591aa0b4d7e0ec3267f05 Gerrit-Change-Number: 23830 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 Apr 20 23:05:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:21 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: get rid of TRX_CHDR_LEN macro References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23831 ) Change subject: osmo-bts-trx: cosmetic: get rid of TRX_CHDR_LEN macro ...................................................................... osmo-bts-trx: cosmetic: get rid of TRX_CHDR_LEN macro The 'CHDR' stands for 'Common Header', but this does not apply to TRXDv2 because TDMA frame number may not be present in the batched PDUs. Let's avoid potential confusion by removing it. Change-Id: I80495df474c432f4c0a4cfa6f917821d7b35859a --- M src/osmo-bts-trx/trx_if.c 1 file changed, 3 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/31/23831/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 4364acf..a458fa6 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -718,11 +718,9 @@ * TRX burst data socket */ -/* Common header length: 1/2 VER + 1/2 TDMA TN + 4 TDMA FN */ -#define TRX_CHDR_LEN (1 + 4) -/* Uplink v0 header length: 1 RSSI + 2 ToA256 */ -#define TRX_UL_V0HDR_LEN (TRX_CHDR_LEN + 1 + 2) -/* Uplink v1 header length: + 1 MTS + 2 C/I */ +/* Uplink TRXDv0 header length: TDMA TN + FN + RSSI + ToA256 */ +#define TRX_UL_V0HDR_LEN (1 + 4 + 1 + 2) +/* Uplink TRXDv1 header length: additional MTS + C/I */ #define TRX_UL_V1HDR_LEN (TRX_UL_V0HDR_LEN + 1 + 2) /* TRXD header dissector for version 0 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I80495df474c432f4c0a4cfa6f917821d7b35859a Gerrit-Change-Number: 23831 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 Apr 20 23:05:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:21 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor handling of version specific TRXD parts References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23832 ) Change subject: osmo-bts-trx: refactor handling of version specific TRXD parts ...................................................................... osmo-bts-trx: refactor handling of version specific TRXD parts Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 103 insertions(+), 122 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/32/23832/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index a458fa6..bd04f5c 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -723,29 +723,18 @@ /* Uplink TRXDv1 header length: additional MTS + C/I */ #define TRX_UL_V1HDR_LEN (TRX_UL_V0HDR_LEN + 1 + 2) -/* TRXD header dissector for version 0 */ -static int trx_data_handle_hdr_v0(struct trx_l1h *l1h, - struct trx_ul_burst_ind *bi, - const uint8_t *buf, size_t buf_len) +/* Parser for TRXDv0 header (and part of TRXDv1) */ +static inline void trx_data_parse_hdr_v0(struct trx_ul_burst_ind *bi, + const uint8_t *buf) { - /* Make sure we have enough data */ - if (buf_len < TRX_UL_V0HDR_LEN) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Short read on TRXD, missing version 0 header " - "(len=%zu vs expected %d)\n", buf_len, TRX_UL_V0HDR_LEN); - return -EIO; - } - bi->tn = buf[0] & 0b111; bi->fn = osmo_load32be(buf + 1); bi->rssi = -(int8_t)buf[5]; bi->toa256 = (int16_t) osmo_load16be(buf + 6); - - return TRX_UL_V0HDR_LEN; } /* Parser for MTS (Modulation and Training Sequence) */ -static int trx_data_parse_mts(struct trx_l1h *l1h, +static int trx_data_parse_mts(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t mts) { @@ -764,7 +753,7 @@ bi->mod = TRX_MOD_T_8PSK; bi->tsc_set = (mts >> 3) & 0x01; } else { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + LOGPPHI(phy_inst, DTRX, LOGL_ERROR, "Rx TRXD PDU with unknown or not supported " "modulation (MTS=0x%02x)\n", mts); return -ENOTSUP; @@ -778,32 +767,51 @@ return 0; } -/* TRXD header dissector for version 0x01 */ -static int trx_data_handle_hdr_v1(struct trx_l1h *l1h, - struct trx_ul_burst_ind *bi, - const uint8_t *buf, size_t buf_len) +/* Parser for TRXDv0 PDU */ +static int trx_data_parse_pdu_v0(struct phy_instance *phy_inst, + struct trx_ul_burst_ind *bi, + const uint8_t *buf, size_t buf_len) +{ + /* Parse TRXDv0 specific header part */ + trx_data_parse_hdr_v0(bi, buf); + buf_len -= TRX_UL_V0HDR_LEN; + + /* Guess modulation and burst length by the rest octets. + * NOTE: a legacy transceiver may append two garbage bytes. */ + switch (buf_len) { + case EGPRS_BURST_LEN + 2: + case EGPRS_BURST_LEN: + bi->burst_len = EGPRS_BURST_LEN; + bi->mod = TRX_MOD_T_GMSK; + break; + case GSM_BURST_LEN + 2: + case GSM_BURST_LEN: + bi->burst_len = GSM_BURST_LEN; + bi->mod = TRX_MOD_T_GMSK; + break; + default: + LOGPPHI(phy_inst, DTRX, LOGL_NOTICE, + "Rx TRXD PDU with odd burst length %zu\n", buf_len); + return -EINVAL; + } + + return TRX_UL_V0HDR_LEN; +} + +/* Parser for TRXDv1 PDU */ +static int trx_data_parse_pdu_v1(struct phy_instance *phy_inst, + struct trx_ul_burst_ind *bi, + const uint8_t *buf, size_t buf_len) { int rc; - /* Make sure we have enough data */ - if (buf_len < TRX_UL_V1HDR_LEN) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Short read on TRXD, missing version 1 header " - "(len=%zu vs expected %d)\n", buf_len, TRX_UL_V1HDR_LEN); - return -EIO; - } - - /* Parse v0 specific part */ - rc = trx_data_handle_hdr_v0(l1h, bi, buf, buf_len); - if (rc < 0) - return rc; - - /* Move closer to the v1 specific part */ - buf_len -= rc; - buf += rc; + /* Parse TRXDv0 specific header part */ + trx_data_parse_hdr_v0(bi, buf); + buf_len -= TRX_UL_V0HDR_LEN; + buf += TRX_UL_V0HDR_LEN; /* MTS (Modulation and Training Sequence) */ - rc = trx_data_parse_mts(l1h, bi, buf[0]); + rc = trx_data_parse_mts(phy_inst, bi, buf[0]); if (rc < 0) return rc; @@ -814,31 +822,28 @@ return TRX_UL_V1HDR_LEN; } -/* TRXD burst handler for PDU version 0 */ -static int trx_data_handle_burst_v0(struct trx_l1h *l1h, - struct trx_ul_burst_ind *bi, - const uint8_t *buf, size_t buf_len) +/* Parser for burst bits (version independent) */ +static int trx_data_parse_burst(struct trx_ul_burst_ind *bi, + const uint8_t *buf, size_t buf_len) { size_t i; - /* Verify burst length */ - switch (buf_len) { - /* Legacy transceivers append two padding bytes */ - case EGPRS_BURST_LEN + 2: - case GSM_BURST_LEN + 2: - bi->burst_len = buf_len - 2; - break; - case EGPRS_BURST_LEN: - case GSM_BURST_LEN: - bi->burst_len = buf_len; - break; - - default: - LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, - "Rx TRXD message with odd burst length %zu\n", buf_len); - return -EINVAL; + /* NOPE.ind contains no burst */ + if (bi->flags | TRX_BI_F_NOPE_IND) { + bi->burst_len = 0; + return 0; } + /* Modulation types defined in 3GPP TS 45.002 */ + static const size_t bl[] = { + [TRX_MOD_T_GMSK] = 148, /* 1 bit per symbol */ + [TRX_MOD_T_8PSK] = 444, /* 3 bits per symbol */ + }; + + bi->burst_len = bl[bi->mod]; + if (buf_len < bi->burst_len) + return -EINVAL; + /* Convert unsigned soft-bits [254..0] to soft-bits [-127..127] */ for (i = 0; i < bi->burst_len; i++) { if (buf[i] == 255) @@ -850,30 +855,6 @@ return 0; } -/* TRXD burst handler for PDU version 1 */ -static int trx_data_handle_burst_v1(struct trx_l1h *l1h, - struct trx_ul_burst_ind *bi, - const uint8_t *buf, size_t buf_len) -{ - /* Modulation types defined in 3GPP TS 45.002 */ - static const size_t bl[] = { - [TRX_MOD_T_GMSK] = 148, /* 1 bit per symbol */ - [TRX_MOD_T_8PSK] = 444, /* 3 bits per symbol */ - }; - - /* Verify burst length */ - if (bl[bi->mod] != buf_len) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, - "Rx TRXD message with odd burst length %zu, " - "expected %zu\n", buf_len, bl[bi->mod]); - return -EINVAL; - } - - /* The PDU format is the same as for version 0. - * NOTE: other modulation types to be handled separately. */ - return trx_data_handle_burst_v0(l1h, bi, buf, buf_len); -} - static const char *trx_data_desc_msg(const struct trx_ul_burst_ind *bi) { struct osmo_strbuf sb; @@ -916,15 +897,31 @@ return buf; } +static const struct { + int (*parse)(struct phy_instance *phy_inst, + struct trx_ul_burst_ind *bi, + const uint8_t *buf, size_t buf_len); + size_t hdr_len; +} trx_data_codec[16] = { + [0] = { /* TRXDv0 */ + .hdr_len = TRX_UL_V0HDR_LEN, + .parse = &trx_data_parse_pdu_v0, + }, + [1] = { /* TRXDv1 */ + .hdr_len = TRX_UL_V1HDR_LEN, + .parse = &trx_data_parse_pdu_v1, + }, +}; + /* Parse TRXD message from transceiver, compose an UL burst indication. */ static int trx_data_read_cb(struct osmo_fd *ofd, unsigned int what) { struct trx_l1h *l1h = ofd->data; uint8_t buf[TRXD_MSG_BUF_SIZE]; + const uint8_t *ptr = &buf[0]; struct trx_ul_burst_ind bi; ssize_t hdr_len, buf_len; uint8_t pdu_ver; - int rc; buf_len = recv(ofd->fd, buf, sizeof(buf), 0); if (buf_len <= 0) { @@ -948,56 +945,40 @@ return -EIO; } - /* Parse header depending on the PDU version */ - switch (pdu_ver) { - case 0: - /* Legacy protocol has no version indicator */ - hdr_len = trx_data_handle_hdr_v0(l1h, &bi, buf, buf_len); - break; - case 1: - hdr_len = trx_data_handle_hdr_v1(l1h, &bi, buf, buf_len); - break; - default: + OSMO_ASSERT(trx_data_codec[pdu_ver].parse != NULL); + + /* Make sure that we have enough bytes to parse the header */ + if (buf_len < trx_data_codec[pdu_ver].hdr_len) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "TRXD PDU version %u is not supported\n", pdu_ver); - return -ENOTSUP; - } - - /* Header parsing error */ - if (hdr_len < 0) - return hdr_len; - - if (bi.fn >= GSM_TDMA_HYPERFRAME) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Illegal TDMA fn=%u\n", bi.fn); + "Rx malformed TRXDv%u PDU: len=%zd < expected %zu\n", + pdu_ver, buf_len, trx_data_codec[pdu_ver].hdr_len); return -EINVAL; } - if (bi.flags & TRX_BI_F_NOPE_IND) { - bi.burst_len = 0; - goto skip_burst; - } + /* Call version specific header parser */ + hdr_len = trx_data_codec[pdu_ver].parse(l1h->phy_inst, &bi, buf, buf_len); + if (hdr_len < 0) + return hdr_len; - /* We're done with the header now */ + /* We're done with the header */ buf_len -= hdr_len; + ptr += hdr_len; - /* Handle burst bits */ - switch (pdu_ver) { - case 0: - rc = trx_data_handle_burst_v0(l1h, &bi, buf + hdr_len, buf_len); - break; - case 1: - rc = trx_data_handle_burst_v1(l1h, &bi, buf + hdr_len, buf_len); - break; - default: - /* Shall not happen, just to make GCC happy */ - OSMO_ASSERT(0); + if (bi.fn >= GSM_TDMA_HYPERFRAME) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Rx malformed TRXDv%u PDU: illegal TDMA fn=%u\n", + pdu_ver, bi.fn); + return -EINVAL; } - /* Burst parsing error */ - if (rc < 0) - return rc; + /* Calculate burst length and parse it (if present) */ + if (trx_data_parse_burst(&bi, ptr, buf_len) != 0) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Rx malformed TRXDv%u PDU: odd burst length=%zd\n", + pdu_ver, buf_len); + return -EINVAL; + } -skip_burst: /* Print header & burst info */ LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, "Rx %s (pdu_ver=%u): %s\n", (bi.flags & TRX_BI_F_NOPE_IND) ? "NOPE.ind" : "UL burst", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Gerrit-Change-Number: 23832 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 Apr 20 23:05:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:05:22 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement TRXDv2 protocol support References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23833 ) Change subject: osmo-bts-trx: implement TRXDv2 protocol support ...................................................................... osmo-bts-trx: implement TRXDv2 protocol support Change-Id: I3532a6693bb335043ec390049138308991083e66 Related: SYS#4895, OS#4941, OS#4006 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/trx_if.c 2 files changed, 72 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/33/23833/1 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index ad6e5c5..e990774 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -231,12 +231,17 @@ #define TRX_BI_F_MOD_TYPE (1 << 1) #define TRX_BI_F_TS_INFO (1 << 2) #define TRX_BI_F_CI_CB (1 << 3) +#define TRX_BI_F_TRX_NUM (1 << 4) /*! UL burst indication with the corresponding meta info */ struct trx_ul_burst_ind { /* Field presence bitmask (see TRX_BI_F_*) */ uint8_t flags; + /* Used internally by the PDU parser */ + uint8_t pdu_num; /*!< Number of this PDU in the packet */ + bool more_pdus; /*!< Do we expect more PDUs? */ + /* Mandatory fields */ uint32_t fn; /*!< TDMA frame number */ uint8_t tn; /*!< TDMA time-slot number */ @@ -248,6 +253,7 @@ uint8_t tsc_set; /*!< Training Sequence Set */ uint8_t tsc; /*!< Training Sequence Code */ int16_t ci_cb; /*!< Carrier-to-Interference ratio (in centiBels) */ + uint8_t trx_num; /*!< TRX (RF channel) number */ /*! Burst soft-bits buffer */ sbit_t burst[EGPRS_BURST_LEN]; diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index bd04f5c..61dc3e6 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -722,6 +722,8 @@ #define TRX_UL_V0HDR_LEN (1 + 4 + 1 + 2) /* Uplink TRXDv1 header length: additional MTS + C/I */ #define TRX_UL_V1HDR_LEN (TRX_UL_V0HDR_LEN + 1 + 2) +/* Uplink TRXDv2 header length: TDMA TN + TRXN + MTS + RSSI + ToA256 + C/I */ +#define TRX_UL_V2HDR_LEN 1 + 1 + 1 + 1 + 2 + 2 /* Parser for TRXDv0 header (and part of TRXDv1) */ static inline void trx_data_parse_hdr_v0(struct trx_ul_burst_ind *bi, @@ -822,6 +824,47 @@ return TRX_UL_V1HDR_LEN; } +/* Parser for TRXDv2 PDU */ +static int trx_data_parse_pdu_v2(struct phy_instance *phy_inst, + struct trx_ul_burst_ind *bi, + const uint8_t *buf, size_t buf_len) +{ + int rc; + + /* TDMA timeslot number (other bits are RFU) */ + bi->tn = buf[0] & 0x07; + + /* TRX (RF channel) number and BATCH.ind */ + bi->more_pdus = !!(buf[1] & (1 << 7)); + bi->trx_num = buf[1] & 0x3f; + bi->flags |= TRX_BI_F_TRX_NUM; + + /* MTS (Modulation and Training Sequence) */ + rc = trx_data_parse_mts(phy_inst, bi, buf[2]); + if (rc < 0) + return rc; + + bi->rssi = -(int8_t)buf[3]; + bi->toa256 = (int16_t) osmo_load16be(buf + 6); + bi->ci_cb = (int16_t) osmo_load16be(buf + 1); + bi->flags |= TRX_BI_F_CI_CB; + + /* TDMA frame number is absent in batched PDUs */ + if (bi->pdu_num == 0) { + if (buf_len < sizeof(bi->fn) + TRX_UL_V2HDR_LEN) { + LOGPPHI(phy_inst, DTRX, LOGL_ERROR, + "Rx malformed TRXDv2 PDU: not enough bytes " + "to parse TDMA frame number\n"); + return -EINVAL; + } + + bi->fn = osmo_load32be(buf + TRX_UL_V2HDR_LEN); + return TRX_UL_V2HDR_LEN + sizeof(bi->fn); + } + + return TRX_UL_V2HDR_LEN; +} + /* Parser for burst bits (version independent) */ static int trx_data_parse_burst(struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) @@ -872,6 +915,10 @@ /* Common TDMA parameters */ OSMO_STRBUF_PRINTF(sb, "tn=%u fn=%u", bi->tn, bi->fn); + /* TRX (RF channel number) */ + if (bi->flags & TRX_BI_F_TRX_NUM) + OSMO_STRBUF_PRINTF(sb, " trx_num=%u", bi->trx_num); + /* RSSI and ToA256 */ OSMO_STRBUF_PRINTF(sb, " rssi=%d toa256=%d", bi->rssi, bi->toa256); @@ -911,6 +958,10 @@ .hdr_len = TRX_UL_V1HDR_LEN, .parse = &trx_data_parse_pdu_v1, }, + [2] = { /* TRXDv2 */ + .hdr_len = TRX_UL_V2HDR_LEN, + .parse = &trx_data_parse_pdu_v2, + }, }; /* Parse TRXD message from transceiver, compose an UL burst indication. */ @@ -931,9 +982,6 @@ return buf_len; } - /* Pre-clean (initialize) the flags */ - bi.flags = 0x00; - /* Parse PDU version first */ pdu_ver = buf[0] >> 4; @@ -947,6 +995,13 @@ OSMO_ASSERT(trx_data_codec[pdu_ver].parse != NULL); + /* We're about to parse the first PDU */ + bi.pdu_num = 0; + +loop: + /* Reset (initialize) the flags */ + bi.flags = 0x00; + /* Make sure that we have enough bytes to parse the header */ if (buf_len < trx_data_codec[pdu_ver].hdr_len) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, @@ -987,6 +1042,14 @@ /* feed received burst into scheduler code */ trx_sched_route_burst_ind(&bi, &l1h->l1s); + /* Starting from TRXDv2, there can be batched PDUs */ + if (bi.more_pdus) { + buf_len -= bi.burst_len; + ptr += bi.burst_len; + bi.pdu_num++; + goto loop; + } + return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3532a6693bb335043ec390049138308991083e66 Gerrit-Change-Number: 23833 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 Apr 20 23:41:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 20 Apr 2021 23:41:55 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' 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/+/23822 to look at the new patch set (#3). Change subject: osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' ...................................................................... osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' TRXDv2 brings significant changes to the whole PDU structure, not just the header. Let's highlight this in the code / strings. Change-Id: Id0274bd1ae5c419548596ed1852e6a28ec62b713 Related: SYS#4895, OS#4941, OS#4006 --- M include/osmo-bts/phy_link.h M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h M src/osmo-bts-trx/trx_provision_fsm.c M src/osmo-bts-trx/trx_vty.c 7 files changed, 50 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/22/23822/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id0274bd1ae5c419548596ed1852e6a28ec62b713 Gerrit-Change-Number: 23822 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 Apr 21 06:31:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:31:18 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: set don't-fragment flag on all TRXD packets In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23814 ) Change subject: osmo-bts-trx: set don't-fragment flag on all TRXD packets ...................................................................... Patch Set 5: Code-Review-2 why that? I thought the point was to _allow_ IP fragmentation in large TRXD PDUs? You're doing the exact opposite here? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I25415b76b69ccf43f83ddfb0e7dd1e330fb23aa7 Gerrit-Change-Number: 23814 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:31:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:31:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:31:36 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_if.py: set the don't-fragment flag In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23815 ) Change subject: trx_toolkit/data_if.py: set the don't-fragment flag ...................................................................... Patch Set 2: Code-Review-2 why that? I thought the point was to _allow_ IP fragmentation in large TRXD PDUs? You're doing the exact opposite here? -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If49dfe5d2298b3c2f91f790a3a94ead1a103a0cc Gerrit-Change-Number: 23815 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:31:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:31:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:31:43 +0000 Subject: Change in osmo-trx[master]: TRXD: set don't-fragment flag on all outgoing packets In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/23813 ) Change subject: TRXD: set don't-fragment flag on all outgoing packets ...................................................................... Patch Set 1: Code-Review-2 why that? I thought the point was to _allow_ IP fragmentation in large TRXD PDUs? You're doing the exact opposite here? -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/23813 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I0891f1d80e4c7c92a58b34ac986ef5334e8c78e2 Gerrit-Change-Number: 23813 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:31: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 Apr 21 06:32:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:32:07 +0000 Subject: Change in osmo-bts[rel-1.3.1]: lchan2lch_par(): fix missing default branch in switch In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23820 ) Change subject: lchan2lch_par(): fix missing default branch in switch ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Gerrit-Change-Number: 23820 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 06:32: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 Apr 21 06:32:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:32:13 +0000 Subject: Change in osmo-bts[rel-1.3.1]: lchan2lch_par(): fix missing default branch in switch In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23820 ) Change subject: lchan2lch_par(): fix missing default branch in switch ...................................................................... lchan2lch_par(): fix missing default branch in switch New channel mode values have recently been added with change [1] to 'enum gsm48_chan_mode'. The lack of default branch in lchan2lch_par() caused build failures on Jenkins: oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V2_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V3_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V5_VAMOS? not handled in switch [-Werror=switch] This function is duplicated in osmo-bts-{lc15,oc2g,octphy,sysmo}, so we unfortunately need to apply the same fix to all copy-pasted files. Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Related: [1] Ie0ea592da5610ae70290106d004e549cf3212a89 --- M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-sysmo/oml.c 4 files changed, 63 insertions(+), 25 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index 44139cf..39d0e5e 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -935,7 +935,7 @@ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp; } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1020,10 +1020,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1032,6 +1035,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1054,7 +1058,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1390,6 +1397,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1404,7 +1412,10 @@ conf_req->hLayer3 = (HANDLE)l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index ced6ad1..8fd3688 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -950,7 +950,7 @@ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp; } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1035,10 +1035,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1047,6 +1050,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1069,7 +1073,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1401,6 +1408,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1415,7 +1423,10 @@ conf_req->hLayer3 = (HANDLE)l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index bf17125..b7f4935 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -250,7 +250,7 @@ p_Config->abyRate[i] = cOCTVC1_GSM_AMR_CODEC_MODE_ENUM_UNSET; } -static void lchan2lch_par(struct gsm_lchan *lchan, +static int lchan2lch_par(struct gsm_lchan *lchan, tOCTVC1_GSM_LOGICAL_CHANNEL_CONFIG * p_Config) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; @@ -348,11 +348,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; - + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } /*********************************************************************** @@ -444,6 +446,7 @@ struct octphy_hdl *fl1h = pinst->phy_link->u.octphy.hdl; struct msgb *msg = l1p_msgb_alloc(); tOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CMD *lac; + int rc; lac = (tOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CMD *) msgb_put(msg, sizeof(*lac)); @@ -458,8 +461,10 @@ lac->Config.byTimingAdvance = lchan->rqd_ta; lac->Config.byBSIC = lchan->ts->trx->bts->bsic; - - lchan2lch_par(lchan, &lac->Config); + if ((rc = lchan2lch_par(lchan, &lac->Config)) != 0) { + talloc_free(msg); + return rc; + } mOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CMD_SWAP(lac); diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 8e38c60..ac3176c 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -943,7 +943,7 @@ #endif /* L1_HAS_RTP_MODE */ } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1028,10 +1028,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1040,6 +1043,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1062,7 +1066,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1347,6 +1354,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1361,7 +1369,10 @@ conf_req->hLayer3 = l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Gerrit-Change-Number: 23820 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: pespin 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 Apr 21 06:32:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:32:20 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0-1-g4f346b04_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 06: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 Wed Apr 21 06:32:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:32:35 +0000 Subject: Change in osmo-bts[master]: lchan2lch_par(): fix missing default branch in switch In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23816 ) Change subject: lchan2lch_par(): fix missing default branch in switch ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Gerrit-Change-Number: 23816 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 21 Apr 2021 06:32:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:32:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:32:37 +0000 Subject: Change in osmo-bts[master]: lchan2lch_par(): fix missing default branch in switch In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23816 ) Change subject: lchan2lch_par(): fix missing default branch in switch ...................................................................... lchan2lch_par(): fix missing default branch in switch New channel mode values have recently been added with change [1] to 'enum gsm48_chan_mode'. The lack of default branch in lchan2lch_par() caused build failures on Jenkins: oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V2_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V3_VAMOS? not handled in switch [-Werror=switch] oml.c:956:2: error: enumeration value ?GSM48_CMODE_SPEECH_V5_VAMOS? not handled in switch [-Werror=switch] This function is duplicated in osmo-bts-{lc15,oc2g,octphy,sysmo}, so we unfortunately need to apply the same fix to all copy-pasted files. Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Related: [1] Ie0ea592da5610ae70290106d004e549cf3212a89 --- M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-sysmo/oml.c 4 files changed, 63 insertions(+), 25 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index 44139cf..39d0e5e 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -935,7 +935,7 @@ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp; } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1020,10 +1020,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1032,6 +1035,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1054,7 +1058,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1390,6 +1397,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1404,7 +1412,10 @@ conf_req->hLayer3 = (HANDLE)l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index ced6ad1..8fd3688 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -950,7 +950,7 @@ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp; } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1035,10 +1035,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1047,6 +1050,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1069,7 +1073,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1401,6 +1408,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1415,7 +1423,10 @@ conf_req->hLayer3 = (HANDLE)l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index bf17125..b7f4935 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -250,7 +250,7 @@ p_Config->abyRate[i] = cOCTVC1_GSM_AMR_CODEC_MODE_ENUM_UNSET; } -static void lchan2lch_par(struct gsm_lchan *lchan, +static int lchan2lch_par(struct gsm_lchan *lchan, tOCTVC1_GSM_LOGICAL_CHANNEL_CONFIG * p_Config) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; @@ -348,11 +348,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; - + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } /*********************************************************************** @@ -444,6 +446,7 @@ struct octphy_hdl *fl1h = pinst->phy_link->u.octphy.hdl; struct msgb *msg = l1p_msgb_alloc(); tOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CMD *lac; + int rc; lac = (tOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CMD *) msgb_put(msg, sizeof(*lac)); @@ -458,8 +461,10 @@ lac->Config.byTimingAdvance = lchan->rqd_ta; lac->Config.byBSIC = lchan->ts->trx->bts->bsic; - - lchan2lch_par(lchan, &lac->Config); + if ((rc = lchan2lch_par(lchan, &lac->Config)) != 0) { + talloc_free(msg); + return rc; + } mOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_CMD_SWAP(lac); diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 8e38c60..ac3176c 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -943,7 +943,7 @@ #endif /* L1_HAS_RTP_MODE */ } -static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) +static int lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan) { struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; struct gsm48_multi_rate_conf *mr_conf = @@ -1028,10 +1028,13 @@ case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: case GSM48_CMODE_DATA_3k6: - LOGP(DL1C, LOGL_ERROR, "%s: CSD not supported!\n", - gsm_lchan_name(lchan)); - break; + default: + LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "Channel mode %s is not supported!\n", + gsm48_chan_mode_name(lchan->tch_mode)); + return -ENOTSUP; } + + return 0; } static int mph_send_activate_req(struct gsm_lchan *lchan, struct sapi_cmd *cmd) @@ -1040,6 +1043,7 @@ struct msgb *msg = l1p_msgb_alloc(); int sapi = cmd->sapi; int dir = cmd->dir; + int rc; GsmL1_MphActivateReq_t *act_req; GsmL1_LogChParam_t *lch_par; @@ -1062,7 +1066,10 @@ break; case GsmL1_Sapi_TchH: case GsmL1_Sapi_TchF: - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* * Be sure that every packet is received, even if it * fails. In this case the length might be lower or 0. @@ -1347,6 +1354,7 @@ struct msgb *msg = l1p_msgb_alloc(); GsmL1_MphConfigReq_t *conf_req; GsmL1_LogChParam_t *lch_par; + int rc; /* channel mode, encryption and/or multirate have changed */ @@ -1361,7 +1369,10 @@ conf_req->hLayer3 = l1if_lchan_to_hLayer(lchan); lch_par = &conf_req->cfgParams.setLogChParams.logChParams; - lchan2lch_par(lch_par, lchan); + if ((rc = lchan2lch_par(lch_par, lchan)) != 0) { + talloc_free(msg); + return rc; + } /* Update the MS Power Level */ if (cmd->sapi == GsmL1_Sapi_Sacch && trx_ms_pwr_ctrl_is_osmo(trx)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Gerrit-Change-Number: 23816 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:33:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:33:10 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23822 ) Change subject: osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id0274bd1ae5c419548596ed1852e6a28ec62b713 Gerrit-Change-Number: 23822 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06: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 Apr 21 06:33:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:33:24 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: remove outdated TRXD protocol documentation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23823 ) Change subject: osmo-bts-trx: remove outdated TRXD protocol documentation ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfcefcbb5f30fe9b6c691578a93e6fedd5644b30 Gerrit-Change-Number: 23823 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:33:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:33:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:33:34 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: use '#pragma once' in trx_if.h In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23824 ) Change subject: osmo-bts-trx: cosmetic: use '#pragma once' in trx_if.h ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I78b93a8f5fbbd94141d30518d37c1ce05f8a681f Gerrit-Change-Number: 23824 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:33:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:35:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:35:58 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: reduce and share TRXC message buffer size In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23825 ) Change subject: osmo-bts-trx: reduce and share TRXC message buffer size ...................................................................... Patch Set 3: Actually I think particularly if you reduce the buffer size, you want to use recvfrom() instead of recv() and use the MSG_TRUNC and then check if the returned length is larger than the buffer size -> error. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I21c9ef37954c73ab74f07a3d226707744cbb2f01 Gerrit-Change-Number: 23825 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:35: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 Apr 21 06:36:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:36:14 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move TRXD message length to trx_if.h In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23826 ) Change subject: osmo-bts-trx: move TRXD message length to trx_if.h ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Gerrit-Change-Number: 23826 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:36:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:36:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:36:41 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: 'burst type' is actually modulation type In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23827 ) Change subject: osmo-bts-trx: 'burst type' is actually modulation type ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic06c96434ad32dd3770b88cb1fefcbefb2fc3928 Gerrit-Change-Number: 23827 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:36:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:37:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:37:01 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move MTS parser into trx_data_parse_mts() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23828 ) Change subject: osmo-bts-trx: move MTS parser into trx_data_parse_mts() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2de2cb2d58110452d8dedbcacfef28f85f6d67c1 Gerrit-Change-Number: 23828 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:37: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 Apr 21 06:37:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:37:34 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23829 ) Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:37:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:38:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:38:04 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23830 ) Change subject: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib3c4a5ad7f16196dc5c591aa0b4d7e0ec3267f05 Gerrit-Change-Number: 23830 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:38:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:38:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:38:23 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: get rid of TRX_CHDR_LEN macro In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23831 ) Change subject: osmo-bts-trx: cosmetic: get rid of TRX_CHDR_LEN macro ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I80495df474c432f4c0a4cfa6f917821d7b35859a Gerrit-Change-Number: 23831 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:38: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 Apr 21 06:44:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:44:59 +0000 Subject: Change in pysim[master]: pySim-shell: separate export summary with a headline In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23803 ) Change subject: pySim-shell: separate export summary with a headline ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23803/1/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/23803/1/pySim-shell.py at 293 PS1, Line 293: headli so we are appending 80 spaces.... only to then cut out only a chunk of 77 characters from that one line below? I find that somewhat odd, and cannot really undersatnd why. Why are you not formatting the whole line in one? if for some reason that's not possible with string concatenation, simply use the '%' operator like '# %77s #' % ('Export summary') And actually, I would move all of that to a function "print a heading with a surrounding box". Or, as we are using poutput(), maybe rathe "create a string containing a boxed heading" so one can simply say self._cmd.poutput(format_as_box('Export summary')). -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I90771e525b2b114bdb41a8e90d298ca991c09c3d Gerrit-Change-Number: 23803 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:44:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:45:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:45:20 +0000 Subject: Change in pysim[master]: filesystem: fix wrong helpstring for update_record_decoded In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23818 ) Change subject: filesystem: fix wrong helpstring for update_record_decoded ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibae2ab49054ac5dd6fcccddd28c98d886403dac9 Gerrit-Change-Number: 23818 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:45:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 06:47:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 06:47:02 +0000 Subject: Change in pysim[master]: utils: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23819 ) Change subject: utils: fix encoding of EF.MSISDN ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23819/1/pySim/utils.py File pySim/utils.py: https://gerrit.osmocom.org/c/pysim/+/23819/1/pySim/utils.py at 420 PS1, Line 420: Truncate overlong MSISDN > I don't think it's a good idea to silently truncate something, better raise an exception here. Ack -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b Gerrit-Change-Number: 23819 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 06:47:02 +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 Apr 21 07:02:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:02:07 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23795 ) Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23795/1/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/c/libosmocore/+/23795/1/src/gsm/gsm0808.c at 1580 PS1, Line 1580: static > Is there any reason to keep this symbol static if you expose it via the function below anyway? What [?] I agree there is not really any reason to do so. It was a (somewhat unusual) stylistic descision when the gsm0808 code base was first created. My somewhat more fundamental comment would be to go for a proper osmo_tlv_prot_def right away. This then also expresses whihc IEs are mandatory, and what their minimum length is. The "raw" tlv_definitions date from a time when osmo_tlv_prot_def did not yet exist. The latter is a superset of the former. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 07:02:07 +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 Apr 21 07:06:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:06:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_channel_needs_modify(): ask actual TCH lchan mode via VTY In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 ) Change subject: f_channel_needs_modify(): ask actual TCH lchan mode via VTY ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807/1/bsc/MSC_ConnectionHandler.ttcn File bsc/MSC_ConnectionHandler.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807/1/bsc/MSC_ConnectionHandler.ttcn at 970 PS1, Line 970: * subslot 1 is indicated in RslChannelNr (plus all current tests where this matters use subslot it's not in this case, but it would be a t_RslChanNr_Lm(?, subslot_nr) - should be trivial to add. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 Gerrit-Change-Number: 23807 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 07:06:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 07:07:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:07:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_assignment_codec_fr_by_mode_modify In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 ) Change subject: bsc: add TC_assignment_codec_fr_by_mode_modify ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf4efaed986de0bbd2b663313e837352cc139f0f Gerrit-Change-Number: 23808 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 07:07: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 Apr 21 07:07:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:07:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_n3103_max_t3169 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 ) Change subject: pcu: Introduce test TC_n3103_max_t3169 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e Gerrit-Change-Number: 23811 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 07: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 Wed Apr 21 07:08:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:08:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix TC_n3105_max_t3195 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 ) Change subject: pcu: Fix TC_n3105_max_t3195 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4aa25d1220ccbeb8f1870f36651c9d6793a452b1 Gerrit-Change-Number: 23810 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 07:08: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 Apr 21 07:08:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:08:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: Switch branches to related commit hashes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 ) Change subject: deps/Makefile: Switch branches to related commit hashes ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 Gerrit-Change-Number: 23793 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 21 Apr 2021 07:08: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 Apr 21 07:08:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:08:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: Switch branches to related commit hashes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 ) Change subject: deps/Makefile: Switch branches to related commit hashes ...................................................................... deps/Makefile: Switch branches to related commit hashes Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 --- M deps/Makefile 1 file changed, 5 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/deps/Makefile b/deps/Makefile index d270a79..64e293b 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -76,8 +76,9 @@ ALL_REPOS=$(ECLIPSEGITHUB_REPOS) $(ECLIPSEGIT2_REPOS) $(OSMOGITHUB_REPOS) $(OSMOGIT_REPOS) # Tag names from 'git-describe --tags'; if not available, a commit hash may be used instead. -# In order to keep local changes in the repository of a dependency, set its commit to the -# name of a local branch here (e.g. 'master'). +# Do not put references to branches here, except for local testing: this breaks the caching +# logic of docker containers, which only invalidate their cached ttcn3 dependencies if this +# file changed. titan.Libraries.TCCUsefulFunctions_commit= R.35.B-6-gb3687da titan.ProtocolEmulations.M3UA_commit= f086e78d74defa044d864f17adaad9433fedc961 titan.ProtocolEmulations.SCCP_commit= R.7.A-11-gd4b7a6d @@ -127,8 +128,8 @@ titan.TestPorts.TELNETasp_commit= 873fe539642542cd9a901c208f1ec11c6d2f5387 titan.TestPorts.UDPasp_commit= c20d77a34f288dd70dd4aaa30e520778876e9336 titan.TestPorts.UNIX_DOMAIN_SOCKETasp_commit= R.2.A-13-gd34ab71 -titan.TestPorts.USB_commit= master -osmo-uecups_commit= master +titan.TestPorts.USB_commit= 4c742e931aae66c0046cebfe3c1de4618b6f9ffc +osmo-uecups_commit= 8362efef7c6fa341eb947a75786878e0685767b7 all: $(foreach dir,$(ALL_REPOS),$(dir)/update) clean: $(foreach dir,$(ALL_REPOS),$(dir)/clean) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 Gerrit-Change-Number: 23793 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 07:09:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:09:38 +0000 Subject: Change in libosmocore[master]: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23804 ) Change subject: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia25ac20539e8ac70fb5f70c1191bd58825151c68 Gerrit-Change-Number: 23804 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 07:09: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 Apr 21 07:10:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:10:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: fix checkout logic for branches In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23796 ) Change subject: deps/Makefile: fix checkout logic for branches ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23796 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If6bd440598d375a9947cb3a4fd88ae5809756e0e Gerrit-Change-Number: 23796 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 07:10: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 Apr 21 07:10:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:10:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: fix checkout logic for branches In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23796 ) Change subject: deps/Makefile: fix checkout logic for branches ...................................................................... deps/Makefile: fix checkout logic for branches Checkout origin/$branch instead of $branch. Otherwise git will just use the local version of branch and stay at the same commit. Note that Ia846863eff1734eca469257b9a8d5e653a45e835 changes the lines which still have "master" to the commit. Fixing this is still useful however, if a branch name is used in local testing. Change-Id: If6bd440598d375a9947cb3a4fd88ae5809756e0e --- M deps/Makefile 1 file changed, 9 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/deps/Makefile b/deps/Makefile index 64e293b..8dc2a82 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -152,7 +152,15 @@ cd $(1) && git remote set-url origin $(2)/$(1) && git fetch endif ifneq ($$($(1)_HEAD),$($(1)_commit)) - cd $(1) && git fetch && git checkout -q -f "$($(1)_commit)" + cd $(1) && \ + git fetch && \ + if git rev-parse "origin/$($(1)_commit)" 2>/dev/null; then \ + set -x && \ + git checkout -q -f "origin/$($(1)_commit)"; \ + else \ + set -x && \ + git checkout -q -f "$($(1)_commit)"; \ + fi endif endif -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23796 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If6bd440598d375a9947cb3a4fd88ae5809756e0e Gerrit-Change-Number: 23796 Gerrit-PatchSet: 2 Gerrit-Owner: osmith 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 Apr 21 07:11:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:11:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: Switch branches to related commit hashes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 ) Change subject: deps/Makefile: Switch branches to related commit hashes ...................................................................... Patch Set 4: I just merged this before I saw there was an alternative proposal to actually support branchs. Shall we revert this one? I definitely think being able to use branches is more user friendly. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 Gerrit-Change-Number: 23793 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 21 Apr 2021 07:11: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 Wed Apr 21 07:11:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:11:52 +0000 Subject: Change in osmo-ccid-firmware[master]: Fix typos in README.md In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23605 ) Change subject: Fix typos in README.md ...................................................................... Fix typos in README.md Change-Id: Ia2227b989dee0e57a41764ddfeca10e120c602e4 --- M README.md 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved diff --git a/README.md b/README.md index a635dec..1098192 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ This repository contains a C-language implementation of the USB CCID (Smart Card Reader) device class. The code is written in a portable -fashin and can be found in the `ccid_common` sub-directory. +fashion and can be found in the `ccid_common` sub-directory. The code can be built to run as an userspace program on Linux, implementing a USB Gadget using the FunctionFS interface. For this @@ -31,7 +31,7 @@ Our coding standards are described at -We us a gerrit based patch submission/review process for managing +We use a gerrit based patch submission/review process for managing contributions. Please see for more details -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23605 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: Ia2227b989dee0e57a41764ddfeca10e120c602e4 Gerrit-Change-Number: 23605 Gerrit-PatchSet: 1 Gerrit-Owner: rousseau 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 Apr 21 07:16:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:16:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns/gbproxy/sgsn: Update configs to use logging level lnssignal' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573 ) Change subject: ns/gbproxy/sgsn: Update configs to use logging level lnssignal' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie3d178e68aa81d5636c87940074cb6582ac2f131 Gerrit-Change-Number: 23573 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 07:16: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 Apr 21 07:17:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:17:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns/gbproxy/sgsn: Update configs to use logging level lnssignal' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573 ) Change subject: ns/gbproxy/sgsn: Update configs to use logging level lnssignal' ...................................................................... ns/gbproxy/sgsn: Update configs to use logging level lnssignal' In libosmocore I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d we introduced a new log subsystem; enabel it in the related configs here Change-Id: Ie3d178e68aa81d5636c87940074cb6582ac2f131 --- M gbproxy/osmo-gbproxy.cfg M ns/osmo-ns.sns.cfg M ns/osmo-ns.udp.cfg M sgsn/osmo-sgsn.cfg M sgsn/osmo-sgsn.sns.cfg 5 files changed, 7 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index b2ccb3b..dab4ef3 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -10,6 +10,7 @@ logging timestamp 1 logging print file 1 logging level lns debug + logging level lnssignal debug logging level lbssgp debug logging level gprs debug line vty diff --git a/ns/osmo-ns.sns.cfg b/ns/osmo-ns.sns.cfg index ad69f35..58d306e 100644 --- a/ns/osmo-ns.sns.cfg +++ b/ns/osmo-ns.sns.cfg @@ -31,6 +31,7 @@ logging level ljibuf debug logging level lrspro debug logging level lns debug + logging level lnssignal debug logging level lbssgp debug log gsmtap 127.0.0.1 logging filter all 0 @@ -59,6 +60,7 @@ logging level ljibuf debug logging level lrspro debug logging level lns debug + logging level lnssignal debug logging level lbssgp debug ! stats reporter statsd diff --git a/ns/osmo-ns.udp.cfg b/ns/osmo-ns.udp.cfg index 28237c5..9591427 100644 --- a/ns/osmo-ns.udp.cfg +++ b/ns/osmo-ns.udp.cfg @@ -31,6 +31,7 @@ logging level ljibuf debug logging level lrspro debug logging level lns debug + logging level lnssignal debug logging level lbssgp debug log gsmtap 127.0.0.1 logging filter all 0 @@ -59,6 +60,7 @@ logging level ljibuf debug logging level lrspro debug logging level lns debug + logging level lnssignal debug logging level lbssgp debug ! stats reporter statsd diff --git a/sgsn/osmo-sgsn.cfg b/sgsn/osmo-sgsn.cfg index 811d3ff..dfbff6c 100644 --- a/sgsn/osmo-sgsn.cfg +++ b/sgsn/osmo-sgsn.cfg @@ -21,6 +21,7 @@ logging level ref notice logging level gprs debug logging level lns debug + logging level lnssignal debug logging level lbssgp info logging level llc debug logging level sndcp debug diff --git a/sgsn/osmo-sgsn.sns.cfg b/sgsn/osmo-sgsn.sns.cfg index 69f5147..a22e737 100644 --- a/sgsn/osmo-sgsn.sns.cfg +++ b/sgsn/osmo-sgsn.sns.cfg @@ -21,6 +21,7 @@ logging level ref notice logging level gprs debug logging level lns debug + logging level lnssignal debug logging level lbssgp info logging level llc debug logging level sndcp debug -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie3d178e68aa81d5636c87940074cb6582ac2f131 Gerrit-Change-Number: 23573 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Wed Apr 21 07:21:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:21:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: remove deprecated 'logging level all everything' from configs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23834 ) Change subject: remove deprecated 'logging level all everything' from configs ...................................................................... remove deprecated 'logging level all everything' from configs it has been deprecated in libosmocore.git 2.5 years ago: commit 7e0686c6b4b456ec4e6e15689694b1bcf96c301f Author: Neels Hofmeyr Date: Mon Sep 10 20:58:52 2018 +0200 Change-Id: Ieb9e958278e7bb9d5e798f83b70dcb873a25d06d --- M bsc/osmo-bsc.cfg M bsc/osmo-stp.cfg M msc/osmo-msc.cfg M msc/osmo-stp.cfg M sgsn/osmo-sgsn.cfg M sgsn/osmo-sgsn.sns.cfg M sgsn/osmo-stp.cfg M smlc/osmo-stp.cfg 8 files changed, 0 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/34/23834/1 diff --git a/bsc/osmo-bsc.cfg b/bsc/osmo-bsc.cfg index 6401474..b64a63d 100644 --- a/bsc/osmo-bsc.cfg +++ b/bsc/osmo-bsc.cfg @@ -9,7 +9,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level rll notice logging level mm notice logging level rr notice diff --git a/bsc/osmo-stp.cfg b/bsc/osmo-stp.cfg index 8b8ccdb..b29dc91 100644 --- a/bsc/osmo-stp.cfg +++ b/bsc/osmo-stp.cfg @@ -8,7 +8,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp notice diff --git a/msc/osmo-msc.cfg b/msc/osmo-msc.cfg index ddac4cd..6db0cd3 100644 --- a/msc/osmo-msc.cfg +++ b/msc/osmo-msc.cfg @@ -7,7 +7,6 @@ logging color 0 logging print category 1 logging timestamp 1 - logging level all everything logging level rll notice logging level cc debug logging level mm debug diff --git a/msc/osmo-stp.cfg b/msc/osmo-stp.cfg index 17e611a..fd18907 100644 --- a/msc/osmo-stp.cfg +++ b/msc/osmo-stp.cfg @@ -7,7 +7,6 @@ logging color 0 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp notice diff --git a/sgsn/osmo-sgsn.cfg b/sgsn/osmo-sgsn.cfg index dfbff6c..082a353 100644 --- a/sgsn/osmo-sgsn.cfg +++ b/sgsn/osmo-sgsn.cfg @@ -14,7 +14,6 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file 1 - logging level all everything logging level mm debug logging level pag notice logging level meas notice diff --git a/sgsn/osmo-sgsn.sns.cfg b/sgsn/osmo-sgsn.sns.cfg index a22e737..988790a 100644 --- a/sgsn/osmo-sgsn.sns.cfg +++ b/sgsn/osmo-sgsn.sns.cfg @@ -14,7 +14,6 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file 1 - logging level all everything logging level mm debug logging level pag notice logging level meas notice diff --git a/sgsn/osmo-stp.cfg b/sgsn/osmo-stp.cfg index 0f480d8..bf1148f 100644 --- a/sgsn/osmo-stp.cfg +++ b/sgsn/osmo-stp.cfg @@ -13,7 +13,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp notice diff --git a/smlc/osmo-stp.cfg b/smlc/osmo-stp.cfg index dad1f2d..062bea5 100644 --- a/smlc/osmo-stp.cfg +++ b/smlc/osmo-stp.cfg @@ -8,7 +8,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp notice -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieb9e958278e7bb9d5e798f83b70dcb873a25d06d Gerrit-Change-Number: 23834 Gerrit-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 Apr 21 07:29:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 07:29:00 +0000 Subject: Change in docker-playground[master]: remove deprecated 'logging level all everything' from configs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23835 ) Change subject: remove deprecated 'logging level all everything' from configs ...................................................................... remove deprecated 'logging level all everything' from configs it has been deprecated in libosmocore.git 2.5 years ago: commit 7e0686c6b4b456ec4e6e15689694b1bcf96c301f Author: Neels Hofmeyr Date: Mon Sep 10 20:58:52 2018 +0200 Change-Id: Ia6946fae497319a894d4e664ac8642340620822e --- M nplab-m3ua-test/osmo-stp.cfg M nplab-sua-test/osmo-stp.cfg M osmo-bts-latest/osmo-bts.cfg M osmo-bts-master/osmo-bts.cfg M osmo-cn-latest/osmo-mgw.cfg M osmo-cn-latest/osmo-msc.cfg M osmo-cn-latest/osmo-msc.cfg.base M osmo-cn-latest/osmo-sgsn.cfg M osmo-cn-latest/osmo-stp.cfg M osmo-mgw-latest/osmo-mgw.cfg M osmo-mgw-master/osmo-mgw.cfg M osmo-nitb-latest/openbsc.cfg M osmo-nitb-master/openbsc.cfg M osmo-stp-latest/osmo-stp.cfg M osmo-stp-master/osmo-stp.cfg M ttcn3-bsc-test/osmo-bsc.cfg M ttcn3-bsc-test/osmo-stp.cfg M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg M ttcn3-msc-test/osmo-msc.cfg M ttcn3-msc-test/osmo-stp.cfg M ttcn3-sgsn-test/osmo-sgsn.cfg M ttcn3-sgsn-test/osmo-stp.cfg M ttcn3-sip-test/osmo-sip-connector.cfg 24 files changed, 7 insertions(+), 60 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/35/23835/1 diff --git a/nplab-m3ua-test/osmo-stp.cfg b/nplab-m3ua-test/osmo-stp.cfg index 23d94e0..90ad0d4 100644 --- a/nplab-m3ua-test/osmo-stp.cfg +++ b/nplab-m3ua-test/osmo-stp.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug @@ -29,7 +28,6 @@ logging color 0 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug diff --git a/nplab-sua-test/osmo-stp.cfg b/nplab-sua-test/osmo-stp.cfg index a0043df..4adc139 100644 --- a/nplab-sua-test/osmo-stp.cfg +++ b/nplab-sua-test/osmo-stp.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug @@ -29,7 +28,6 @@ logging color 0 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug diff --git a/osmo-bts-latest/osmo-bts.cfg b/osmo-bts-latest/osmo-bts.cfg index 841f50b..953f24a 100644 --- a/osmo-bts-latest/osmo-bts.cfg +++ b/osmo-bts-latest/osmo-bts.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 0 logging timestamp 0 - logging level all everything logging level rsl info logging level oml debug logging level rll notice diff --git a/osmo-bts-master/osmo-bts.cfg b/osmo-bts-master/osmo-bts.cfg index 841f50b..953f24a 100644 --- a/osmo-bts-master/osmo-bts.cfg +++ b/osmo-bts-master/osmo-bts.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 0 logging timestamp 0 - logging level all everything logging level rsl info logging level oml debug logging level rll notice diff --git a/osmo-cn-latest/osmo-mgw.cfg b/osmo-cn-latest/osmo-mgw.cfg index c206914..ab45de0 100644 --- a/osmo-cn-latest/osmo-mgw.cfg +++ b/osmo-cn-latest/osmo-mgw.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything logging level rtp notice logging level lglobal notice logging level llapd notice diff --git a/osmo-cn-latest/osmo-msc.cfg b/osmo-cn-latest/osmo-msc.cfg index 3015850..c7649fc 100644 --- a/osmo-cn-latest/osmo-msc.cfg +++ b/osmo-cn-latest/osmo-msc.cfg @@ -6,7 +6,7 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything + logging level set-all debug ! line vty no login diff --git a/osmo-cn-latest/osmo-msc.cfg.base b/osmo-cn-latest/osmo-msc.cfg.base index 042d847..da61a49 100644 --- a/osmo-cn-latest/osmo-msc.cfg.base +++ b/osmo-cn-latest/osmo-msc.cfg.base @@ -6,7 +6,7 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything + logging level set-all debug ! line vty no login diff --git a/osmo-cn-latest/osmo-sgsn.cfg b/osmo-cn-latest/osmo-sgsn.cfg index ef18604..19e2c5e 100644 --- a/osmo-cn-latest/osmo-sgsn.cfg +++ b/osmo-cn-latest/osmo-sgsn.cfg @@ -7,7 +7,7 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything + logging level set-all debug ! line vty no login diff --git a/osmo-cn-latest/osmo-stp.cfg b/osmo-cn-latest/osmo-stp.cfg index 96524de..b40c3b0 100644 --- a/osmo-cn-latest/osmo-stp.cfg +++ b/osmo-cn-latest/osmo-stp.cfg @@ -7,7 +7,6 @@ logging color 0 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug diff --git a/osmo-mgw-latest/osmo-mgw.cfg b/osmo-mgw-latest/osmo-mgw.cfg index 23d5603..602452d 100644 --- a/osmo-mgw-latest/osmo-mgw.cfg +++ b/osmo-mgw-latest/osmo-mgw.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 1 - logging level all everything logging level rtp notice logging level lglobal notice logging level llapd notice diff --git a/osmo-mgw-master/osmo-mgw.cfg b/osmo-mgw-master/osmo-mgw.cfg index 8f07294..27cd0a0 100644 --- a/osmo-mgw-master/osmo-mgw.cfg +++ b/osmo-mgw-master/osmo-mgw.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything logging level rtp notice logging level lglobal notice logging level llapd notice diff --git a/osmo-nitb-latest/openbsc.cfg b/osmo-nitb-latest/openbsc.cfg index 31c9a0c..6166d7e 100644 --- a/osmo-nitb-latest/openbsc.cfg +++ b/osmo-nitb-latest/openbsc.cfg @@ -8,7 +8,6 @@ logging color 1 logging print category 0 logging timestamp 0 - logging level all everything logging level rll notice logging level cc notice logging level mm debug diff --git a/osmo-nitb-master/openbsc.cfg b/osmo-nitb-master/openbsc.cfg index 31c9a0c..6166d7e 100644 --- a/osmo-nitb-master/openbsc.cfg +++ b/osmo-nitb-master/openbsc.cfg @@ -8,7 +8,6 @@ logging color 1 logging print category 0 logging timestamp 0 - logging level all everything logging level rll notice logging level cc notice logging level mm debug diff --git a/osmo-stp-latest/osmo-stp.cfg b/osmo-stp-latest/osmo-stp.cfg index e06a9e0..c4b7d41 100644 --- a/osmo-stp-latest/osmo-stp.cfg +++ b/osmo-stp-latest/osmo-stp.cfg @@ -6,7 +6,6 @@ logging color 1 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug diff --git a/osmo-stp-master/osmo-stp.cfg b/osmo-stp-master/osmo-stp.cfg index 1ab53ed..09fa036 100644 --- a/osmo-stp-master/osmo-stp.cfg +++ b/osmo-stp-master/osmo-stp.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug diff --git a/ttcn3-bsc-test/osmo-bsc.cfg b/ttcn3-bsc-test/osmo-bsc.cfg index 31cb6b1..2044346 100644 --- a/ttcn3-bsc-test/osmo-bsc.cfg +++ b/ttcn3-bsc-test/osmo-bsc.cfg @@ -13,7 +13,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level rll notice logging level mm notice logging level rr notice diff --git a/ttcn3-bsc-test/osmo-stp.cfg b/ttcn3-bsc-test/osmo-stp.cfg index b3b136e..87398ac 100644 --- a/ttcn3-bsc-test/osmo-stp.cfg +++ b/ttcn3-bsc-test/osmo-stp.cfg @@ -12,7 +12,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp notice diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index f38f23a..9b53db5 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -13,7 +13,7 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file 1 - logging level all everything + logging level set-all debug ! line vty no login diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index 2eb9824..c98980b 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -13,7 +13,7 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file 1 - logging level all everything + logging level set-all debug ! line vty no login diff --git a/ttcn3-msc-test/osmo-msc.cfg b/ttcn3-msc-test/osmo-msc.cfg index fd120b9..946ba14 100644 --- a/ttcn3-msc-test/osmo-msc.cfg +++ b/ttcn3-msc-test/osmo-msc.cfg @@ -12,7 +12,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level rll notice logging level cc debug logging level mm debug diff --git a/ttcn3-msc-test/osmo-stp.cfg b/ttcn3-msc-test/osmo-stp.cfg index 5fc4abd..8e5ad82 100644 --- a/ttcn3-msc-test/osmo-stp.cfg +++ b/ttcn3-msc-test/osmo-stp.cfg @@ -12,24 +12,7 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything - logging level lglobal notice - logging level llapd notice - logging level linp notice - logging level lmux notice - logging level lmi notice - logging level lmib notice - logging level lsms notice - logging level lctrl notice - logging level lgtp notice - logging level lstats notice - logging level lgsup notice - logging level loap notice - logging level lss7 debug - logging level lsccp debug - logging level lsua debug - logging level lm3ua debug - logging level lmgcp notice + logging level set-all debug ! line vty no login diff --git a/ttcn3-sgsn-test/osmo-sgsn.cfg b/ttcn3-sgsn-test/osmo-sgsn.cfg index 25cb224..b1fc2cf 100644 --- a/ttcn3-sgsn-test/osmo-sgsn.cfg +++ b/ttcn3-sgsn-test/osmo-sgsn.cfg @@ -13,7 +13,6 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file 1 - logging level all everything logging level mm debug logging level pag notice logging level meas notice diff --git a/ttcn3-sgsn-test/osmo-stp.cfg b/ttcn3-sgsn-test/osmo-stp.cfg index 3ee0668..127a2c5 100644 --- a/ttcn3-sgsn-test/osmo-stp.cfg +++ b/ttcn3-sgsn-test/osmo-stp.cfg @@ -12,24 +12,7 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything - logging level lglobal notice - logging level llapd notice - logging level linp notice - logging level lmux notice - logging level lmi notice - logging level lmib notice - logging level lsms notice - logging level lctrl notice - logging level lgtp notice - logging level lstats notice - logging level lgsup notice - logging level loap notice - logging level lss7 debug - logging level lsccp debug - logging level lsua debug - logging level lm3ua debug - logging level lmgcp notice + logging level set-all debug ! line vty no login diff --git a/ttcn3-sip-test/osmo-sip-connector.cfg b/ttcn3-sip-test/osmo-sip-connector.cfg index 7f54c1c..5d0a451 100644 --- a/ttcn3-sip-test/osmo-sip-connector.cfg +++ b/ttcn3-sip-test/osmo-sip-connector.cfg @@ -13,7 +13,6 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file basename - logging level all everything logging level sip debug logging level mncc debug logging level app debug -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6946fae497319a894d4e664ac8642340620822e Gerrit-Change-Number: 23835 Gerrit-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 Apr 21 09:02:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 09:02:51 +0000 Subject: Change in pysim[master]: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23836 ) Change subject: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 ...................................................................... ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 Change-Id: I344d8247ff81463e5c0140ff17e66322a61ef20f --- M pySim/ts_31_102.py 1 file changed, 12 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/36/23836/1 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 1a78a12..d2f91be 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """ -Various constants from ETSI TS 131 102 +Various constants from 3GPP TS 31.102 V16.6.0 """ # @@ -152,6 +152,13 @@ 126: 'UAC Access Identities support', 127: 'Expect control plane-based Steering of Roaming information during initial registration in VPLMN', 128: 'Call control on PDU Session by USIM', + 129: '5GS Operator PLMN List', + 130: 'Support for SUPI of type NSI or GLI or GCI', + 131: '3GPP PS Data Off separate Home and Roaming lists', + 132: 'Support for URSP by USIM', + 133: '5G Security Parameters extended', + 134: 'MuD and MiD configuration data', + 135: 'Support for Trusted non-3GPP access networks by USIM' } LOCI_STATUS_map = { @@ -633,7 +640,7 @@ def __init__(self, fid='5FC0', name='DF.5GS', desc='5GS related files'): super().__init__(fid=fid, name=name, desc=desc) files = [ - # I'm looking at 31.102 R15.9 + # I'm looking at 31.102 R16.6 EF_5GS3GPPLOCI(), EF_5GS3GPPLOCI('4f02', 0x02, 'EF.5GSN3GPPLOCI', '5GS non-3GPP location information'), LinFixedEF('4F03', 0x03, 'EF.5GS3GPPNSC', '5GS 3GPP Access NAS Security Context', rec_len={57,None}), @@ -642,8 +649,10 @@ EF_UAC_AIC(), EF_SUCI_Calc_Info(), EF_OPL5G(), - TransparentEF('4F09', 0x09, 'EF.NSI', 'Network Specific Identifier'), + TransparentEF('4F09', 0x09, 'EF.SUPI_NAI', 'SUPI as Network Access Identifier'), TransparentEF('4F0A', 0x0a, 'EF.Routing_Indicator', 'Routing Indicator', size={4,4}), + TransparentEF('4F0B', 0x0b, 'EF.URSP', 'UE Route Selector Policies per PLMN'), + TransparentEF('4F0C', 0x0c, 'EF.TN3GPPSNN', 'Trusted non-3GPP Serving network names list'), ] self.add_files(files) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I344d8247ff81463e5c0140ff17e66322a61ef20f Gerrit-Change-Number: 23836 Gerrit-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 Apr 21 09:02:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 09:02:51 +0000 Subject: Change in pysim[master]: ts_31_102: Define DF_WLAN, DF_ProSe and DF_MCS with their EFs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23837 ) Change subject: ts_31_102: Define DF_WLAN, DF_ProSe and DF_MCS with their EFs ...................................................................... ts_31_102: Define DF_WLAN, DF_ProSe and DF_MCS with their EFs Change-Id: I2d4662dc021e286a1c3293ab36aaa845b1251388 --- M pySim/ts_31_102.py 1 file changed, 58 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/37/23837/1 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index d2f91be..55c00e4 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -636,6 +636,61 @@ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={10,None}) self._construct = Struct('tai'/Bytes(9), 'pnn_record_id'/Int8ub) +# TS 31.102 Section 4.4.5 +class DF_WLAN(CardDF): + def __init__(self, fid='5f40', name='DF.WLAN', desc='Files for WLAN purpose'): + super().__init__(fid=fid, name=name, desc=desc) + files = [ + TransparentEF('4f41', 0x01, 'EF.Pseudo', 'Pseudonym'), + TransparentEF('4f42', 0x02, 'EF.UPLMNWLAN', 'User controlled PLMN selector for I-WLAN Access'), + TransparentEF('4f43', 0x03, 'EF.OPLMNWLAN', 'Operator controlled PLMN selector for I-WLAN Access'), + LinFixedEF('4f44', 0x04, 'EF.UWSIDL', 'User controlled WLAN Specific Identifier List'), + LinFixedEF('4f45', 0x05, 'EF.OWSIDL', 'Operator controlled WLAN Specific Identifier List'), + TransparentEF('4f46', 0x06, 'EF.WRI', 'WLAN Reauthentication Identity'), + LinFixedEF('4f47', 0x07, 'EF.HWSIDL', 'Home I-WLAN Specific Identifier List'), + TransparentEF('4f48', 0x08, 'EF.WEHPLMNPI', 'I-WLAN Equivalent HPLMN Presentation Indication'), + TransparentEF('4f49', 0x09, 'EF.WHPI', 'I-WLAN HPLMN Priority Indication'), + TransparentEF('4f4a', 0x0a, 'EF.WLRPLMN', 'I-WLAN Last Registered PLMN'), + TransparentEF('4f4b', 0x0b, 'EF.HPLMNDAI', 'HPLMN Direct Access Indicator'), + ] + self.add_files(files) + +# TS 31.102 Section 4.4.6 +class DF_HNB(CardDF): + def __init__(self, fid='5f50', name='DF.HNB', desc='Files for HomeNodeB purpose'): + super().__init__(fid=fid, name=name, desc=desc) + files = [ + LinFixedEF('4f01', 0x01, 'EF.ACSGL', 'Allowed CSG Lists'), + LinFixedEF('4f02', 0x02, 'EF.CSGTL', 'CSG Types'), + LinFixedEF('4f03', 0x03, 'EF.HNBN', 'Home NodeB Name'), + LinFixedEF('4f04', 0x04, 'EF.OCSGL', 'Operator CSG Lists'), + LinFixedEF('4f05', 0x05, 'EF.OCSGT', 'Operator CSG Type'), + LinFixedEF('4f06', 0x06, 'EF.OHNBN', 'Operator Home NodeB Name'), + ] + self.add_files(files) + +# TS 31.102 Section 4.4.8 +class DF_ProSe(CardDF): + def __init__(self, fid='5f90', name='DF.ProSe', desc='Files for ProSe purpose'): + super().__init__(fid=fid, name=name, desc=desc) + files = [ + LinFixedEF('4f01', 0x01, 'EF.PROSE_MON', 'ProSe Monitoring Parameters'), + LinFixedEF('4f02', 0x02, 'EF.PROSE_ANN', 'ProSe Announcing Parameters'), + LinFixedEF('4f03', 0x03, 'EF.PROSEFUNC', 'HPLMN ProSe Function'), + TransparentEF('4f04', 0x04, 'EF.PROSE_RADIO_COM', 'ProSe Direct Communication Radio Parameters'), + TransparentEF('4f05', 0x05, 'EF.PROSE_RADIO_MON', 'ProSe Direct Discovery Monitoring Radio Parameters'), + TransparentEF('4f06', 0x06, 'EF.PROSE_RADIO_ANN', 'ProSe Direct Discovery Announcing Radio Parameters'), + LinFixedEF('4f07', 0x07, 'EF.PROSE_POLICY', 'ProSe Policy Parameters'), + LinFixedEF('4f08', 0x08, 'EF.PROSE_PLMN', 'ProSe PLMN Parameters'), + TransparentEF('4f09', 0x09, 'EF.PROSE_GC', 'ProSe Group Counter'), + TransparentEF('4f10', 0x10, 'EF.PST', 'ProSe Service Table'), + TransparentEF('4f11', 0x11, 'EF.UIRC', 'ProSe UsageInformationReportingConfiguration'), + LinFixedEF('4f12', 0x12, 'EF.PROSE_GM_DISCOVERY', 'ProSe Group Member Discovery Parameters'), + LinFixedEF('4f13', 0x13, 'EF.PROSE_RELAY', 'ProSe Relay Parameters'), + TransparentEF('4f14', 0x14, 'EF.PROSE_RELAY_DISCOVERY', 'ProSe Relay Discovery Parameters'), + ] + self.add_files(files) + class DF_USIM_5GS(CardDF): def __init__(self, fid='5FC0', name='DF.5GS', desc='5GS related files'): super().__init__(fid=fid, name=name, desc=desc) @@ -762,9 +817,9 @@ # FIXME: DF_SoLSA # FIXME: DF_PHONEBOOK # FIXME: DF_GSM_ACCESS - # FIXME: DF_WLAN - # FIXME: DF_HNB - # FIXME: DF_ProSe + DF_WLAN(), + DF_HNB(), + DF_ProSe(), # FIXME: DF_ACDC # FIXME: DF_TV DF_USIM_5GS(), -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I2d4662dc021e286a1c3293ab36aaa845b1251388 Gerrit-Change-Number: 23837 Gerrit-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 Apr 21 09:02:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 09:02:52 +0000 Subject: Change in pysim[master]: ts_31_103: Use EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from ts_51_011 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23838 ) Change subject: ts_31_103: Use EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from ts_51_011 ...................................................................... ts_31_103: Use EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from ts_51_011 Change-Id: I688cfddcf5845316f71a9641d4426a20f58c1fba --- M pySim/ts_31_103.py 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/38/23838/1 diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index cea4832..7bb7ed2 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -24,7 +24,7 @@ from pySim.filesystem import * from pySim.utils import * -from pySim.ts_51_011 import EF_AD +from pySim.ts_51_011 import EF_AD, EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from pySim.ts_31_102 import ADF_USIM import pySim.ts_102_221 @@ -176,10 +176,10 @@ EF_GBABP(), EF_GBANL(), EF_NAFKCA(), - # SMS - # SMSS - # SMSR - #EF_SMSP(), + EF_SMS(), + EF_SMSS(), + EF_SMSR(), + EF_SMSP(), EF_UICCIARI(), # FromPreferred EF_IMSConfigData(), -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I688cfddcf5845316f71a9641d4426a20f58c1fba Gerrit-Change-Number: 23838 Gerrit-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 Apr 21 09:02:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 09:02:52 +0000 Subject: Change in pysim[master]: ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23839 ) Change subject: ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) ...................................................................... ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) Change-Id: I54046375f180017373ab8e06e60ac5a542da706a --- M pySim/ts_31_103.py 1 file changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/39/23839/1 diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index 7bb7ed2..d155fdc 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """ -Various constants from ETSI TS 131 103 V14.2.0 +Various constants from 3GPP TS 31.103 V16.1.0 """ # @@ -50,6 +50,7 @@ 18: 'IMS configuration data', 19: 'XCAP Configuration Data', 20: 'WebRTC URI', + 21: 'MuD and MiD configuration data', } EF_ISIM_ADF_map = { @@ -159,6 +160,12 @@ def __init__(self, fid='6ffa', sfid=None, name='EF.WebRTCURI', desc='WebRTC URI'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) +# TS 31.103 Section 4.2.21 +class EF_MuDMiDConfigData(TransparentEF): + def __init__(self, fid='6ffe', sfid=None, name='EF.MuDMiDConfigData', + desc='MuD and MiD Configuration Data'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) + class ADF_ISIM(CardADF): def __init__(self, aid='a0000000871004', name='ADF.ISIM', fid=None, sfid=None, @@ -185,6 +192,7 @@ EF_IMSConfigData(), EF_XCAPConfigData(), EF_WebRTCURI(), + EF_MuDMiDConfigData(), ] self.add_files(files) # add those commands to the general commands of a TransparentEF -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I54046375f180017373ab8e06e60ac5a542da706a Gerrit-Change-Number: 23839 Gerrit-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 Apr 21 09:02:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 09:02:52 +0000 Subject: Change in pysim[master]: ts_31_102, ts_31_103: Add EF.FromPreferred References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23840 ) Change subject: ts_31_102, ts_31_103: Add EF.FromPreferred ...................................................................... ts_31_102, ts_31_103: Add EF.FromPreferred Change-Id: I7dc989a4ab198f3eaa45ba7060c8087354a544bb --- M pySim/ts_31_102.py M pySim/ts_31_103.py 2 files changed, 11 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/40/23840/1 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 55c00e4..5095471 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -278,7 +278,7 @@ from struct import unpack, pack from construct import * -from pySim.construct import LV, HexAdapter, BcdAdapter +from pySim.construct import LV, HexAdapter, BcdAdapter, BitsRFU from pySim.filesystem import * from pySim.ts_102_221 import EF_ARR from pySim.ts_51_011 import EF_IMSI, EF_xPLMNwAcT, EF_SPN, EF_CBMI, EF_ACC, EF_PLMNsel, EF_AD @@ -608,6 +608,13 @@ self._construct = Struct('status'/PaddedString(2, 'ascii'), 'link_to_ef_ipd'/Int8ub, 'rfu'/Byte) +# TS 31.102 Section 4.2.106 +class EF_FromPreferred(TransparentEF): + def __init__(self, fid='6ff7', sfid=None, name='EF.FromPreferred', size={1,1}, + desc='From Preferred'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = BitStruct('rfu'/BitsRFU(7), 'from_preferred'/Bit) + ###################################################################### # DF.5GS ###################################################################### @@ -814,6 +821,7 @@ LinFixedEF('6fef', None, 'EF.SDNURI', 'Service Dialling Numbers URI'), EF_IPS(), # FIXME: from EF_ePDGid onwards + EF_FromPreferred(), # FIXME: DF_SoLSA # FIXME: DF_PHONEBOOK # FIXME: DF_GSM_ACCESS diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index d155fdc..baa4d25 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -25,7 +25,7 @@ from pySim.filesystem import * from pySim.utils import * from pySim.ts_51_011 import EF_AD, EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP -from pySim.ts_31_102 import ADF_USIM +from pySim.ts_31_102 import ADF_USIM, EF_FromPreferred import pySim.ts_102_221 # Mapping between ISIM Service Number and its description @@ -188,7 +188,7 @@ EF_SMSR(), EF_SMSP(), EF_UICCIARI(), - # FromPreferred + EF_FromPreferred(), EF_IMSConfigData(), EF_XCAPConfigData(), EF_WebRTCURI(), -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I7dc989a4ab198f3eaa45ba7060c8087354a544bb Gerrit-Change-Number: 23840 Gerrit-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 Apr 21 09:02:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 09:02:52 +0000 Subject: Change in pysim[master]: filsystem.py: Add more information to exceptions References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23841 ) Change subject: filsystem.py: Add more information to exceptions ...................................................................... filsystem.py: Add more information to exceptions Change-Id: Ia9449ddfaaf5f49e0a65aeeea9435141fd55fe65 --- M pySim/filesystem.py 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/41/23841/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 36588e2..c340708 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -209,13 +209,13 @@ if child.fid in self.children: if ignore_existing: return - raise ValueError("File with given fid %s already exists" % (child.fid)) + raise ValueError("File with given fid %s already exists in %s" % (child.fid, self)) if self.lookup_file_by_sfid(child.sfid): - raise ValueError("File with given sfid %s already exists" % (child.sfid)) + raise ValueError("File with given sfid %s already exists in %s" % (child.sfid, self)) if self.lookup_file_by_name(child.name): if ignore_existing: return - raise ValueError("File with given name %s already exists" % (child.name)) + raise ValueError("File with given name %s already exists in %s" % (child.name, self)) self.children[child.fid] = child child.parent = self -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia9449ddfaaf5f49e0a65aeeea9435141fd55fe65 Gerrit-Change-Number: 23841 Gerrit-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 Apr 21 10:08:42 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 21 Apr 2021 10:08:42 +0000 Subject: Change in osmo-gsm-manuals[master]: bib: add reference to 3GPP TS 45.002, for Training Sequence definitions References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23842 ) Change subject: bib: add reference to 3GPP TS 45.002, for Training Sequence definitions ...................................................................... bib: add reference to 3GPP TS 45.002, for Training Sequence definitions Change-Id: I2d72bff8496d7b3a0ad59ce28d6be0fd3f842839 --- M common/chapters/bibliography.adoc 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/42/23842/1 diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc index 67f0cb9..df69c44 100644 --- a/common/chapters/bibliography.adoc +++ b/common/chapters/bibliography.adoc @@ -126,6 +126,10 @@ - [[[3gpp-ts-44-064]]] 3GPP TS 44.064: Mobile Station - Serving GPRS Support Node (MS-SGSN); Logical Link Control (LLC) Layer Specification https://www.3gpp.org/DynaReport/44064.htm +- [[[3gpp-ts-45-002]]] 3GPP TS 45.002: Digital cellular telecommunications + system (Phase 2+) (GSM); GSM/EDGE Multiplexing and multiple access on the + radio path + https://www.3gpp.org/DynaReport/45002.htm - [[[3gpp-ts-48-008]]] 3GPP TS 48.008: Mobile Switching Centre - Base Station system (MSC-BSS) interface; Layer 3 specification https://www.3gpp.org/DynaReport/48008.htm -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23842 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: I2d72bff8496d7b3a0ad59ce28d6be0fd3f842839 Gerrit-Change-Number: 23842 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 10:15:42 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 10:15:42 +0000 Subject: Change in pysim[master]: pysim-testdata/sysmoISIM-SJA2: change card in test rig References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23843 ) Change subject: pysim-testdata/sysmoISIM-SJA2: change card in test rig ...................................................................... pysim-testdata/sysmoISIM-SJA2: change card in test rig The sysmo-usim-sja2 which is currently used for testing somewhat old. In order to have a defined state here lets exchange it with a new card. This will also ensure that we have a card with the most recent card profile in the tester. Change-Id: Ife13823d0b0a16b1f327dd882f91d0c95af65e43 --- M pysim-testdata/sysmoISIM-SJA2.data 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/43/23843/1 diff --git a/pysim-testdata/sysmoISIM-SJA2.data b/pysim-testdata/sysmoISIM-SJA2.data index bc99766..748f3ee 100644 --- a/pysim-testdata/sysmoISIM-SJA2.data +++ b/pysim-testdata/sysmoISIM-SJA2.data @@ -4,4 +4,4 @@ KI=AABBCCDDEEFFAABBCCDDEEFFAABBCCDD OPC=12345678901234567890123456789012 IMSI=001010000000102 -ADM=11111111 +ADM=67225880 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ife13823d0b0a16b1f327dd882f91d0c95af65e43 Gerrit-Change-Number: 23843 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 Apr 21 10:22:52 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 10:22:52 +0000 Subject: Change in pysim[master]: pysim-testdata/sysmoISIM-SJA2: change card in test rig 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/+/23843 to look at the new patch set (#2). Change subject: pysim-testdata/sysmoISIM-SJA2: change card in test rig ...................................................................... pysim-testdata/sysmoISIM-SJA2: change card in test rig The sysmo-usim-sja2 which is currently used for testing somewhat old. In order to have a defined state here lets exchange it with a new card. This will also ensure that we have a card with the most recent card profile in the tester. Change-Id: Ife13823d0b0a16b1f327dd882f91d0c95af65e43 --- M pysim-testdata/sysmoISIM-SJA2.data M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/43/23843/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ife13823d0b0a16b1f327dd882f91d0c95af65e43 Gerrit-Change-Number: 23843 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 Apr 21 10:32:26 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 10:32:26 +0000 Subject: Change in pysim[master]: pysim-testdata/sysmoISIM-SJA2: change card in test rig 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/+/23843 to look at the new patch set (#3). Change subject: pysim-testdata/sysmoISIM-SJA2: change card in test rig ...................................................................... pysim-testdata/sysmoISIM-SJA2: change card in test rig The sysmo-usim-sja2 which is currently used for testing somewhat old. In order to have a defined state here lets exchange it with a new card. This will also ensure that we have a card with the most recent card profile in the tester. Change-Id: Ife13823d0b0a16b1f327dd882f91d0c95af65e43 --- M pysim-testdata/sysmoISIM-SJA2.data M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 4 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/43/23843/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ife13823d0b0a16b1f327dd882f91d0c95af65e43 Gerrit-Change-Number: 23843 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 Apr 21 10:35:47 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 10:35:47 +0000 Subject: Change in pysim[master]: pysim-testdata/sysmoISIM-SJA2: change card in test rig In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23843 ) Change subject: pysim-testdata/sysmoISIM-SJA2: change card in test rig ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ife13823d0b0a16b1f327dd882f91d0c95af65e43 Gerrit-Change-Number: 23843 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 21 Apr 2021 10:35: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 Apr 21 10:35:59 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 10:35:59 +0000 Subject: Change in pysim[master]: pysim-testdata/sysmoISIM-SJA2: change card in test rig In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23843 ) Change subject: pysim-testdata/sysmoISIM-SJA2: change card in test rig ...................................................................... pysim-testdata/sysmoISIM-SJA2: change card in test rig The sysmo-usim-sja2 which is currently used for testing somewhat old. In order to have a defined state here lets exchange it with a new card. This will also ensure that we have a card with the most recent card profile in the tester. Change-Id: Ife13823d0b0a16b1f327dd882f91d0c95af65e43 --- M pysim-testdata/sysmoISIM-SJA2.data M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 4 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved diff --git a/pysim-testdata/sysmoISIM-SJA2.data b/pysim-testdata/sysmoISIM-SJA2.data index bc99766..748f3ee 100644 --- a/pysim-testdata/sysmoISIM-SJA2.data +++ b/pysim-testdata/sysmoISIM-SJA2.data @@ -4,4 +4,4 @@ KI=AABBCCDDEEFFAABBCCDDEEFFAABBCCDD OPC=12345678901234567890123456789012 IMSI=001010000000102 -ADM=11111111 +ADM=67225880 diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index dc7b865..d95387b 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -1,7 +1,7 @@ Using PC/SC reader interface Reading ... Autodetected card type: sysmoISIM-SJA2 -ICCID: 8988211900000000025 +ICCID: 8988211000000467343 IMSI: 001010000000102 GID1: ffffffffffffffffffff GID2: ffffffffffffffffffff @@ -52,7 +52,7 @@ ffffff0000 # unused ffffff0000 # unused -ACC: 0200 +ACC: 0010 MSISDN (NPI=1 ToN=3): 6766266 Administrative data: 00000002 MS operation mode: normal @@ -108,7 +108,7 @@ ffffff # unused ffffff # unused -USIM Service Table: beff9f9de73e0408400170330006002e00000000 +USIM Service Table: beff9f9de73e0408400170330000002e00000000 Service 2 - Fixed Dialling Numbers (FDN) Service 3 - Extension 2 Service 4 - Service Dialling Numbers (SDN) @@ -156,8 +156,6 @@ Service 90 - Operator CSG Lists and corresponding indications Service 93 - Communication Control for IMS by USIM Service 94 - Extended Terminal Applications - 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/+/23843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ife13823d0b0a16b1f327dd882f91d0c95af65e43 Gerrit-Change-Number: 23843 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 11:13:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 11:13:46 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23795 ) Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... Patch Set 1: Code-Review-2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23795/1/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/c/libosmocore/+/23795/1/src/gsm/gsm0808.c at 1580 PS1, Line 1580: static > I agree there is not really any reason to do so. [?] I did it that way to follow same way of bss_att_tlvdef, that's all. Ok, I'll have a look at using osmo_tlv_prot_def. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 11:13:46 +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 Wed Apr 21 11:15:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 11:15:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: Switch branches to related commit hashes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 ) Change subject: deps/Makefile: Switch branches to related commit hashes ...................................................................... Patch Set 4: > Patch Set 4: > > I just merged this before I saw there was an alternative proposal to actually support branchs. Shall we revert this one? I definitely think being able to use branches is more user friendly. I agreee it is more user friendly, but apparently, even if supporting branches, it still collides with docker cache. So the summary is: "it's now fine to use branches locally, but not in shared infra". -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia846863eff1734eca469257b9a8d5e653a45e835 Gerrit-Change-Number: 23793 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 21 Apr 2021 11:15: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 Wed Apr 21 11:16:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 11:16:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: remove deprecated 'logging level all everything' from configs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23834 ) Change subject: remove deprecated 'logging level all everything' from configs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieb9e958278e7bb9d5e798f83b70dcb873a25d06d Gerrit-Change-Number: 23834 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 11:16:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 11:16:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 11:16:32 +0000 Subject: Change in docker-playground[master]: remove deprecated 'logging level all everything' from configs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23835 ) Change subject: remove deprecated 'logging level all everything' from configs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6946fae497319a894d4e664ac8642340620822e Gerrit-Change-Number: 23835 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 11:16:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 11:18:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 11:18:12 +0000 Subject: Change in osmo-bts[rel-1.3.1]: lchan2lch_par(): fix missing default branch in switch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23820 ) Change subject: lchan2lch_par(): fix missing default branch in switch ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I557ff8cac6564d22485c101fba9212f5f0e95bb7 Gerrit-Change-Number: 23820 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 11:18:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 11:18:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 11:18:54 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0-1-g4f346b04_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 ...................................................................... Patch Set 1: Code-Review-2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23821/1/debian/changelog File debian/changelog: https://gerrit.osmocom.org/c/osmo-bts/+/23821/1/debian/changelog at 1 PS1, Line 1: osmo-bts (1.4.0) unstable; urgency=medium This looks wrong. How did you generate it? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 11:18:54 +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 Apr 21 11:19:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 11:19:15 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0-1-g4f346b04_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23821/1/debian/changelog File debian/changelog: https://gerrit.osmocom.org/c/osmo-bts/+/23821/1/debian/changelog at 1 PS1, Line 1: osmo-bts (1.4.0) unstable; urgency=medium > This looks wrong. [?] (should be 1.3.1) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 11:19:15 +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 Apr 21 12:58:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 12:58:18 +0000 Subject: Change in meta-telephony[201705]: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/meta-telephony/+/23844 ) Change subject: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug ...................................................................... libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug Related: OS#5079 Change-Id: I74cfbc784e2330837a3b165b0f3a62dc6c4ce274 --- M recipes-osmocom/libosmocore/libosmocore_git.bb 1 file changed, 10 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/meta-telephony refs/changes/44/23844/1 diff --git a/recipes-osmocom/libosmocore/libosmocore_git.bb b/recipes-osmocom/libosmocore/libosmocore_git.bb index 9717511..062fb20 100644 --- a/recipes-osmocom/libosmocore/libosmocore_git.bb +++ b/recipes-osmocom/libosmocore/libosmocore_git.bb @@ -4,7 +4,7 @@ SRCREV = "1.5.1" SRC_URI = "git://git.osmocom.org/libosmocore.git;protocol=git;tag=${SRCREV};nobranch=1" PV = "1.5.1+gitr${SRCPV}" -PR = "${INC_PR}.0" +PR = "${INC_PR}.1" PACKAGES =+ "libosmoctrl libosmocodec libosmogb libosmogsm libosmovty osmo-arfcn osmo-auc-gen osmo-config-merge" FILES_libosmoctrl = "${libdir}/libosmoctrl${SOLIBS}" @@ -36,4 +36,12 @@ # we are not affected by the bug, we are fine with that. If the toolchain had # the TLS runtime bug, then we'd had to build with -O0. Can be probably dropped # once we move to newer toolchain. -EXTRA_OECONF += "--disable-detect-tls-gcc-arm-bug" +#EXTRA_OECONF += "--disable-detect-tls-gcc-arm-bug" +# UPDATE: OS#5079: we stop using "--disable-detect-tls-gcc-arm-bug" because we +# finally hit the TLS bug in sysmobts (osmo-bts-symo calling osmo_str_tolower() +# which uses "static __thread char capsbuf"). As a result, the only option would +# be to use -O0 when building libosmocore with the sysmobts toolchain. In order +# to avoid that, we take advantage of the fact that no libosmocore multi-thread +# process is expected to run there and simply drop all the "__thread" +# references when building for sysmobts. That's done as a machine-specific +# bbappend in meta-sysmocom-bsp. -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/23844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: I74cfbc784e2330837a3b165b0f3a62dc6c4ce274 Gerrit-Change-Number: 23844 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 Apr 21 13:02:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 13:02:50 +0000 Subject: Change in meta-telephony[201705]: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/23844 ) Change subject: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug ...................................................................... Patch Set 1: meta-sysmocom-bsp 201705 and laforge/nightly are already updated to contain this commit (I tested osmo-bts doesn't crash anymore after building the package): https://git.sysmocom.de/poky/meta-sysmocom-bsp/commit/?h=201705&id=c75d0fe631aba49d79db991c7102ab3ff57ef974 TODO after merging this one: - rebase meta-telephony laforge/nightly on top of 201705 - trigger rebuild of 201705-testing and nightly. -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/23844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: I74cfbc784e2330837a3b165b0f3a62dc6c4ce274 Gerrit-Change-Number: 23844 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 13:02: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 Wed Apr 21 13:10:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 13:10:51 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0-1-g4f346b04_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23821/1/debian/changelog File debian/changelog: https://gerrit.osmocom.org/c/osmo-bts/+/23821/1/debian/changelog at 1 PS1, Line 1: osmo-bts (1.4.0) unstable; urgency=medium > (should be 1.3. [?] Oh, damn. Thanks for pointing this out! I used osmo-release.sh in Docker, and for some reason it would always tag 1.4.0. I had to change 1.4.0 -> 1.3.1 manually. Most likely, I was not reading the wiki page carefully enough. Will correct soon. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 13:10:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 13:16:47 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 13:16:47 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0-1-g4f346b04_=E2=86=92_1=2E3=2E1?= 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/+/23821 to look at the new patch set (#2). Change subject: Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 ...................................................................... Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Signed-off-by: Vadim Yanitskiy --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/21/23821/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Assignee: pespin 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 Apr 21 13:24:24 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 13:24:24 +0000 Subject: Change in pysim[master]: pySim-shell: separate export summary with a headline 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/pysim/+/23803 to look at the new patch set (#2). Change subject: pySim-shell: separate export summary with a headline ...................................................................... pySim-shell: separate export summary with a headline the export summary is printed after the log entry for the last file without separation. This is confusing because it looks like if the summary would refer to the last file only. Lets add a headline to make clear that the last few lines are the "Export summary" Change-Id: I90771e525b2b114bdb41a8e90d298ca991c09c3d Related: OS#4963 --- M pySim-shell.py M pySim/utils.py 2 files changed, 18 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/03/23803/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I90771e525b2b114bdb41a8e90d298ca991c09c3d Gerrit-Change-Number: 23803 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 13:24:24 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 13:24:24 +0000 Subject: Change in pysim[master]: filesystem: fix wrong comment 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/pysim/+/23817 to look at the new patch set (#2). Change subject: filesystem: fix wrong comment ...................................................................... filesystem: fix wrong comment The property rec_len is not a tuple, it is a set. Related: OS#4963 Change-Id: I366772c62d0bb5a6400ce5b431eb94ac9248dccc --- M pySim/filesystem.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/17/23817/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I366772c62d0bb5a6400ce5b431eb94ac9248dccc Gerrit-Change-Number: 23817 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 13:24:24 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 13:24:24 +0000 Subject: Change in pysim[master]: utils: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23819 to look at the new patch set (#2). Change subject: utils: fix encoding of EF.MSISDN ...................................................................... utils: fix encoding of EF.MSISDN The encoding of EF.MSISDN is a bit unstrutured. The encoder function does not return a valid result since it lacks the parameters Capability/Configuration2 Record Identifier and Extension5 Record Identifier, which are mandatory but can be set to 0xFF. Also the encoder gets its input from pySim-shell, so it should have some more input validation, especially when the user encodes an empty string. The encoder and decoder function also do not have unit-tests. Since the encoder now adds the missing two bytes by isself this does not have to be done manually anymore, so cards.py needs to be re-aligned. For pySim-shell.py the encoder is used from ts_51_011.py. Unfortunately it is used wrongly there. The optional Alpha Identifier is required here as well. Related: OS#4963 Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b --- M pySim/cards.py M pySim/ts_51_011.py M pySim/utils.py M tests/test_utils.py 4 files changed, 46 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/19/23819/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b Gerrit-Change-Number: 23819 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 13:24:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 13:24:28 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23822 ) Change subject: osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' ...................................................................... osmo-bts-trx: cosmetic: TRXD 'header version' -> 'PDU version' TRXDv2 brings significant changes to the whole PDU structure, not just the header. Let's highlight this in the code / strings. Change-Id: Id0274bd1ae5c419548596ed1852e6a28ec62b713 Related: SYS#4895, OS#4941, OS#4006 --- M include/osmo-bts/phy_link.h M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h M src/osmo-bts-trx/trx_provision_fsm.c M src/osmo-bts-trx/trx_vty.c 7 files changed, 50 insertions(+), 50 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index ef3df27..0c693bb 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -48,7 +48,7 @@ uint32_t clock_advance; uint32_t rts_advance; bool use_legacy_setbsic; - uint8_t trxd_hdr_ver_max; /* Maximum TRXD header version to negotiate */ + uint8_t trxd_pdu_ver_max; /* Maximum TRXD PDU 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; diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 8c309db..112a6ab 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -60,8 +60,8 @@ }; 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 */ + uint8_t trxd_pdu_ver_req; /* requested TRXD PDU version */ + uint8_t trxd_pdu_ver_use; /* actual TRXD PDU version in use */ bool setformat_sent; bool setformat_acked; diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index 7e6dea9..e0a99a5 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -169,7 +169,7 @@ plink->u.osmotrx.clock_advance = 2; plink->u.osmotrx.rts_advance = 3; /* attempt use newest TRXD version by default: */ - plink->u.osmotrx.trxd_hdr_ver_max = TRX_DATA_FORMAT_VER; + plink->u.osmotrx.trxd_pdu_ver_max = TRX_DATA_PDU_VER; } void bts_model_phy_instance_set_defaults(struct phy_instance *pinst) diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 2e97319..bec6a5a 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -275,11 +275,11 @@ return trx_ctrl_cmd_cb(l1h, 1, cb, "POWERON", ""); } -/*! Send "SETFORMAT" command to TRX: change TRXD header format version */ +/*! Send "SETFORMAT" command to TRX: change TRXD PDU version */ int trx_if_cmd_setformat(struct trx_l1h *l1h, uint8_t ver, trx_if_cmd_generic_cb *cb) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_INFO, - "Requesting TRXD header format version %u\n", ver); + "Requesting TRXD PDU version %u\n", ver); return trx_ctrl_cmd_cb(l1h, 0, cb, "SETFORMAT", "%u", ver); } @@ -510,7 +510,7 @@ return rsp->status == 0 ? 0 : -EINVAL; } -/* TRXD header format negotiation handler. +/* TRXD PDU format negotiation handler. * * If the transceiver does not support the format negotiation, it would * reject SETFORMAT with 'RSP ERR 1'. If the requested version is not @@ -526,7 +526,7 @@ if (strcmp(rsp->cmd, "SETFORMAT") != 0) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, "Transceiver rejected the format negotiation command, " - "using legacy TRXD header format version (0)\n"); + "using legacy TRXD PDU version (0)\n"); if (rsp->cb) { cb = (trx_if_cmd_generic_cb*) rsp->cb; cb(l1h, 0); @@ -535,11 +535,11 @@ } /* Status shall indicate a proper version supported by the transceiver */ - if (rsp->status < 0 || rsp->status > l1h->config.trxd_hdr_ver_req) { + if (rsp->status < 0 || rsp->status > l1h->config.trxd_pdu_ver_req) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Transceiver indicated an out of range " - "header format version %d (requested %u)\n", - rsp->status, l1h->config.trxd_hdr_ver_req); + "PDU version %d (requested %u)\n", + rsp->status, l1h->config.trxd_pdu_ver_req); return -EINVAL; } @@ -814,7 +814,7 @@ return TRX_UL_V1HDR_LEN; } -/* TRXD burst handler for header version 0 */ +/* TRXD burst handler for PDU version 0 */ static int trx_data_handle_burst_v0(struct trx_l1h *l1h, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) @@ -850,7 +850,7 @@ return 0; } -/* TRXD burst handler for header version 1 */ +/* TRXD burst handler for PDU version 1 */ static int trx_data_handle_burst_v1(struct trx_l1h *l1h, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) @@ -869,7 +869,7 @@ return -EINVAL; } - /* The burst format is the same as for version 0. + /* The PDU format is the same as for version 0. * NOTE: other modulation types to be handled separately. */ return trx_data_handle_burst_v0(l1h, bi, buf, buf_len); } @@ -937,7 +937,7 @@ * +-----------------+------------------------+ * | 7 6 5 4 3 2 1 0 | bit numbers | * +-----------------+------------------------+ - * | X X X X . . . . | header version (0..15) | + * | X X X X . . . . | PDU version (0..15) | * +-----------------+------------------------+ * | . . . . . X X X | TDMA TN (0..7) | * +-----------------+------------------------+ @@ -1040,7 +1040,7 @@ uint8_t buf[TRX_DATA_MSG_MAX_LEN]; struct trx_ul_burst_ind bi; ssize_t hdr_len, buf_len; - uint8_t hdr_ver; + uint8_t pdu_ver; int rc; buf_len = recv(ofd->fd, buf, sizeof(buf), 0); @@ -1054,9 +1054,9 @@ /* Pre-clean (initialize) the flags */ bi.flags = 0x00; - /* Parse the header depending on its version */ - hdr_ver = buf[0] >> 4; - switch (hdr_ver) { + /* Parse header depending on the PDU version */ + pdu_ver = buf[0] >> 4; + switch (pdu_ver) { case 0: /* Legacy protocol has no version indicator */ hdr_len = trx_data_handle_hdr_v0(l1h, &bi, buf, buf_len); @@ -1066,7 +1066,7 @@ break; default: LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "TRXD header version %u is not supported\n", hdr_ver); + "TRXD PDU version %u is not supported\n", pdu_ver); return -ENOTSUP; } @@ -1083,7 +1083,7 @@ buf_len -= hdr_len; /* Handle burst bits */ - switch (hdr_ver) { + switch (pdu_ver) { case 0: rc = trx_data_handle_burst_v0(l1h, &bi, buf + hdr_len, buf_len); break; @@ -1101,9 +1101,9 @@ skip_burst: /* Print header & burst info */ - LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, "Rx %s (hdr_ver=%u): %s\n", + LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, "Rx %s (pdu_ver=%u): %s\n", (bi.flags & TRX_BI_F_NOPE_IND) ? "NOPE.ind" : "UL burst", - hdr_ver, trx_data_desc_msg(&bi)); + pdu_ver, trx_data_desc_msg(&bi)); /* feed received burst into scheduler code */ trx_sched_route_burst_ind(&bi, &l1h->l1s); @@ -1118,7 +1118,7 @@ int trx_if_send_burst(struct trx_l1h *l1h, const struct trx_dl_burst_req *br) { ssize_t snd_len; - uint8_t hdr_ver = l1h->config.trxd_hdr_ver_use; + uint8_t pdu_ver = l1h->config.trxd_pdu_ver_use; uint8_t buf[TRX_DATA_MSG_MAX_LEN]; if ((br->burst_len != GSM_BURST_LEN) && (br->burst_len != EGPRS_BURST_LEN)) { @@ -1128,22 +1128,22 @@ } LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, - "Tx burst (hdr_ver=%u): tn=%u fn=%u att=%u\n", - hdr_ver, br->tn, br->fn, br->att); + "Tx burst (pdu_ver=%u): tn=%u fn=%u att=%u\n", + pdu_ver, br->tn, br->fn, br->att); - switch (hdr_ver) { + switch (pdu_ver) { case 0: case 1: - /* Both versions have the same header format */ + /* Both versions have the same PDU format */ break; default: LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Requested TRXD header version %u is not supported\n", hdr_ver); + "Requested TRXD PDU version %u is not supported\n", pdu_ver); return -ENOTSUP; } - buf[0] = ((hdr_ver & 0x0f) << 4) | br->tn; + buf[0] = ((pdu_ver & 0x0f) << 4) | br->tn; osmo_store32be(br->fn, buf + 1); buf[5] = br->att; diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 17bc7db..120d3bd 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -39,8 +39,8 @@ int trx_if_send_burst(struct trx_l1h *l1h, const struct trx_dl_burst_req *br); int trx_if_powered(struct trx_l1h *l1h); -/* The latest supported TRXD header format version */ -#define TRX_DATA_FORMAT_VER 1 +/* The latest supported TRXD PDU version */ +#define TRX_DATA_PDU_VER 1 /* Format negotiation command */ int trx_if_cmd_setformat(struct trx_l1h *l1h, uint8_t ver, trx_if_cmd_generic_cb *cb); diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index e4721ba..1e5de2e 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -148,16 +148,16 @@ l1h->config.bsic_acked = false; } - /* Ask transceiver to use the newest TRXD header version if not using it yet */ + /* Ask transceiver to use the newest TRXD PDU version if not using it yet */ if (!l1h->config.setformat_sent) { l1h->config.setformat_sent = true; - if (plink->u.osmotrx.trxd_hdr_ver_max == 0) { + if (plink->u.osmotrx.trxd_pdu_ver_max == 0) { LOGPPHI(pinst, DL1C, LOGL_INFO, "No need to negotiate max TRXD version 0"); - l1h->config.trxd_hdr_ver_use = 0; + l1h->config.trxd_pdu_ver_use = 0; l1h->config.setformat_acked = true; } else { - trx_if_cmd_setformat(l1h, l1h->config.trxd_hdr_ver_req, l1if_setformat_cb); + trx_if_cmd_setformat(l1h, l1h->config.trxd_pdu_ver_req, l1if_setformat_cb); l1h->config.setformat_acked = false; } } @@ -276,7 +276,7 @@ struct trx_l1h *l1h = (struct trx_l1h *)fi->priv; struct phy_instance *pinst = l1h->phy_inst; - l1h->config.trxd_hdr_ver_req = pinst->phy_link->u.osmotrx.trxd_hdr_ver_max; + l1h->config.trxd_pdu_ver_req = pinst->phy_link->u.osmotrx.trxd_pdu_ver_max; /* Apply initial RFMUTE state */ trx_if_cmd_rfmute(l1h, pinst->trx->mo.nm_state.administrative != NM_STATE_UNLOCKED); @@ -354,18 +354,18 @@ case TRX_PROV_EV_SETFORMAT_CNF: status = (int)(intptr_t)data; /* Transceiver may suggest a lower version (than requested) */ - if (status == l1h->config.trxd_hdr_ver_req) { - l1h->config.trxd_hdr_ver_use = status; + if (status == l1h->config.trxd_pdu_ver_req) { + l1h->config.trxd_pdu_ver_use = status; l1h->config.setformat_acked = true; LOGPPHI(l1h->phy_inst, DTRX, LOGL_INFO, - "Using TRXD header format version %u\n", - l1h->config.trxd_hdr_ver_use); + "Using TRXD PDU version %u\n", + l1h->config.trxd_pdu_ver_use); } else { LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, - "Transceiver suggests TRXD header version %u (requested %u)\n", - status, l1h->config.trxd_hdr_ver_req); + "Transceiver suggests TRXD PDU version %u (requested %u)\n", + status, l1h->config.trxd_pdu_ver_req); /* Send another SETFORMAT with suggested version */ - l1h->config.trxd_hdr_ver_req = status; + l1h->config.trxd_pdu_ver_req = status; l1h->config.setformat_sent = false; } break; diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 4e8c8d6..b85dcdc 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -517,15 +517,15 @@ int max_ver; if (strcmp(argv[0], "latest") == 0) - max_ver = TRX_DATA_FORMAT_VER; + max_ver = TRX_DATA_PDU_VER; else max_ver = atoi(argv[0]); - if (max_ver > TRX_DATA_FORMAT_VER) { + if (max_ver > TRX_DATA_PDU_VER) { vty_out(vty, "%% Format version %d is not supported, maximum supported is %d%s", - max_ver, TRX_DATA_FORMAT_VER, VTY_NEWLINE); + max_ver, TRX_DATA_PDU_VER, VTY_NEWLINE); return CMD_WARNING; } - plink->u.osmotrx.trxd_hdr_ver_max = max_ver; + plink->u.osmotrx.trxd_pdu_ver_max = max_ver; return CMD_SUCCESS; } @@ -554,8 +554,8 @@ if (plink->u.osmotrx.use_legacy_setbsic) vty_out(vty, " osmotrx legacy-setbsic%s", VTY_NEWLINE); - if (plink->u.osmotrx.trxd_hdr_ver_max != TRX_DATA_FORMAT_VER) - vty_out(vty, " osmotrx trxd-max-version %d%s", plink->u.osmotrx.trxd_hdr_ver_max, VTY_NEWLINE); + if (plink->u.osmotrx.trxd_pdu_ver_max != TRX_DATA_PDU_VER) + vty_out(vty, " osmotrx trxd-max-version %d%s", plink->u.osmotrx.trxd_pdu_ver_max, VTY_NEWLINE); } void bts_model_config_write_phy_inst(struct vty *vty, const struct phy_instance *pinst) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id0274bd1ae5c419548596ed1852e6a28ec62b713 Gerrit-Change-Number: 23822 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 Wed Apr 21 13:24:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 13:24:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: remove outdated TRXD protocol documentation In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23823 ) Change subject: osmo-bts-trx: remove outdated TRXD protocol documentation ...................................................................... osmo-bts-trx: remove outdated TRXD protocol documentation We do have TRXC/TRXD documentation in osmo-gsm-manuals repository. This big comment is out of sync with what we have in the manuals, so let's better remove it to avoid maintaining docs in several places. Change-Id: Ibfcefcbb5f30fe9b6c691578a93e6fedd5644b30 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 1 insertion(+), 118 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index bec6a5a..495de92 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -916,124 +916,7 @@ return buf; } -/* Parse TRXD message from transceiver, compose an UL burst indication. - * - * This message contains a demodulated Uplink burst with fixed-size - * header preceding the burst bits. The header consists of the common - * and message specific part. - * - * +---------------+-----------------+------------+ - * | common header | specific header | burst bits | - * +---------------+-----------------+------------+ - * - * Common header is the same as for Downlink message: - * - * +-----------------+----------------+-------------------+ - * | VER (1/2 octet) | TN (1/2 octet) | FN (4 octets, BE) | - * +-----------------+----------------+-------------------+ - * - * and among with TDMA parameters, contains the version indicator: - * - * +-----------------+------------------------+ - * | 7 6 5 4 3 2 1 0 | bit numbers | - * +-----------------+------------------------+ - * | X X X X . . . . | PDU version (0..15) | - * +-----------------+------------------------+ - * | . . . . . X X X | TDMA TN (0..7) | - * +-----------------+------------------------+ - * | . . . . X . . . | RESERVED (0) | - * +-----------------+------------------------+ - * - * which is encoded in 4 MSB bits of the first octet, which used to be - * zero-initialized due to the value range of TDMA TN. Therefore, the - * old header format has implicit version 0x00. - * - * The message specific header has the following structure: - * - * == Version 0x00 - * - * +------+-----+--------------------+ - * | RSSI | ToA | soft-bits (254..0) | - * +------+-----+--------------------+ - * - * == Version 0x01 - * - * +------+-----+-----+-----+--------------------+ - * | RSSI | ToA | MTS | C/I | soft-bits (254..0) | - * +------+-----+-----+-----+--------------------+ - * - * where: - * - * - RSSI (1 octet) - Received Signal Strength Indication - * encoded without the negative sign. - * - ToA (2 octets) - Timing of Arrival in units of 1/256 - * of symbol (big endian). - * - MTS (1 octet) - Modulation and Training Sequence info. - * - C/I (2 octets) - Carrier-to-Interference ratio (big endian). - * - * == Coding of MTS: Modulation and Training Sequence info - * - * 3GPP TS 45.002 version 15.1.0 defines several modulation types, - * and a few sets of training sequences for each type. The most - * common are GMSK and 8-PSK (which is used in EDGE). - * - * +-----------------+---------------------------------------+ - * | 7 6 5 4 3 2 1 0 | bit numbers (value range) | - * +-----------------+---------------------------------------+ - * | . . . . . X X X | Training Sequence Code (0..7) | - * +-----------------+---------------------------------------+ - * | . X X X X . . . | Modulation, TS set number (see below) | - * +-----------------+---------------------------------------+ - * | X . . . . . . . | IDLE / nope frame indication (0 or 1) | - * +-----------------+---------------------------------------+ - * - * The bit number 7 (MSB) is set to high when either nothing has been - * detected, or during IDLE frames, so we can deliver noise levels, - * and avoid clock gaps on the L1 side. Other bits are ignored, - * and should be set to low (0) in this case. L16 shall be set to 0x00. - * - * == Coding of modulation and TS set number - * - * GMSK has 4 sets of training sequences (see tables 5.2.3a-d), - * while 8-PSK (see tables 5.2.3f-g) and the others have 2 sets. - * Access and Synchronization bursts also have several synch. - * sequences. - * - * +-----------------+---------------------------------------+ - * | 7 6 5 4 3 2 1 0 | bit numbers (value range) | - * +-----------------+---------------------------------------+ - * | . 0 0 X X . . . | GMSK, 4 TS sets (0..3) | - * +-----------------+---------------------------------------+ - * | . 0 1 0 X . . . | 8-PSK, 2 TS sets (0..1) | - * +-----------------+---------------------------------------+ - * | . 0 1 1 X . . . | AQPSK, 2 TS sets (0..1) | - * +-----------------+---------------------------------------+ - * | . 1 0 0 X . . . | 16QAM, 2 TS sets (0..1) | - * +-----------------+---------------------------------------+ - * | . 1 0 1 X . . . | 32QAM, 2 TS sets (0..1) | - * +-----------------+---------------------------------------+ - * | . 1 1 1 X . . . | RESERVED (0) | - * +-----------------+---------------------------------------+ - * - * NOTE: we only support GMSK and 8-PSK. - * - * == C/I: Carrier-to-Interference ratio - * - * The C/I value can be computed from the training sequence of each - * burst, where we can compare the "ideal" training sequence with - * the actual training sequence and then express that in centiBels. - * - * == Coding of the burst bits - * - * Unlike to be transmitted bursts, the received bursts are designated - * using the soft-bits notation, so the receiver can indicate its - * assurance from 0 to -127 that a given bit is 1, and from 0 to +127 - * that a given bit is 0. - * - * Each soft-bit (-127..127) of the burst is encoded as an unsigned - * value in range (254..0) respectively using the constant shift. - * - */ +/* Parse TRXD message from transceiver, compose an UL burst indication. */ static int trx_data_read_cb(struct osmo_fd *ofd, unsigned int what) { struct trx_l1h *l1h = ofd->data; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfcefcbb5f30fe9b6c691578a93e6fedd5644b30 Gerrit-Change-Number: 23823 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 Wed Apr 21 13:24:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 13:24:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: use '#pragma once' in trx_if.h In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23824 ) Change subject: osmo-bts-trx: cosmetic: use '#pragma once' in trx_if.h ...................................................................... osmo-bts-trx: cosmetic: use '#pragma once' in trx_if.h Change-Id: I78b93a8f5fbbd94141d30518d37c1ce05f8a681f --- M src/osmo-bts-trx/trx_if.h 1 file changed, 1 insertion(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 120d3bd..18ba74f 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -1,5 +1,4 @@ -#ifndef TRX_IF_H -#define TRX_IF_H +#pragma once struct trx_dl_burst_req; struct trx_l1h; @@ -44,5 +43,3 @@ /* Format negotiation command */ int trx_if_cmd_setformat(struct trx_l1h *l1h, uint8_t ver, trx_if_cmd_generic_cb *cb); - -#endif /* TRX_IF_H */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I78b93a8f5fbbd94141d30518d37c1ce05f8a681f Gerrit-Change-Number: 23824 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 Wed Apr 21 13:34:04 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 13:34:04 +0000 Subject: Change in pysim[master]: pySim-shell: separate export summary with a headline In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23803 ) Change subject: pySim-shell: separate export summary with a headline ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23803/1/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/23803/1/pySim-shell.py at 293 PS1, Line 293: headli > so we are appending 80 spaces.... [?] Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I90771e525b2b114bdb41a8e90d298ca991c09c3d Gerrit-Change-Number: 23803 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 13:34:04 +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 Apr 21 13:38:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 13:38:15 +0000 Subject: Change in pysim[master]: utils: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23819 ) Change subject: utils: fix encoding of EF.MSISDN ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23819/2/pySim/utils.py File pySim/utils.py: https://gerrit.osmocom.org/c/pysim/+/23819/2/pySim/utils.py at 420 PS2, Line 420: Truncate Now this comment becomes false... -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b Gerrit-Change-Number: 23819 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 13:38: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 Wed Apr 21 13:38:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 13:38:32 +0000 Subject: Change in pysim[master]: filesystem: fix wrong comment In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23817 ) Change subject: filesystem: fix wrong comment ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I366772c62d0bb5a6400ce5b431eb94ac9248dccc Gerrit-Change-Number: 23817 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 21 Apr 2021 13:38:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 13:40:16 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 13:40:16 +0000 Subject: Change in pysim[master]: filesystem: fix wrong helpstring for update_record_decoded In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23818 ) Change subject: filesystem: fix wrong helpstring for update_record_decoded ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibae2ab49054ac5dd6fcccddd28c98d886403dac9 Gerrit-Change-Number: 23818 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 13:40: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 Apr 21 13:51:29 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 13:51:29 +0000 Subject: Change in pysim[master]: utils: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23819 ) Change subject: utils: fix encoding of EF.MSISDN ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23819/1/pySim/utils.py File pySim/utils.py: https://gerrit.osmocom.org/c/pysim/+/23819/1/pySim/utils.py at 412 PS1, Line 412: not msisdn or msisdn == "" > It cannot be None (according to the type hint for 'msisdn'), so both statements are equivalent. [?] Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b Gerrit-Change-Number: 23819 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 13:51: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 Wed Apr 21 13:52:25 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 21 Apr 2021 13:52:25 +0000 Subject: Change in pysim[master]: pySim-shell: add testsuite for pySim-shell In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23802 ) Change subject: pySim-shell: add testsuite for pySim-shell ...................................................................... Patch Set 11: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibb1bdc89a7e2b7a1232124ae28f054e5c920aadc Gerrit-Change-Number: 23802 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 21 Apr 2021 13:52:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 14:16:55 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 21 Apr 2021 14:16:55 +0000 Subject: Change in osmo-bts[master]: osmobts-abis.adoc: add missing bibliography References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23845 ) Change subject: osmobts-abis.adoc: add missing bibliography ...................................................................... osmobts-abis.adoc: add missing bibliography Change-Id: I6a86416466eba14090026a3e6ec82a0e8548209a --- M doc/manuals/osmobts-abis.adoc 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/45/23845/1 diff --git a/doc/manuals/osmobts-abis.adoc b/doc/manuals/osmobts-abis.adoc index 857b4bf..26e57e9 100644 --- a/doc/manuals/osmobts-abis.adoc +++ b/doc/manuals/osmobts-abis.adoc @@ -87,6 +87,8 @@ include::./common/chapters/port_numbers.adoc[] +include::./common/chapters/bibliography.adoc[] + include::./common/chapters/glossary.adoc[] include::./common/chapters/gfdl.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a86416466eba14090026a3e6ec82a0e8548209a Gerrit-Change-Number: 23845 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 14:16:56 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 21 Apr 2021 14:16:56 +0000 Subject: Change in osmo-bts[master]: Abis manual: s/TS 12.21/TS 52.021 References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23846 ) Change subject: Abis manual: s/TS 12.21/TS 52.021 ...................................................................... Abis manual: s/TS 12.21/TS 52.021 Change-Id: I662a3419a6ec741fe162ccc7c7221df20b2780b1 --- M doc/manuals/abis/oml.adoc 1 file changed, 53 insertions(+), 52 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/23846/1 diff --git a/doc/manuals/abis/oml.adoc b/doc/manuals/abis/oml.adoc index 4afcec0..0fbd321 100644 --- a/doc/manuals/abis/oml.adoc +++ b/doc/manuals/abis/oml.adoc @@ -3,16 +3,17 @@ === List of Messages The following tables list the OML messages used by OsmoBTS, grouped by their -level of compliance with 3GPP TS 12.21. +level of compliance with 3GPP TS 52.021 [[3gpp-ts-52-021]] (previously 3GPP TS +12.21). -==== Messages Compliant With TS 12.21 +==== Messages Compliant With TS 52.021 Specific limitations apply, see the linked sections. -.Messages compliant with TS 12.21 +.Messages compliant with TS 52.021 [options="header",cols="10%,10%,20%,35%,5%,20%"] |=== -| TS 12.21 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoBTS +| TS 52.021 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoBTS 6+<| *SW Download Management Messages:* | 8.3.7 | 0x10 | <> | SW Activated Report | -> | Sent 6+<| *Air Interface Management Messages:* @@ -39,7 +40,7 @@ ==== Messages Specific to OsmoBTS -.Messages specific to OsmoBTS, not found in 3GPP TS 12.21 +.Messages specific to OsmoBTS, not found in 3GPP TS 52.021 [options="header"] [options="header",cols="20%,55%,5%,20%"] |=== @@ -49,10 +50,10 @@ ==== Messages Not Implemented by OsmoBTS -.3GPP TS 12.21 messages not implemented by OsmoBTS +.3GPP TS 52.021 messages not implemented by OsmoBTS [options="header",cols="10%,10%,80%"] |=== -| TS 12.21 ? | type code (hex) | Message +| TS 52.021 ? | type code (hex) | Message 3+<| *SW Download Management Messages:* .3+.| 8.3.1 | 0x01 | Load Data Initiate | 0x02 | Load Data Initiate Ack @@ -151,7 +152,7 @@ ==== SW Activated Report OsmoBTS will send an _SW Activated Report_ when RF has been activated -successfully. The message is compliant with 3GPP TS 12.21 ? 8.3.7. +successfully. The message is compliant with 3GPP TS 52.021 ? 8.3.7. Upon RF activation, two _SW Activated Report_ messages will be sent, for the Object Classes @@ -163,13 +164,13 @@ OsmoBTS will receive a _Set BTS Attributes_ message and reply with a corresponding ACK message on success. IE handling is fully compliant to TS -12.21, except that a change of BCCH ARFCN or BSIC while in operation is not +52.021, except that a change of BCCH ARFCN or BSIC while in operation is not supported, and hence the _Starting Time_ IE is rejected. ._Set BTS Attributes_ IEs not handled by OsmoBTS [options="header",cols="10%,30%,60%"] |=== -| TS 12.21 ? | IE Name | Handling +| TS 52.021 ? | IE Name | Handling | 9.4.52 | Starting Time | not supported (provokes NACK cause 0x10) |=== @@ -177,13 +178,13 @@ [[set_radio_attr]] ==== Set Radio Carrier Attributes -This message conforms to 3GPP TS 12.21, with the following limitation, +This message conforms to 3GPP TS 52.021, with the following limitation, as frequency hopping is not supported by OsmoBTS: ._Set Radio Carrier Attributes_ IE limitations [options="header",cols="10%,30%,60%"] |=== -| TS 12.21 ? | IE Name | Handling +| TS 52.021 ? | IE Name | Handling | 9.4.5 | ARFCN List | ignored |=== @@ -191,14 +192,14 @@ [[set_chan_attr]] ==== Set Channel Attributes -This message conforms to 3GPP TS 12.21, with the following limitation: the -following 3GPP TS 12.21 IEs provoke a NACK response when sent to OsmoBTS, as +This message conforms to 3GPP TS 52.021, with the following limitation: the +following 3GPP TS 52.021 IEs provoke a NACK response when sent to OsmoBTS, as frequency hopping is not supported: ._Set Channel Attributes_ IE limitations [options="header",cols="10%,30%,60%"] |=== -| TS 12.21 ? | IE Name | Handling +| TS 52.021 ? | IE Name | Handling | 9.4.21 | HSN | not supported (provokes NACK cause 0x10) | 9.4.27 | MAIO | not supported (provokes NACK cause 0x10) | 9.4.52 | Starting Time | not supported (provokes NACK cause 0x10) @@ -207,32 +208,32 @@ [[state_changed_rep]] ==== State Changed Event Report -This message is compliant with 3GPP TS 12.21. Exactly these IEs are sent by +This message is compliant with 3GPP TS 52.021. Exactly these IEs are sent by OsmoBTS: [options="header"] [cols="30%,25%,15%,15%,15%"] |=== | INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH -| Message Type (0xf5) | 3GPP TS 12.21 9.1 | M | V | 1 -| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 -| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 -| Operational State | 3GPP TS 12.21 9.4.38 | O | TV | 2 -| Availability Status | 3GPP TS 12.21 9.4.7 | O | TL16V (with length of 1) | 3 +| Message Type (0xf5) | 3GPP TS 52.021 9.1 | M | V | 1 +| Object Class | 3GPP TS 52.021 9.2 | M | V | 1 +| Object Instance | 3GPP TS 52.021 9.3 | M | V | 3 +| Operational State | 3GPP TS 52.021 9.4.38 | O | TV | 2 +| Availability Status | 3GPP TS 52.021 9.4.7 | O | TL16V (with length of 1) | 3 |=== [[chg_adm_state]] ==== Change Administrative State -This message is compliant with 3GPP TS 12.21 ? 8.8.5. It applies to all of the -Object Classes defined in 3GPP TS 12.21 ? 9.2 as well as +This message is compliant with 3GPP TS 52.021 ? 8.8.5. It applies to all of the +Object Classes defined in 3GPP TS 52.021 ? 9.2 as well as <>. [[opstart]] ==== Opstart -This message is compliant with 3GPP TS 12.21 ? 8.9.2. It applies to all of the -Object Classes defined in 3GPP TS 12.21 ? 9.2 as well as +This message is compliant with 3GPP TS 52.021 ? 8.9.2. It applies to all of the +Object Classes defined in 3GPP TS 52.021 ? 9.2 as well as <>. @@ -252,9 +253,9 @@ [cols="30%,25%,15%,15%,15%"] |=== | INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH -| Message Type (0xf5) | 3GPP TS 12.21 9.1 | M | V | 1 -| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 -| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| Message Type (0xf5) | 3GPP TS 52.021 9.1 | M | V | 1 +| Object Class | 3GPP TS 52.021 9.2 | M | V | 1 +| Object Instance | 3GPP TS 52.021 9.3 | M | V | 3 5+<| _Object Class specific IEs follow, see <>..._ |=== @@ -262,7 +263,7 @@ [[addnl_obj_classes]] === Additional Object Classes -In addition to 3GPP TS 12.21 Chapter 9.2, the following managed objects +In addition to 3GPP TS 52.021 Chapter 9.2, the following managed objects are supported: .Additional Managed Object Classes @@ -284,9 +285,9 @@ [cols="30%,25%,15%,15%,15%"] |=== | INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH -| Message Type | 3GPP TS 12.21 9.1 | M | V | 1 -| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 -| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| Message Type | 3GPP TS 52.021 9.1 | M | V | 1 +| Object Class | 3GPP TS 52.021 9.2 | M | V | 1 +| Object Instance | 3GPP TS 52.021 9.3 | M | V | 3 | GPRS NSEI | <> | O | TL16V | >= 5 | GPRS NS Configuration | <> | O | TL16V | >= 10 | GPRS BSSGP Configuration | <> | O | TL16V | >= 14 @@ -301,9 +302,9 @@ [cols="30%,25%,15%,15%,15%"] |=== | INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH -| Message Type | 3GPP TS 12.21 9.1 | M | V | 1 -| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 -| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| Message Type | 3GPP TS 52.021 9.1 | M | V | 1 +| Object Class | 3GPP TS 52.021 9.2 | M | V | 1 +| Object Instance | 3GPP TS 52.021 9.3 | M | V | 3 | GPRS Routing Area Code | <> | O | TL16V | >= 4 | GPRS Paging Configuration | <> | O | TL16V | >= 5 | GPRS RLC Configuration | <> | O | TL16V | >= 12 @@ -321,9 +322,9 @@ [cols="30%,25%,15%,15%,15%"] |=== | INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH -| Message Type | 3GPP TS 12.21 9.1 | M | V | 1 -| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 -| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| Message Type | 3GPP TS 52.021 9.1 | M | V | 1 +| Object Class | 3GPP TS 52.021 9.2 | M | V | 1 +| Object Instance | 3GPP TS 52.021 9.3 | M | V | 3 | GPRS NSVCI | <> | O | TL16V | >= 5 | GPRS NS Link Configuration | <> | O | TL16V | >= 11 |=== @@ -332,9 +333,9 @@ === Information Elements Overview All of the IEs handled by OsmoBTS are listed below, with limitations and -additions to TS 12.21 specified in more detail. +additions to TS 52.021 specified in more detail. -==== IEs Conforming to TS 12.21 +==== IEs Conforming to TS 52.021 The following Information Elements are accepted by OsmoBTS. @@ -346,10 +347,10 @@ (<-) are in fact parsed and their values are stored by OsmoBTS, but these stored items are currently not used in the OsmoBTS code base. -.IEs conforming to TS 12.21 +.IEs conforming to TS 52.021 [options="header",cols="5%,10%,40%,5%,40%"] |=== -| tag (hex) | TS 12.21 ? | IE name | <-/-> | Received/Sent by OsmoBTS +| tag (hex) | TS 52.021 ? | IE name | <-/-> | Received/Sent by OsmoBTS | 0x00 | 9.4.1 | Abis Channel | | _ignored_ | 0x01 | 9.4.2 | Additional Info | | _ignored_ | 0x02 | 9.4.3 | Additional Text | | _ignored_ @@ -413,12 +414,12 @@ | 0x47 | 9.4.32 | Measurement Result | | _ignored_ |=== -==== IEs Not Conforming to TS 12.21 +==== IEs Not Conforming to TS 52.021 -.IEs not conforming to TS 12.21 +.IEs not conforming to TS 52.021 [options="header",cols="5%,10%,30%,55%"] |=== -| tag (hex) | TS 12.21 ? | IE name | Description +| tag (hex) | TS 52.021 ? | IE name | Description | 0x15 | 9.4.21 | HSN | presence causes NACK response | 0x17 | 9.4.23 | HW Description | _ignored_ by OsmoBTS, but coding may differ, see <> | 0x1b | 9.4.27 | MAIO | presence causes NACK response @@ -431,14 +432,14 @@ ==== Additional Attributes and Parameters The following Information Elements are defined in addition to those -specified in 3GPP TS 12.21 Chapter 9.4. +specified in 3GPP TS 52.021 Chapter 9.4. All of these additional IEs are _received_ by OsmoBTS. These attributes are not used by OsmoBTS, but simply passed to OsmoPCU connected to the PCU socket. -.Additional IEs handled by OsmoBTS but not defined in TS 12.21 +.Additional IEs handled by OsmoBTS but not defined in TS 52.021 [options="header",cols="5%,50%,45%"] |=== | tag (hex) | IE name | Description @@ -465,7 +466,7 @@ [[ie_hw_desc]] ==== HW Description -TS 12.21 suggests a series of 5 length-value pairs for the _HW Description_ IE. +TS 52.021 suggests a series of 5 length-value pairs for the _HW Description_ IE. Instead, OsmoBTS interprets it as a single TL16V. The value of this IE is ignored by OsmoBTS, yet the coding may affect message parsing. @@ -487,7 +488,7 @@ [[ie_chan_comb]] ==== Additional Channel Combinations -In addition to 3GPP TS 12.21 Chapter 9.4.13, the following channel +In addition to 3GPP TS 52.021 Chapter 9.4.13, the following channel combinations are supported: .Additional Channel Combinations @@ -513,7 +514,7 @@ [[ie_conn_fail_crit]] ==== Connection Failure Criterion -3GPP TS 12.21 Chapter 9.4.14 specifies two different options for the +3GPP TS 52.021 Chapter 9.4.14 specifies two different options for the _Connection Failure Criterion_. OsmoBTS only implements the option coded as 0x01, i.e. based upon uplink SACCH error rate (RADIO_LINK_TIMEOUT). @@ -523,7 +524,7 @@ Due to limitations in the currently supported PHY implementations, OsmoBTS supports only one global TSC for all channels on one TRX, rather -than a separate TSC for each timeslot, as expected by 3GPP TS 12.21. +than a separate TSC for each timeslot, as expected by 3GPP TS 52.021. [[NM_ATT_IPACC_DST_IP]] @@ -786,7 +787,7 @@ === A-bis OML Initialization / BTS bring-up At the time an Abis/IP BTS connects to via OML to the BSC, it is -initialized according to the procedures described in 3GPP TS 12.21 as +initialized according to the procedures described in 3GPP TS 52.021 as amended by this document. Each Managed Object (MO) is separately initialized. The initialization -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I662a3419a6ec741fe162ccc7c7221df20b2780b1 Gerrit-Change-Number: 23846 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 14:16:56 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 21 Apr 2021 14:16:56 +0000 Subject: Change in osmo-bts[master]: Abis manual: add Get Attributes, add BTS features References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23847 ) Change subject: Abis manual: add Get Attributes, add BTS features ...................................................................... Abis manual: add Get Attributes, add BTS features Change-Id: I99631272334537ab49ba8c530240aaeb67dde9d7 --- M doc/manuals/abis/oml.adoc 1 file changed, 107 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/47/23847/1 diff --git a/doc/manuals/abis/oml.adoc b/doc/manuals/abis/oml.adoc index 0fbd321..c7eaf25 100644 --- a/doc/manuals/abis/oml.adoc +++ b/doc/manuals/abis/oml.adoc @@ -35,6 +35,10 @@ .3+.| 8.9.2 | 0x74 .3+.| <> | Opstart | <- | Received | 0x75 | Opstart Ack | -> | Sent | 0x76 | Opstart Nack | -> | Sent +6+<| *Other Messages:* +.3+.| 8.11.1 | 0x81 | <> | Get Attributes | <- | Received + | 8.11.3 | 0x82 | <> | Get Attribute Response | -> | Sent + | 8.11.1 | 0x83 | | Get Attributes Nack | -> | Sent |=== @@ -137,9 +141,6 @@ | 8.10.3 | 0x8C | Stop Measurement | 8.10.4 | 0x8D | Start Measurement 3+<| *Other Messages:* - | 8.11.1 | 0x81 | Get Attributes - | 8.11.3 | 0x82 | Get Attribute(s) Response - | 8.11.1 | 0x83 | Get Attributes Nack .3+.| 8.11.2 | 0x84 | Set Alarm Threshold | 0x85 | Set Alarm Threshold Ack | 0x86 | Set Alarm Threshold Nack @@ -236,6 +237,26 @@ Object Classes defined in 3GPP TS 52.021 ? 9.2 as well as <>. +[[get_attributes]] +==== Get Attributes + +This message is compliant with 3GPP TS 52.021 ? 8.11.1. + +For a list of supported attributes, see <>. + +[[get_attr_resp]] +==== Get Attribute Response + +This message is compliant with 3GPP TS 52.021 ? 8.11.3. + +The following attributes are provided by OsmoBTS: + +[options="header"] +|=== +| 3GPP TS 52.021 chapter | description | see +| 9.4.61 | SW Configuration | <> +| 9.4.30 | Manufacturer Id | <> +|=== === Details on OsmoBTS Specific Messages @@ -406,9 +427,9 @@ | 0x38 | 9.4.58 | VSWR Thresholds | | _ignored_ | 0x39 | 9.4.59 | Window Size | | _ignored_ | 0x40 | 9.4.60 | TSC | <- | Received, with limitations: see <> -| 0x41 | 9.4.61 | SW Configuration | | _ignored_ +| 0x41 | 9.4.61 | SW Configuration | -> | Sent, see <> | 0x43 | 9.4.63 | Perceived Severity | | _ignored_ -| 0x44 | 9.4.64 | Get Attribute Response Info | | _ignored_ +| 0x44 | 9.4.64 | Get Attribute Response Info | -> | Sent, see <> | 0x45 | 9.4.65 | Outstanding Alarm Sequence | | _ignored_ | 0x46 | 9.4.66 | HW Conf Change Info | | _ignored_ | 0x47 | 9.4.32 | Measurement Result | | _ignored_ @@ -784,6 +805,87 @@ This attribute is not used by OsmoBTS, but simply passed to OsmoPCU connected to the PCU socket. +[[NM_ATT_SW_CONFIG]] +==== SW Configuration + +The SW Configuration IE is compliant with 3GPP TS 52.021 9.4.61: it contains a +number of SW Description IEs (9.4.62). + + +.Coding of SW Configuration IE +[options="header",cols="20%,80%"] +|=== +| octet | value +| 1 | NM_ATT_SW_CONFIG IEI (0x41) +| 2-3 | length of value part +| 4 | NM_ATT_SW_DESCR IEI (0x42) +| 5 | NM_ATT_FILE_ID IEI (0x12) +| 6-7 | length of file name +| 8-N | ASCII coded file name (without terminating nul) +| N+1 | NM_ATT_FILE_VERSION IEI (0x13) +| N+2 - N+3 | length of file content +| N+4 - M | file content +| M+1 | NM_ATT_SW_DESCR IEI (0x42) +| M+2 | NM_ATT_FILE_ID IEI (0x12) +2+| ... +|=== + +.File names and content sent in the SW Configuration IE +[options="header",cols="20%,80%"] +|=== +| file name | content +| 'osmobts' | ASCII coded OsmoBTS version number like "1.2.3" or "1.2.3.4-abcd" +| 'BTS_TYPE_VARIANT' | one of "osmo-bts-lc15", "osmo-bts-oc2g", "osmo-bts-octphy", + "osmo-bts-omldummy", "osmo-bts-sysmo", "osmo-bts-trx", "osmo-bts-virtual" +| 'BTS_SUB_MODEL' | This file may be omitted; if present, may contain an ASCII + coded model number like "sysmoBTS 1002" +|=== + + +[[NM_ATT_MANUF_ID]] +==== Manufacturer Id + +The coding of the Manufacturer Id attribute is a sequence of bit flags (a bit +vector), where a zero flag indicates absence and a set flag indicates presence +of a specific BTS feature. + +The number of flags transmitted depends on the software version of OsmoBTS. More +flags may be added in the future. The flag bits transmitted are followed by zero +bits up to the next full octet boundary. + +These features are currently defined: + +.coding of BTS feature flags sent in the Manufacturer Id attribute +[options="header",cols="5%,5%,30%,60%"] +|=== +| octet | bit | feature name | description +.8+.| 0 | 7 | HSCSD | High-Speed Circuit-Switched Data + | 6 | GPRS | General Packet Radio Service + | 5 | EGPRS | Enhanced GPRS (EDGE) + | 4 | ECSD | Enhanced Circuit-Switched Data + | 3 | HOPPING | Frequency Hopping + | 2 | MULTI_TSC | Multi-TSC + | 1 | OML_ALERTS | OML Alerts + | 0 | AGCH_PCH_PROP | AGCH/PCH proportional allocation +.8+.| 1 | 7 | CBCH | Cell Broadcast Channel + | 6 | SPEECH_F_V1 | Fullrate speech V1 + | 5 | SPEECH_H_V1 | Halfrate speech V1 + | 4 | SPEECH_F_EFR | Fullrate speech EFR + | 3 | SPEECH_F_AMR | Fullrate speech AMR + | 2 | SPEECH_H_AMR | Halfrate speech AMR + | 1 | ETWS_PN | ETWS Primary Notification via PCH + | 0 | PAGING_COORDINATION | BSS Paging Coordination +.8+.| 2 | 7 | IPV6_NSVC | NSVC IPv6 + | 6 | ACCH_REP | FACCH/SACCH Repetition + | 5 | CCN | Cell Change Notification + | 4 2.5+.| reserved for future use, sent as zero + | 3 + | 2 + | 1 + | 0 +|=== + + === A-bis OML Initialization / BTS bring-up At the time an Abis/IP BTS connects to via OML to the BSC, it is -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99631272334537ab49ba8c530240aaeb67dde9d7 Gerrit-Change-Number: 23847 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 14:16:56 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 21 Apr 2021 14:16:56 +0000 Subject: Change in osmo-bts[master]: Abis manual: add VAMOS to BTS features References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23848 ) Change subject: Abis manual: add VAMOS to BTS features ...................................................................... Abis manual: add VAMOS to BTS features Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f --- M doc/manuals/abis/oml.adoc 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/48/23848/1 diff --git a/doc/manuals/abis/oml.adoc b/doc/manuals/abis/oml.adoc index c7eaf25..0cdaaf3 100644 --- a/doc/manuals/abis/oml.adoc +++ b/doc/manuals/abis/oml.adoc @@ -877,9 +877,9 @@ | 0 | PAGING_COORDINATION | BSS Paging Coordination .8+.| 2 | 7 | IPV6_NSVC | NSVC IPv6 | 6 | ACCH_REP | FACCH/SACCH Repetition - | 5 | CCN | Cell Change Notification - | 4 2.5+.| reserved for future use, sent as zero - | 3 + | 5 | CCN | Cell Change Notification (CCN) + | 4 | VAMOS | Voice services over Adaptive Multi-user channels on One Slot + | 3 2.4+.| reserved for future use, sent as zero | 2 | 1 | 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f Gerrit-Change-Number: 23848 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 14:16:57 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 21 Apr 2021 14:16:57 +0000 Subject: Change in osmo-bts[master]: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23849 ) Change subject: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE ...................................................................... Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 --- M doc/manuals/abis/rsl.adoc 1 file changed, 67 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/49/23849/1 diff --git a/doc/manuals/abis/rsl.adoc b/doc/manuals/abis/rsl.adoc index 35fda31..2628413 100644 --- a/doc/manuals/abis/rsl.adoc +++ b/doc/manuals/abis/rsl.adoc @@ -843,6 +843,7 @@ | IEI | Name | This document ? | 0x01 | RSL_IE_CHAN_NR | <> | 0x60 | RSL_IE_OSMO_REP_ACCH_CAP | <> +| 0x61 | RSL_IE_OSMO_TRAINING_SEQUENCE | <> | 0xf0 | RSL_IE_IPAC_REMOTE_IP | <> | 0xf1 | RSL_IE_IPAC_REMOTE_PORT | <> | 0xf3 | RSL_IE_IPAC_LOCAL_PORT | <> @@ -979,6 +980,72 @@ (Bits 7 is reserved for future use and must be set to zero.) +[[RSL_IE_OSMO_TRAINING_SEQUENCE]] +==== RSL_IE_OSMO_TRAINING_SEQUENCE + +This TLV IE instructs the BTS to use a specific training sequence set and +training sequence code for a given lchan. It is sent by OsmoBSC in RSL CHANNEL +ACTIVATION and MODE MODIFY messages to the BTS, iff the BTS is VAMOS-capable, +i.e. if an Abis-over-IP connected BTS indicated BTS_FEAT_VAMOS in the OML BTS +features (Manufacturer Id information element, see <>). + +If this information element is present, the receiver shall ignore any other +training sequence set and training sequence code bits from other information +elements of the same RSL message. + +The first value octet indicates the training sequence set, and the second octet +indicates the training sequence code to be used. Receiving values from a +reserved value range should be considered an error condition. + +.RSL_IE_OSMO_TRAINING_SEQUENCE +[options="header",width="80%",cols="20%,80%"] +|=== +| IE octet | value +| octet 1 | RSL_IE_OSMO_TRAINING_SEQUENCE IEI (0x61) +| octet 2 | length of the value part (2) +| octet 3 | TSC set +| octet 4 | TSC +|=== + +The training sequence set (TSC set) is coded like the 'CS Domain TSC Set' bits, +as defined in the 'Extended TSC Set' IE in 3GPP TS 44.018 10.5.2.82 +<<3gpp-ts-44-018>>, and corresponds to the 'TSC Set' as defined in 3GPP TS +45.002 <<3gpp-ts-45-002>>. The encoded training sequence set number ranges from +0 to 3, any other values are reserved for future use. The encoded 0 corresponds +to TSC Set 1, see <>. + +[[RSL_IE_OSMO_TRAINING_SEQUENCE__TSC_set_coding]] +.TSC set (octet 3) coding +[options="header",width="80%",cols="20%,80%"] +|=== +| octet 3 value | interpretation +| 0 | 'TSC Set 1' as in 3GPP TS 45.002 +| 1 | 'TSC Set 2' +| 2 | 'TSC Set 3' +| 3 | 'TSC Set 4' +| 4..255 | reserved values +|=== + +The training sequence code (TSC) corresponds to the 'TSC' bits as defined in +the 'Channel Description 2' IE in 3GPP TS 44.018 10.5.2.5a <<3gpp-ts-44-018>>. +The training sequence code ranges from 0 to 7, any other values are reserved +for future use. + +.TSC (octet 4) coding +[options="header",width="80%",cols="20%,80%"] +|=== +| octet 4 value | interpretation +| 0 | 'Training Sequence Code (TSC) 0' as in 3GPP TS 45.002 +| 1 | 'Training Sequence Code (TSC) 1' +| 2 | 'Training Sequence Code (TSC) 2' +| 3 | 'Training Sequence Code (TSC) 3' +| 4 | 'Training Sequence Code (TSC) 4' +| 5 | 'Training Sequence Code (TSC) 5' +| 6 | 'Training Sequence Code (TSC) 6' +| 7 | 'Training Sequence Code (TSC) 7' +| 8..255 | reserved values +|=== + === A-bis RSL Initialization / BTS bring-up Upon receiving the 'IPA RSL CONNECT' OML message by the respective -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 Gerrit-Change-Number: 23849 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 14:19:31 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 21 Apr 2021 14:19:31 +0000 Subject: Change in osmo-bts[master]: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23849 ) Change subject: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE ...................................................................... Patch Set 1: NOTE NOTE NOTE! This is a PROPOSAL that describes an Osmocom-specific IE that I would add to our RSL layer. The point is that in RSL, there is no way to indicate an extended training sequence set number, only select between TSC set 1 and 2. For VAMOS, we will be using two more TSC sets. RR is capable of representing four differing TSC sets, but RSL does not provide any such IE. This IE would be sent only for cells that send BTS_FEAT_VAMOS == true. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 Gerrit-Change-Number: 23849 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Comment-Date: Wed, 21 Apr 2021 14:19:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 14:23:48 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 21 Apr 2021 14:23:48 +0000 Subject: Change in osmo-bts[master]: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/23849 ) Change subject: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE ...................................................................... Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 --- M doc/manuals/abis/rsl.adoc 1 file changed, 74 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/49/23849/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 Gerrit-Change-Number: 23849 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 Wed Apr 21 14:33:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:33:22 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor handling of version specific TRXD parts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23832 ) Change subject: osmo-bts-trx: refactor handling of version specific TRXD parts ...................................................................... Patch Set 3: (4 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c at 785 PS3, Line 785: bi->mod = TRX_MOD_T_GMSK; shouldn't this be 8PSK sometimes? https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c at 810 PS3, Line 810: buf_len -= TRX_UL_V0HDR_LEN; buf_len is not used here, so let's drop this unused op which is run for each TRXD packet. https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c at 905 PS3, Line 905: } trx_data_codec[16] = { why is this size=16? https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c at 959 PS3, Line 959: hdr_len = trx_data_codec[pdu_ver].parse(l1h->phy_inst, &bi, buf, buf_len); fyi, func pointer call is SLOW, not sure it's the best idea to use them here which are called a lot, given than we have like 2-3 of them... See for instance linux kernel netdev, where they have been getting rid of function pointers as much as possible lately. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Gerrit-Change-Number: 23832 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 14:33: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 Apr 21 14:36:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:36:40 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: reduce and share TRXC message buffer size In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23825 ) Change subject: osmo-bts-trx: reduce and share TRXC message buffer size ...................................................................... Patch Set 3: Code-Review-1 I don't see any problem with allocating 1500 bytes in the stack. It's the same cost operationally speaking, and I don't think that will cause a stack overflow. Using a smaller number would probably mean we need to use more CPU to do extra checks as laforge suggests, so not sure it's worth it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I21c9ef37954c73ab74f07a3d226707744cbb2f01 Gerrit-Change-Number: 23825 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 14:36: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 Apr 21 14:37:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:37:32 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move TRXD message length to trx_if.h In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23826 ) Change subject: osmo-bts-trx: move TRXD message length to trx_if.h ...................................................................... Patch Set 3: Is this going to play well with the bacthing feature you are preparing? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Gerrit-Change-Number: 23826 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 14:37: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 Apr 21 14:40:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:40:17 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: 'burst type' is actually modulation type In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23827 ) Change subject: osmo-bts-trx: 'burst type' is actually modulation type ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic06c96434ad32dd3770b88cb1fefcbefb2fc3928 Gerrit-Change-Number: 23827 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 14:40:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 14:43:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:43:58 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move MTS parser into trx_data_parse_mts() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23828 ) Change subject: osmo-bts-trx: move MTS parser into trx_data_parse_mts() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2de2cb2d58110452d8dedbcacfef28f85f6d67c1 Gerrit-Change-Number: 23828 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 14:43: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 Apr 21 14:49:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:49:15 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23829 ) Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 14:49:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 14:51:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:51:58 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23830 ) Change subject: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib3c4a5ad7f16196dc5c591aa0b4d7e0ec3267f05 Gerrit-Change-Number: 23830 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 14:51: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 Apr 21 14:52:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:52:23 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: get rid of TRX_CHDR_LEN macro In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23831 ) Change subject: osmo-bts-trx: cosmetic: get rid of TRX_CHDR_LEN macro ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I80495df474c432f4c0a4cfa6f917821d7b35859a Gerrit-Change-Number: 23831 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 14:52: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 Apr 21 14:55:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:55:12 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0-1-g4f346b04_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 ...................................................................... Patch Set 2: (1 comment) I can generate a new version of this patch and a tag myself if you want. Ping me if you want me to take over it. https://gerrit.osmocom.org/c/osmo-bts/+/23821/1/debian/changelog File debian/changelog: https://gerrit.osmocom.org/c/osmo-bts/+/23821/1/debian/changelog at 1 PS1, Line 1: osmo-bts (1.4.0) unstable; urgency=medium > Oh, damn. Thanks for pointing this out! I used osmo-release. [?] You need to use: "PATH="$PATH:/foo/bar/libosmocore" make REL=patch release --include-dir="/foo/bar/libosmocore" See specifically the REL=patch part, which in this case makes 1.3.0 become 1.3.1 "minor" (the default?) would turn 1.3.0 into 1.4.0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 14:55:12 +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 Wed Apr 21 14:56:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:56:00 +0000 Subject: Change in osmo-bts[master]: osmobts-abis.adoc: add missing bibliography In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23845 ) Change subject: osmobts-abis.adoc: add missing bibliography ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a86416466eba14090026a3e6ec82a0e8548209a Gerrit-Change-Number: 23845 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 14:56: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 Apr 21 14:59:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 14:59:29 +0000 Subject: Change in osmo-bts[master]: Abis manual: add Get Attributes, add BTS features In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23847 ) Change subject: Abis manual: add Get Attributes, add BTS features ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23847/1/doc/manuals/abis/oml.adoc File doc/manuals/abis/oml.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23847/1/doc/manuals/abis/oml.adoc at 852 PS1, Line 852: The number of flags transmitted depends on the software version of OsmoBTS. More depends on the backend of OsmoBTS in use and its software version. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99631272334537ab49ba8c530240aaeb67dde9d7 Gerrit-Change-Number: 23847 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 14:59:29 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 15:00:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 15:00:54 +0000 Subject: Change in osmo-bts[master]: Abis manual: s/TS 12.21/TS 52.021 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23846 ) Change subject: Abis manual: s/TS 12.21/TS 52.021 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I662a3419a6ec741fe162ccc7c7221df20b2780b1 Gerrit-Change-Number: 23846 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 15:00: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 Apr 21 15:01:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 15:01:41 +0000 Subject: Change in osmo-bts[master]: Abis manual: add VAMOS to BTS features In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23848 ) Change subject: Abis manual: add VAMOS to BTS features ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f Gerrit-Change-Number: 23848 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 15:01:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 15:09:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 15:09:52 +0000 Subject: Change in meta-telephony[201705]: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/23844 ) Change subject: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/23844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: I74cfbc784e2330837a3b165b0f3a62dc6c4ce274 Gerrit-Change-Number: 23844 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 15:09: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 Apr 21 15:10:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 15:10:29 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0-1-g4f346b04_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 ...................................................................... Patch Set 2: > Patch Set 2: > > (1 comment) > > I can generate a new version of this patch and a tag myself if you want. Ping me if you want me to take over it. Yep, feel free to take over. That was my first ever attempt to release something, so you should definitely know how to do it properly :) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 15:10: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 Wed Apr 21 15:14:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 15:14:30 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor handling of version specific TRXD parts In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23832 ) Change subject: osmo-bts-trx: refactor handling of version specific TRXD parts ...................................................................... Patch Set 3: (4 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c at 785 PS3, Line 785: bi->mod = TRX_MOD_T_GMSK; > shouldn't this be 8PSK sometimes? It should definitely be 8-PSK here, thanks! https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c at 810 PS3, Line 810: buf_len -= TRX_UL_V0HDR_LEN; > buf_len is not used here, so let's drop this unused op which is run for each TRXD packet. Ack https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c at 905 PS3, Line 905: } trx_data_codec[16] = { > why is this size=16? It's basically the maximum number of versions we can have. If we somehow negotiate a non-existing version, we will not run into buffer overflow. But I think instead of checking if 'trx_data_codec[pdu_ver].parse != NULL' below we can also do 'pdu_ver < ARRAY_SIZE(trx_data_codec)'. https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c at 959 PS3, Line 959: hdr_len = trx_data_codec[pdu_ver].parse(l1h->phy_inst, &bi, buf, buf_len); > fyi, func pointer call is SLOW, not sure it's the best idea to use them here which are called a lot, [?] Wow, I thought it's the opposite. After checking the assembly of the current code I found out that gcc does not inline functions (even with -O2) and does not optimize the 'switch(pdu_ver)' statement as I would expect. We end up with CMP and CALL instructions for each TRXD PDU version. Maybe I should just mark the version specific parsers with 'inline' instead. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Gerrit-Change-Number: 23832 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 15:14:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 15:19:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 15:19:39 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0-1-g4f346b04_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0-1-g4f346b04 ? 1.3.1 ...................................................................... Patch Set 2: ACK, I'll do it, remember to remove your local tag you just created. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 15:19: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 Apr 21 15:21:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 15:21:18 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor handling of version specific TRXD parts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23832 ) Change subject: osmo-bts-trx: refactor handling of version specific TRXD parts ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23832/3/src/osmo-bts-trx/trx_if.c at 905 PS3, Line 905: } trx_data_codec[16] = { > It's basically the maximum number of versions we can have. [?] why not simply checking explicitly by maximum supported version? I think we even have a define for that maximum version somewhere, we use it to negotiate the version. This way we don't need to have extra space unsued for no reason. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Gerrit-Change-Number: 23832 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 15:21:18 +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 Wed Apr 21 15:33:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 15:33:22 +0000 Subject: Change in osmo-bts[master]: osmobts-abis.adoc: add missing bibliography In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23845 ) Change subject: osmobts-abis.adoc: add missing bibliography ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a86416466eba14090026a3e6ec82a0e8548209a Gerrit-Change-Number: 23845 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 15:33: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 Apr 21 15:36:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 15:36:14 +0000 Subject: Change in osmo-bts[master]: Abis manual: s/TS 12.21/TS 52.021 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23846 ) Change subject: Abis manual: s/TS 12.21/TS 52.021 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I662a3419a6ec741fe162ccc7c7221df20b2780b1 Gerrit-Change-Number: 23846 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 15:36:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 15:40:10 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 15:40:10 +0000 Subject: Change in osmo-bts[master]: Abis manual: add Get Attributes, add BTS features In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23847 ) Change subject: Abis manual: add Get Attributes, add BTS features ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23847/1/doc/manuals/abis/oml.adoc File doc/manuals/abis/oml.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23847/1/doc/manuals/abis/oml.adoc at 852 PS1, Line 852: The number of flags transmitted depends on the software version of OsmoBTS. More > depends on the backend of OsmoBTS in use and its software version. Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99631272334537ab49ba8c530240aaeb67dde9d7 Gerrit-Change-Number: 23847 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 15:40:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 15:40:53 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 15:40:53 +0000 Subject: Change in osmo-bts[master]: Abis manual: add VAMOS to BTS features In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23848 ) Change subject: Abis manual: add VAMOS to BTS features ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23848/1/doc/manuals/abis/oml.adoc File doc/manuals/abis/oml.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23848/1/doc/manuals/abis/oml.adoc at 880 PS1, Line 880: (CCN) unrelated -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f Gerrit-Change-Number: 23848 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 15:40: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 Wed Apr 21 15:54:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 15:54:42 +0000 Subject: Change in osmo-bts[master]: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23849 ) Change subject: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23849/2/doc/manuals/abis/rsl.adoc File doc/manuals/abis/rsl.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23849/2/doc/manuals/abis/rsl.adoc at 1012 PS2, Line 1012: length of the value part The length part looks redundant to me, TV format would be enough. https://gerrit.osmocom.org/c/osmo-bts/+/23849/2/doc/manuals/abis/rsl.adoc at 1013 PS2, Line 1013: | octet 3 | TSC set And using two separate octets for such small range values also looks redundant to me, I would define it as follows: | 7 6 5 4 3 2 1 0 | Bitmask / description | . . . . . x x x | TSC | . . . x x . . . | TSC Set | x x x . . . . . | Reserved -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 Gerrit-Change-Number: 23849 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 21 Apr 2021 15:54: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 Wed Apr 21 16:03:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 16:03:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix TC_n3105_max_t3195 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 ) Change subject: pcu: Fix TC_n3105_max_t3195 ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810/1/pcu/PCU_Tests.ttcn at 1752 PS1, Line 1752: above case before continuing (expect /* Dummy block): */ This mix of code and comments that is hard to read: it looks like 'BTS.receive(...)' is also part of the comment (especially without syntax highlighting in Gerrit). Please re-align and use more star symbols. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4aa25d1220ccbeb8f1870f36651c9d6793a452b1 Gerrit-Change-Number: 23810 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 16:03: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 Wed Apr 21 16:09:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:09:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix TC_n3105_max_t3195 In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 to look at the new patch set (#2). Change subject: pcu: Fix TC_n3105_max_t3195 ...................................................................... pcu: Fix TC_n3105_max_t3195 The previously request Dummy block was processed later in an unrelated place of the test, hence making expectations fail. The condition T_3195.running doesn't really change the logic/behavior, but removes an annoying warning in log files everytime the alt step is run. Change-Id: I4aa25d1220ccbeb8f1870f36651c9d6793a452b1 --- M pcu/PCU_Tests.ttcn 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/10/23810/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4aa25d1220ccbeb8f1870f36651c9d6793a452b1 Gerrit-Change-Number: 23810 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:09:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:09:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_n3103_max_t3169 In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 to look at the new patch set (#2). Change subject: pcu: Introduce test TC_n3103_max_t3169 ...................................................................... pcu: Introduce test TC_n3103_max_t3169 Related: OS#5033 Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e --- M pcu/PCU_Tests.ttcn 1 file changed, 103 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/11/23811/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e Gerrit-Change-Number: 23811 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:11:46 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 16:11:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_n3103_max_t3169 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 ) Change subject: pcu: Introduce test TC_n3103_max_t3169 ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811/1/pcu/PCU_Tests.ttcn at 1469 PS1, Line 1469: nr := ts_TsTrxBtsNum This second assignment creates an impression that nr is getting changed somewhere? Is it? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811/1/pcu/PCU_Tests.ttcn at 1494 PS1, Line 1494: Again mix of code and comments. This is why I am against this comment formatting style. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811/1/pcu/PCU_Tests.ttcn at 1505 PS1, Line 1505: /* coding style -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e Gerrit-Change-Number: 23811 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 16:11: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 Wed Apr 21 16:12:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 16:12:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix TC_n3105_max_t3195 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 ) Change subject: pcu: Fix TC_n3105_max_t3195 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4aa25d1220ccbeb8f1870f36651c9d6793a452b1 Gerrit-Change-Number: 23810 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 16:12:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:12:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 16:12:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_n3103_max_t3169 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 ) Change subject: pcu: Introduce test TC_n3103_max_t3169 ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e Gerrit-Change-Number: 23811 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 16:12: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 Apr 21 16:15:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:15:35 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0=2E1-4f34_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#3) to the change originally created by fixeria. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0.1-4f34 ? 1.3.1 ...................................................................... Bump version: 1.3.0.1-4f34 ? 1.3.1 Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 --- M debian/changelog 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/21/23821/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Assignee: pespin 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 Apr 21 16:17:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:17:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix TC_n3105_max_t3195 In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 ) Change subject: pcu: Fix TC_n3105_max_t3195 ...................................................................... pcu: Fix TC_n3105_max_t3195 The previously request Dummy block was processed later in an unrelated place of the test, hence making expectations fail. The condition T_3195.running doesn't really change the logic/behavior, but removes an annoying warning in log files everytime the alt step is run. Change-Id: I4aa25d1220ccbeb8f1870f36651c9d6793a452b1 --- M pcu/PCU_Tests.ttcn 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index d4fe004..e946d96 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1746,9 +1746,13 @@ block_nr := nr.blk_nr)); repeat; } - [] T_3195.timeout { + [T_3195.running] T_3195.timeout { log("T_3195 timeout"); - /* Done in alt */ + /* Done in alt, wait for pending RTS initiated previously in + * above case before continuing (expect /* Dummy block): */ + BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), + tr_RLCMAC_DUMMY_CTRL)); } [] BTS.receive { setverdict(fail, "Unexpected BTS message"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23810 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4aa25d1220ccbeb8f1870f36651c9d6793a452b1 Gerrit-Change-Number: 23810 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 Apr 21 16:19:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:19:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_n3103_max_t3169 In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 to look at the new patch set (#3). Change subject: pcu: Introduce test TC_n3103_max_t3169 ...................................................................... pcu: Introduce test TC_n3103_max_t3169 Related: OS#5033 Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e --- M pcu/PCU_Tests.ttcn 1 file changed, 103 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/11/23811/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e Gerrit-Change-Number: 23811 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:21:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 16:21:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_n3103_max_t3169 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 ) Change subject: pcu: Introduce test TC_n3103_max_t3169 ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e Gerrit-Change-Number: 23811 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 16:21:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:22:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:22:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_n3103_max_t3169 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 ) Change subject: pcu: Introduce test TC_n3103_max_t3169 ...................................................................... Patch Set 3: Code-Review+2 Readding laforge +1 after comsetic changes. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e Gerrit-Change-Number: 23811 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 16: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 Wed Apr 21 16:22:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:22:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_n3103_max_t3169 In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 ) Change subject: pcu: Introduce test TC_n3103_max_t3169 ...................................................................... pcu: Introduce test TC_n3103_max_t3169 Related: OS#5033 Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e --- M pcu/PCU_Tests.ttcn 1 file changed, 103 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index e946d96..a466732 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1418,6 +1418,108 @@ f_shutdown(__BFILE__, __LINE__, final := true); } + +/* Verify after N3103_MAX is reached, T3169 is started and upon timeout TBF is + freed and no longer available. Trigger it by sending a few UL blocks CTRL ACKING + the final UL ACK sent at us. */ +testcase TC_n3103_max_t3169() runs on RAW_PCU_Test_CT { + var PCUIF_info_ind info_ind; + var BTS_PDTCH_Block data_msg; + var RlcmacDlBlock dl_block; + var uint32_t sched_fn; + var template (value) TsTrxBtsNum nr; + var template RlcmacDlBlock exp_ul_ack; + var template UlAckNackGprs exp_ul_ack_sub; + var GprsMS ms; + const integer N3103_MAX := 2; /* N3103 is usually somewhere 2-5 */ + var integer N3103 := 0; + timer T_3169 := 1.0; + + /* 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 */ + info_ind := valueof(ts_PCUIF_INFO_default(c_PCUIF_Flags_noMCS)); + info_ind.n3103 := N3103_MAX; + info_ind.t3169 := 1; + f_init_raw(testcasename(), info_ind); + + /* Establish an Uplink TBF */ + f_ms_establish_ul_tbf(ms); + + f_ms_tx_ul_data_block_multi(ms, 5); + exp_ul_ack_sub := tr_UlAckNackGprs(*, tr_AckNackDescription('1'B), *); + exp_ul_ack := tr_RLCMAC_UL_ACK_NACK_GPRS(ms.ul_tbf.tfi, exp_ul_ack_sub); + + nr := ts_TsTrxBtsNum; + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), + block_nr := nr.blk_nr)); + alt { + [N3103 < N3103_MAX] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), + exp_ul_ack)) -> value data_msg { + if (not f_dl_block_rrbp_valid(data_msg.dl_block)) { + setverdict(fail, "Unexpected DL BLOCK has no RRBP: ", data_msg.dl_block); + f_shutdown(__BFILE__, __LINE__); + } + + nr := ts_TsTrxBtsNum; + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), + block_nr := nr.blk_nr)); + N3103 := N3103 + 1; + if (N3103 == N3103_MAX) { + /* At this point in time (N3103_MAX reached), PCU is + * moving the TBF to RELEASE state so no data/ctrl for + * it is tx'ed, hence the dummy blocks: */ + T_3169.start; + } + repeat; + } + [N3103 >= N3103_MAX] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), + exp_ul_ack)) -> value data_msg { + setverdict(fail, "Unexpected UL ACK/NACK after reaching N3103_MAX"); + f_shutdown(__BFILE__, __LINE__); + } + [] as_ms_rx_ignore_dummy(ms, nr); + [T_3169.running] T_3169.timeout { + log("T_3169 timeout"); + /* Done in alt, wait for pending RTS initiated previously in + * above case before continuing (expect /* Dummy block): */ + BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), + tr_RLCMAC_DUMMY_CTRL)); + } + [] BTS.receive { + setverdict(fail, "Unexpected BTS message"); + f_shutdown(__BFILE__, __LINE__); + } + } + + /* Now that T3169 has expired, establishing a Ul TBF should provide same + * USFs as per previous TBF since they were freed at expiration time: */ + var uint3_t old_usf[8] := ms.ul_tbf.usf; + var uint5_t old_tfi := ms.ul_tbf.tfi; + f_ms_establish_ul_tbf(ms); + if (old_tfi != ms.ul_tbf.tfi) { + setverdict(fail, "Unexpected TFI change: ", ms.ul_tbf.tfi, " vs exp ", old_tfi); + f_shutdown(__BFILE__, __LINE__); + } + for (var integer i := 0; i < 8; i := i +1) { + if (ms.ul_tbf.usf[i] != old_usf[i]) { + setverdict(fail, "Unexpected USF change: ", ms.ul_tbf.usf[i], " vs exp ", old_usf[i]); + f_shutdown(__BFILE__, __LINE__); + } + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + /* Verify that a Downlink TBF is kept available until T3191 fires, at which * point the TBF is no longer available. In order to get to start of T3191, we * have to wait for x2031 since that marks the IDLE TBF time, that is, the delay @@ -5667,6 +5769,7 @@ execute( TC_mcs_max_dl() ); execute( TC_t3169() ); execute( TC_n3101_max_t3169() ); + execute( TC_n3103_max_t3169() ); execute( TC_x2031_t3191() ); execute( TC_zero_x2031_t3191() ); execute( TC_t3193() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e Gerrit-Change-Number: 23811 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 gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:23:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:23:38 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0=2E1-4f34_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0.1-4f34 ? 1.3.1 ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 16:23: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 Apr 21 16:23:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:23:42 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0=2E1-4f34_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0.1-4f34 ? 1.3.1 ...................................................................... Bump version: 1.3.0.1-4f34 ? 1.3.1 Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 --- M debian/changelog 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index bc44837..25b7ae6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +osmo-bts (1.3.1) unstable; urgency=medium + + [ Vadim Yanitskiy ] + * lchan2lch_par(): fix missing default branch in switch + + -- Pau Espin Pedrol Wed, 21 Apr 2021 18:14:27 +0200 + osmo-bts (1.3.0) unstable; urgency=medium [ Michael McTernan ] -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:24:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:24:24 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Brel-1=2E3=2E1=5D=3A_Bump_version=3A_1=2E3=2E0=2E1-4f34_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23821 ) Change subject: Bump version: 1.3.0.1-4f34 ? 1.3.1 ...................................................................... Patch Set 3: Tag 1.3.1 pushed. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: rel-1.3.1 Gerrit-Change-Id: I9a2b1db3d984aa8c93c661fba6a72d6b015e6ac5 Gerrit-Change-Number: 23821 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 16:24: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 Wed Apr 21 16:25:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:25:33 +0000 Subject: Change in meta-telephony[201705]: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/23844 ) Change subject: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/23844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: I74cfbc784e2330837a3b165b0f3a62dc6c4ce274 Gerrit-Change-Number: 23844 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 16:25:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:25:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:25:35 +0000 Subject: Change in meta-telephony[201705]: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/23844 ) Change subject: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug ...................................................................... libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug Related: OS#5079 Change-Id: I74cfbc784e2330837a3b165b0f3a62dc6c4ce274 --- M recipes-osmocom/libosmocore/libosmocore_git.bb 1 file changed, 10 insertions(+), 2 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved; Verified diff --git a/recipes-osmocom/libosmocore/libosmocore_git.bb b/recipes-osmocom/libosmocore/libosmocore_git.bb index 9717511..062fb20 100644 --- a/recipes-osmocom/libosmocore/libosmocore_git.bb +++ b/recipes-osmocom/libosmocore/libosmocore_git.bb @@ -4,7 +4,7 @@ SRCREV = "1.5.1" SRC_URI = "git://git.osmocom.org/libosmocore.git;protocol=git;tag=${SRCREV};nobranch=1" PV = "1.5.1+gitr${SRCPV}" -PR = "${INC_PR}.0" +PR = "${INC_PR}.1" PACKAGES =+ "libosmoctrl libosmocodec libosmogb libosmogsm libosmovty osmo-arfcn osmo-auc-gen osmo-config-merge" FILES_libosmoctrl = "${libdir}/libosmoctrl${SOLIBS}" @@ -36,4 +36,12 @@ # we are not affected by the bug, we are fine with that. If the toolchain had # the TLS runtime bug, then we'd had to build with -O0. Can be probably dropped # once we move to newer toolchain. -EXTRA_OECONF += "--disable-detect-tls-gcc-arm-bug" +#EXTRA_OECONF += "--disable-detect-tls-gcc-arm-bug" +# UPDATE: OS#5079: we stop using "--disable-detect-tls-gcc-arm-bug" because we +# finally hit the TLS bug in sysmobts (osmo-bts-symo calling osmo_str_tolower() +# which uses "static __thread char capsbuf"). As a result, the only option would +# be to use -O0 when building libosmocore with the sysmobts toolchain. In order +# to avoid that, we take advantage of the fact that no libosmocore multi-thread +# process is expected to run there and simply drop all the "__thread" +# references when building for sysmobts. That's done as a machine-specific +# bbappend in meta-sysmocom-bsp. -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/23844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: I74cfbc784e2330837a3b165b0f3a62dc6c4ce274 Gerrit-Change-Number: 23844 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Apr 21 16:26:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:26:41 +0000 Subject: Change in meta-telephony[201705]: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/23844 ) Change subject: libosmocore: Avoid use --disable-detect-tls-gcc-arm-bug ...................................................................... Patch Set 1: laforge/nightly has been rebased on top and pushed. Now new builds should be triggered. -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/23844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: I74cfbc784e2330837a3b165b0f3a62dc6c4ce274 Gerrit-Change-Number: 23844 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 16:26:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:29:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:29:47 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 7 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-Comment-Date: Wed, 21 Apr 2021 16:29: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 Apr 21 16:29:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 16:29:59 +0000 Subject: Change in osmo-bsc[master]: Send EUTRAN neighs based on whether Common Id msg contained Last used... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23734 ) Change subject: Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID ...................................................................... Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID >From 3GPP TS 48.008 sec 3.1.30 "Common ID": """ If the SCCP connection is established due to CSFB from E-UTRAN and the MSC supports return to the last used PLMN after CS fallback, then it should send the COMMON ID message to the BSS including the Last used E-UTRAN PLMN ID information element if available at the MSC immediately following the successful SCCP connection setup. """ Furthermore, 3GPP TS 48.008 version 16.0.0 Release 16 "3.2.1.21 CLEAR COMMAND", for field CSFB Indication, states: """ NOTE: This information element doesn't serve any useful purpose. MSCs should not send the information element unless it is required by the recipients (due to the need to interwork with older versions of the protocol). It is expected that in future versions of the present document, this information element will be deleted from this message. """ Hence, build up the EUTRAN neighbor list based on whether we received the Last E-UTRAN PLMN ID IE during Common Id. In the future, we should probably filter the list while populating it based on the received IE. This change will also allow reusing same mechanism for SRVCC EUTRAN->GERAN support, where te Last E-UTRAN PLMN ID IE can be found inside "Old BSS to New BSS information" IE in msg HANDOVER REQUEST. Related: SYS#5337 Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 --- M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/lchan_fsm.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/gsm_08_08.c M src/osmo-bsc/handover_fsm.c M src/osmo-bsc/lchan_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c M tests/handover/handover_test.c 13 files changed, 76 insertions(+), 47 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/include/osmocom/bsc/bsc_subscr_conn_fsm.h b/include/osmocom/bsc/bsc_subscr_conn_fsm.h index 142d535..a681bc4 100644 --- a/include/osmocom/bsc/bsc_subscr_conn_fsm.h +++ b/include/osmocom/bsc/bsc_subscr_conn_fsm.h @@ -2,6 +2,7 @@ #include #include #include +#include "osmocom/bsc/gsm_data.h" #define BSUB_USE_CONN "conn" @@ -48,11 +49,6 @@ GSCON_EV_LCS_LOC_REQ_END, }; -struct gscon_clear_cmd_data { - enum gsm0808_cause cause_0808; - bool is_csfb; -}; - struct gsm_subscriber_connection; struct gsm_network; struct msgb; @@ -93,3 +89,10 @@ bool gscon_is_aoip(struct gsm_subscriber_connection *conn); bool gscon_is_sccplite(struct gsm_subscriber_connection *conn); + + +static inline const struct osmo_plmn_id *gscon_last_eutran_plmn(const struct gsm_subscriber_connection *conn) +{ + return (conn && conn->last_eutran_plmn_valid) ? + &conn->last_eutran_plmn : NULL; +} diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 2a9da26..448098b 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -334,6 +334,9 @@ struct gsm48_classmark3 cm3; bool cm3_valid; + + bool last_eutran_plmn_valid; + struct osmo_plmn_id last_eutran_plmn; }; @@ -614,6 +617,8 @@ bool requested; bool do_rr_release; enum gsm48_rr_cause rr_cause; + bool last_eutran_plmn_valid; + struct osmo_plmn_id last_eutran_plmn; /* There is an RSL error cause of value 0, so we need a separate flag. */ bool in_error; @@ -623,9 +628,6 @@ /* If a release event is being handled, ignore other ricocheting release events until that * release handling has concluded. */ bool in_release_handler; - - /* is this release at the end of a CSFB call? */ - bool is_csfb; } release; /* The logical channel type */ diff --git a/include/osmocom/bsc/lchan_fsm.h b/include/osmocom/bsc/lchan_fsm.h index 9fe7db1..ded7f54 100644 --- a/include/osmocom/bsc/lchan_fsm.h +++ b/include/osmocom/bsc/lchan_fsm.h @@ -53,7 +53,8 @@ void lchan_fsm_alloc(struct gsm_lchan *lchan); void lchan_release(struct gsm_lchan *lchan, bool do_rr_release, - bool err, enum gsm48_rr_cause cause_rr); + bool err, enum gsm48_rr_cause cause_rr, + const struct osmo_plmn_id *last_eutran_plmn); void lchan_activate(struct gsm_lchan *lchan, struct lchan_activate_info *info); void lchan_ready_to_switch_rtp(struct gsm_lchan *lchan); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 6445b6d..20fb759 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -998,7 +998,7 @@ * the connection will presumably be torn down and lead to an lchan release. During initial * Channel Request from the MS, an lchan has no conn yet, so in that case release now. */ if (!lchan->conn) - lchan_release(lchan, false, true, *cause_p); + lchan_release(lchan, false, true, *cause_p, NULL); else osmo_fsm_inst_dispatch(lchan->conn->fi, GSCON_EV_RSL_CONN_FAIL, (void*)cause_p); @@ -1672,7 +1672,8 @@ "CHAN RQD/EMERGENCY-PRIORITY: inducing termination of lchan %s (state:%s) in favor of incoming EMERGENCY CALL!\n", gsm_lchan_name(rqd->release_lchan), osmo_fsm_inst_state_name(rqd->release_lchan->fi)); - lchan_release(rqd->release_lchan, !!(rqd->release_lchan->conn), true, 0); + lchan_release(rqd->release_lchan, !!(rqd->release_lchan->conn), true, 0, + gscon_last_eutran_plmn(rqd->release_lchan->conn)); } else { /* BTS is shutting down, give up... */ if (rqd->release_lchan->ts->fi->state == TS_ST_NOT_INITIALIZED) diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 2f241e3..faaec53 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -117,7 +117,7 @@ if (conn->assignment.new_lchan) { struct gsm_lchan *lchan = conn->assignment.new_lchan; conn->assignment.new_lchan = NULL; - lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, NULL); } if (conn->assignment.created_ci_for_msc) { @@ -262,7 +262,8 @@ if (!conn->assignment.fi) { /* The lchan was ready, and we failed to tell the MSC about it. By releasing this lchan, * the conn will notice that its primary lchan is gone and should clean itself up. */ - lchan_release(conn->lchan, true, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(conn->lchan, true, true, RSL_ERR_EQUIPMENT_FAIL, + gscon_last_eutran_plmn(conn)); return; } diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index a0c53cb..f169c32 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -195,7 +195,8 @@ conn->ho.new_lchan = NULL; if (conn->assignment.new_lchan == lchan) conn->assignment.new_lchan = NULL; - lchan_release(lchan, do_rr_release, err, cause_rr); + lchan_release(lchan, do_rr_release, err, cause_rr, + gscon_last_eutran_plmn(conn)); } void gscon_release_lchans(struct gsm_subscriber_connection *conn, bool do_rr_release, enum gsm48_rr_cause cause_rr) @@ -808,7 +809,7 @@ static void gscon_fsm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_subscriber_connection *conn = fi->priv; - const struct gscon_clear_cmd_data *ccd; + const enum gsm0808_cause *cause_0808; const struct tlv_parsed *tp; struct osmo_mobile_identity mi_imsi; @@ -826,14 +827,12 @@ osmo_fsm_inst_dispatch(conn->lcs.loc_req->fi, LCS_LOC_REQ_EV_CONN_CLEAR, NULL); OSMO_ASSERT(data); - ccd = data; - if (conn->lchan) - conn->lchan->release.is_csfb = ccd->is_csfb; + cause_0808 = data; /* MSC tells us to cleanly shut down */ if (conn->fi->state != ST_CLEARING) osmo_fsm_inst_state_chg(fi, ST_CLEARING, 60, -4); LOGPFSML(fi, LOGL_DEBUG, "Releasing all lchans (if any) after BSSMAP Clear Command\n"); - gscon_release_lchans(conn, true, bsc_gsm48_rr_cause_from_gsm0808_cause(ccd->cause_0808)); + gscon_release_lchans(conn, true, bsc_gsm48_rr_cause_from_gsm0808_cause(*cause_0808)); /* FIXME: Release all terestrial resources in ST_CLEARING */ /* According to 3GPP 48.008 3.1.9.1. "The BSS need not wait for the radio channel * release to be completed or for the guard timer to expire before returning the @@ -883,6 +882,12 @@ if (!conn->bsub->imsi[0]) bsc_subscr_set_imsi(conn->bsub, mi_imsi.imsi); } + if (TLVP_PRESENT(tp, GSM0808_IE_LAST_USED_EUTRAN_PLMN_ID)) { + conn->last_eutran_plmn_valid = true; + osmo_plmn_from_bcd(TLVP_VAL(tp, GSM0808_IE_LAST_USED_EUTRAN_PLMN_ID), &conn->last_eutran_plmn); + LOGPFSML(fi, LOGL_DEBUG, "subscr comes from E-UTRAN PLMN %s\n", + osmo_plmn_name(&conn->last_eutran_plmn)); + } gscon_update_id(conn); break; default: diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 1d29f1b..3c60f5f 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -77,6 +77,7 @@ #include #include #include +#include #include @@ -6111,7 +6112,8 @@ } vty_out(vty, "%% Asking for release of %s in state %s%s", gsm_lchan_name(lchan), osmo_fsm_inst_state_name(lchan->fi), VTY_NEWLINE); - lchan_release(lchan, !!(lchan->conn), false, 0); + lchan_release(lchan, !!(lchan->conn), false, 0, + gscon_last_eutran_plmn(lchan->conn)); } return CMD_SUCCESS; diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 58913e2..5e9bc69 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -313,10 +313,10 @@ cause = msgb_put(msg, 1); cause[0] = lchan->release.rr_cause; - if (lchan->release.is_csfb) { + if (lchan->release.last_eutran_plmn_valid) { uint8_t buf[CELL_SEL_IND_AFTER_REL_MAX_BYTES]; int len; - + /* FIXME: so far we assume all configured neigbhors match last_eutran_plmn */ len = generate_cell_sel_ind_after_rel(buf, sizeof(buf), lchan->ts->trx->bts); if (len == 0) { LOGPLCHAN(lchan, DRR, LOGL_NOTICE, "MSC indicated CSFB Fast Return, but " @@ -996,13 +996,15 @@ if (msg->lchan->ts->trx->bts->si_common.rach_control.t2 & 0x4) { LOG_LCHAN(msg->lchan, LOGL_NOTICE, "MS attempts EMERGENCY SETUP although EMERGENCY CALLS" " are not allowed in sysinfo (spec violation by MS!)\n"); - lchan_release(msg->lchan, true, true, GSM48_RR_CAUSE_PREMPTIVE_REL); + lchan_release(msg->lchan, true, true, GSM48_RR_CAUSE_PREMPTIVE_REL, + gscon_last_eutran_plmn(msg->lchan->conn)); break; } if (!conn->sccp.msc->allow_emerg) { LOG_LCHAN(msg->lchan, LOGL_NOTICE, "MS attempts EMERGENCY SETUP, but EMERGENCY CALLS are" " denied on this BSC (check BTS config!)\n"); - lchan_release(msg->lchan, true, true, GSM48_RR_CAUSE_PREMPTIVE_REL); + lchan_release(msg->lchan, true, true, GSM48_RR_CAUSE_PREMPTIVE_REL, + gscon_last_eutran_plmn(msg->lchan->conn)); break; } } diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 52a92c8..e943ec1 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -541,7 +541,8 @@ early_exit: if (release_lchan) - lchan_release(lchan, true, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(lchan, true, true, RSL_ERR_EQUIPMENT_FAIL, + gscon_last_eutran_plmn(conn)); log_set_context(LOG_CTX_BSC_SUBSCR, NULL); return rc; } diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c index 70e479f..f6dad9d 100644 --- a/src/osmo-bsc/handover_fsm.c +++ b/src/osmo-bsc/handover_fsm.c @@ -272,7 +272,8 @@ struct osmo_mgcpc_ep_ci *ci; if (conn->ho.new_lchan) /* New lchan was activated but never passed to a conn */ - lchan_release(conn->ho.new_lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(conn->ho.new_lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, + NULL); ci = conn->ho.created_ci_for_msc; if (ci) { @@ -908,7 +909,8 @@ /* 3GPP TS 48.008 3.1.5.3.3 "Abnormal Conditions": if neither MS reports * HO Failure nor the MSC sends a Clear Command, we should release the * dedicated radio resources and send a Clear Request to the MSC. */ - lchan_release(conn->lchan, true, true, GSM48_RR_CAUSE_ABNORMAL_TIMER); + lchan_release(conn->lchan, true, true, GSM48_RR_CAUSE_ABNORMAL_TIMER, + gscon_last_eutran_plmn(conn)); /* Once the channel release is through, the BSSMAP Clear will follow. */ break; } @@ -964,7 +966,7 @@ /* Detach the new_lchan last, so we can still see it in above logging */ if (ho->new_lchan) { /* Release new lchan, it didn't work out */ - lchan_release(ho->new_lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(ho->new_lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, NULL); ho->new_lchan = NULL; } diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 0e2eb82..d58aac5 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -165,14 +165,14 @@ LOG_LCHAN(lchan, LOGL_ERROR, "lchan activation for assignment succeeded, but lchan has no conn:" " cannot trigger appropriate actions. Release.\n"); - lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, NULL); break; } if (!lchan->conn->assignment.fi) { LOG_LCHAN(lchan, LOGL_ERROR, "lchan activation for assignment succeeded, but lchan has no" " assignment ongoing: cannot trigger appropriate actions. Release.\n"); - lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, NULL); break; } osmo_fsm_inst_dispatch(lchan->conn->assignment.fi, ASSIGNMENT_EV_LCHAN_ESTABLISHED, @@ -186,14 +186,14 @@ if (!lchan->conn) { LOG_LCHAN(lchan, LOGL_ERROR, "lchan activation for handover succeeded, but lchan has no conn\n"); - lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, NULL); break; } if (!lchan->conn->ho.fi) { LOG_LCHAN(lchan, LOGL_ERROR, "lchan activation for handover succeeded, but lchan has no" " handover ongoing\n"); - lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, NULL); break; } osmo_fsm_inst_dispatch(lchan->conn->ho.fi, HO_EV_LCHAN_ESTABLISHED, lchan); @@ -793,14 +793,14 @@ LOG_LCHAN(lchan, LOGL_ERROR, "lchan activation for assignment succeeded, but lchan has no conn:" " cannot trigger appropriate actions. Release.\n"); - lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, NULL); break; } if (!lchan->conn->assignment.fi) { LOG_LCHAN(lchan, LOGL_ERROR, "lchan activation for assignment succeeded, but lchan has no" " assignment ongoing: cannot trigger appropriate actions. Release.\n"); - lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, NULL); break; } /* After the Chan Activ Ack, the MS expects to receive an RR Assignment Command. @@ -813,14 +813,14 @@ LOG_LCHAN(lchan, LOGL_ERROR, "lchan activation for handover succeeded, but lchan has no conn:" " cannot trigger appropriate actions. Release.\n"); - lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, NULL); break; } if (!lchan->conn->ho.fi) { LOG_LCHAN(lchan, LOGL_ERROR, "lchan activation for handover succeeded, but lchan has no" " handover ongoing: cannot trigger appropriate actions. Release.\n"); - lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL); + lchan_release(lchan, false, true, RSL_ERR_EQUIPMENT_FAIL, NULL); break; } /* After the Chan Activ Ack of the new lchan, send the MS an RR Handover Command on the @@ -1589,7 +1589,8 @@ } void lchan_release(struct gsm_lchan *lchan, bool do_rr_release, - bool err, enum gsm48_rr_cause cause_rr) + bool err, enum gsm48_rr_cause cause_rr, + const struct osmo_plmn_id *last_eutran_plmn) { if (!lchan || !lchan->fi) return; @@ -1603,6 +1604,10 @@ lchan->release.in_error = err; lchan->release.do_rr_release = do_rr_release; lchan->release.rr_cause = cause_rr; + if (last_eutran_plmn) { + lchan->release.last_eutran_plmn_valid = true; + memcpy(&lchan->release.last_eutran_plmn, last_eutran_plmn, sizeof(*last_eutran_plmn)); + } /* States waiting for events will notice the desire to release when done waiting, so it is enough * to mark for release. */ diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index b558fae..fc1484e 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -448,23 +448,27 @@ struct msgb *msg, unsigned int length) { struct tlv_parsed tp; - struct gscon_clear_cmd_data ccd = { - .is_csfb = false, - }; + enum gsm0808_cause cause_0808; tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l4h + 1, length - 1, 0, 0); - ccd.cause_0808 = gsm0808_get_cause(&tp); - if (ccd.cause_0808 < 0) { + cause_0808 = gsm0808_get_cause(&tp); + if (cause_0808 < 0) { LOGPFSML(conn->fi, LOGL_ERROR, "Clear Command: Mandatory Cause IE not present.\n"); /* Clear anyway, but without a proper cause. */ - ccd.cause_0808 = GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE; + cause_0808 = GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE; } - if (TLVP_PRESENT(&tp, GSM0808_IE_CSFB_INDICATION)) - ccd.is_csfb = true; + if (TLVP_PRESENT(&tp, GSM0808_IE_CSFB_INDICATION) && + !conn->last_eutran_plmn_valid) { + LOGPFSML(conn->fi, LOGL_NOTICE, + "Clear Command: CSFB Indication present, " + "but subscriber has no Last Used E-UTRAN PLMN Id! " + "This probably means MSC doesn't support proper return " + "to the last used PLMN after CS fallback.\n"); + } - osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CLEAR_CMD, &ccd); + osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CLEAR_CMD, &cause_0808); return 0; } diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 332c94c..917372b 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -449,7 +449,7 @@ static void lchan_clear(struct gsm_lchan *lchan) { - lchan_release(lchan, true, false, 0); + lchan_release(lchan, true, false, 0, NULL); lchan_release_ack(lchan); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d290ac55eca5adde1c33396422f4c10b83c03d5 Gerrit-Change-Number: 23734 Gerrit-PatchSet: 7 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 Wed Apr 21 16:33:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:33:09 +0000 Subject: Change in osmo-bts[master]: osmobts-abis.adoc: add missing bibliography In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23845 ) Change subject: osmobts-abis.adoc: add missing bibliography ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a86416466eba14090026a3e6ec82a0e8548209a Gerrit-Change-Number: 23845 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 16: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 Wed Apr 21 16:33:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:33:10 +0000 Subject: Change in osmo-bts[master]: osmobts-abis.adoc: add missing bibliography In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23845 ) Change subject: osmobts-abis.adoc: add missing bibliography ...................................................................... osmobts-abis.adoc: add missing bibliography Change-Id: I6a86416466eba14090026a3e6ec82a0e8548209a --- M doc/manuals/osmobts-abis.adoc 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved laforge: Looks good to me, approved diff --git a/doc/manuals/osmobts-abis.adoc b/doc/manuals/osmobts-abis.adoc index 857b4bf..26e57e9 100644 --- a/doc/manuals/osmobts-abis.adoc +++ b/doc/manuals/osmobts-abis.adoc @@ -87,6 +87,8 @@ include::./common/chapters/port_numbers.adoc[] +include::./common/chapters/bibliography.adoc[] + include::./common/chapters/glossary.adoc[] include::./common/chapters/gfdl.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a86416466eba14090026a3e6ec82a0e8548209a Gerrit-Change-Number: 23845 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Apr 21 16:33:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:33:51 +0000 Subject: Change in osmo-bts[master]: Abis manual: s/TS 12.21/TS 52.021 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23846 ) Change subject: Abis manual: s/TS 12.21/TS 52.021 ...................................................................... Patch Set 1: Code-Review+2 one could also expliitly state 3GPP TS 52.021 instead of just "TS ..." as the latetr could also be ETSI. But not important, of course. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I662a3419a6ec741fe162ccc7c7221df20b2780b1 Gerrit-Change-Number: 23846 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 16:33:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:34:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:34:46 +0000 Subject: Change in osmo-bts[master]: Abis manual: s/TS 12.21/TS 52.021 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23846 ) Change subject: Abis manual: s/TS 12.21/TS 52.021 ...................................................................... Abis manual: s/TS 12.21/TS 52.021 Change-Id: I662a3419a6ec741fe162ccc7c7221df20b2780b1 --- M doc/manuals/abis/oml.adoc 1 file changed, 53 insertions(+), 52 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved laforge: Looks good to me, approved diff --git a/doc/manuals/abis/oml.adoc b/doc/manuals/abis/oml.adoc index 4afcec0..0fbd321 100644 --- a/doc/manuals/abis/oml.adoc +++ b/doc/manuals/abis/oml.adoc @@ -3,16 +3,17 @@ === List of Messages The following tables list the OML messages used by OsmoBTS, grouped by their -level of compliance with 3GPP TS 12.21. +level of compliance with 3GPP TS 52.021 [[3gpp-ts-52-021]] (previously 3GPP TS +12.21). -==== Messages Compliant With TS 12.21 +==== Messages Compliant With TS 52.021 Specific limitations apply, see the linked sections. -.Messages compliant with TS 12.21 +.Messages compliant with TS 52.021 [options="header",cols="10%,10%,20%,35%,5%,20%"] |=== -| TS 12.21 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoBTS +| TS 52.021 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoBTS 6+<| *SW Download Management Messages:* | 8.3.7 | 0x10 | <> | SW Activated Report | -> | Sent 6+<| *Air Interface Management Messages:* @@ -39,7 +40,7 @@ ==== Messages Specific to OsmoBTS -.Messages specific to OsmoBTS, not found in 3GPP TS 12.21 +.Messages specific to OsmoBTS, not found in 3GPP TS 52.021 [options="header"] [options="header",cols="20%,55%,5%,20%"] |=== @@ -49,10 +50,10 @@ ==== Messages Not Implemented by OsmoBTS -.3GPP TS 12.21 messages not implemented by OsmoBTS +.3GPP TS 52.021 messages not implemented by OsmoBTS [options="header",cols="10%,10%,80%"] |=== -| TS 12.21 ? | type code (hex) | Message +| TS 52.021 ? | type code (hex) | Message 3+<| *SW Download Management Messages:* .3+.| 8.3.1 | 0x01 | Load Data Initiate | 0x02 | Load Data Initiate Ack @@ -151,7 +152,7 @@ ==== SW Activated Report OsmoBTS will send an _SW Activated Report_ when RF has been activated -successfully. The message is compliant with 3GPP TS 12.21 ? 8.3.7. +successfully. The message is compliant with 3GPP TS 52.021 ? 8.3.7. Upon RF activation, two _SW Activated Report_ messages will be sent, for the Object Classes @@ -163,13 +164,13 @@ OsmoBTS will receive a _Set BTS Attributes_ message and reply with a corresponding ACK message on success. IE handling is fully compliant to TS -12.21, except that a change of BCCH ARFCN or BSIC while in operation is not +52.021, except that a change of BCCH ARFCN or BSIC while in operation is not supported, and hence the _Starting Time_ IE is rejected. ._Set BTS Attributes_ IEs not handled by OsmoBTS [options="header",cols="10%,30%,60%"] |=== -| TS 12.21 ? | IE Name | Handling +| TS 52.021 ? | IE Name | Handling | 9.4.52 | Starting Time | not supported (provokes NACK cause 0x10) |=== @@ -177,13 +178,13 @@ [[set_radio_attr]] ==== Set Radio Carrier Attributes -This message conforms to 3GPP TS 12.21, with the following limitation, +This message conforms to 3GPP TS 52.021, with the following limitation, as frequency hopping is not supported by OsmoBTS: ._Set Radio Carrier Attributes_ IE limitations [options="header",cols="10%,30%,60%"] |=== -| TS 12.21 ? | IE Name | Handling +| TS 52.021 ? | IE Name | Handling | 9.4.5 | ARFCN List | ignored |=== @@ -191,14 +192,14 @@ [[set_chan_attr]] ==== Set Channel Attributes -This message conforms to 3GPP TS 12.21, with the following limitation: the -following 3GPP TS 12.21 IEs provoke a NACK response when sent to OsmoBTS, as +This message conforms to 3GPP TS 52.021, with the following limitation: the +following 3GPP TS 52.021 IEs provoke a NACK response when sent to OsmoBTS, as frequency hopping is not supported: ._Set Channel Attributes_ IE limitations [options="header",cols="10%,30%,60%"] |=== -| TS 12.21 ? | IE Name | Handling +| TS 52.021 ? | IE Name | Handling | 9.4.21 | HSN | not supported (provokes NACK cause 0x10) | 9.4.27 | MAIO | not supported (provokes NACK cause 0x10) | 9.4.52 | Starting Time | not supported (provokes NACK cause 0x10) @@ -207,32 +208,32 @@ [[state_changed_rep]] ==== State Changed Event Report -This message is compliant with 3GPP TS 12.21. Exactly these IEs are sent by +This message is compliant with 3GPP TS 52.021. Exactly these IEs are sent by OsmoBTS: [options="header"] [cols="30%,25%,15%,15%,15%"] |=== | INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH -| Message Type (0xf5) | 3GPP TS 12.21 9.1 | M | V | 1 -| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 -| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 -| Operational State | 3GPP TS 12.21 9.4.38 | O | TV | 2 -| Availability Status | 3GPP TS 12.21 9.4.7 | O | TL16V (with length of 1) | 3 +| Message Type (0xf5) | 3GPP TS 52.021 9.1 | M | V | 1 +| Object Class | 3GPP TS 52.021 9.2 | M | V | 1 +| Object Instance | 3GPP TS 52.021 9.3 | M | V | 3 +| Operational State | 3GPP TS 52.021 9.4.38 | O | TV | 2 +| Availability Status | 3GPP TS 52.021 9.4.7 | O | TL16V (with length of 1) | 3 |=== [[chg_adm_state]] ==== Change Administrative State -This message is compliant with 3GPP TS 12.21 ? 8.8.5. It applies to all of the -Object Classes defined in 3GPP TS 12.21 ? 9.2 as well as +This message is compliant with 3GPP TS 52.021 ? 8.8.5. It applies to all of the +Object Classes defined in 3GPP TS 52.021 ? 9.2 as well as <>. [[opstart]] ==== Opstart -This message is compliant with 3GPP TS 12.21 ? 8.9.2. It applies to all of the -Object Classes defined in 3GPP TS 12.21 ? 9.2 as well as +This message is compliant with 3GPP TS 52.021 ? 8.9.2. It applies to all of the +Object Classes defined in 3GPP TS 52.021 ? 9.2 as well as <>. @@ -252,9 +253,9 @@ [cols="30%,25%,15%,15%,15%"] |=== | INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH -| Message Type (0xf5) | 3GPP TS 12.21 9.1 | M | V | 1 -| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 -| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| Message Type (0xf5) | 3GPP TS 52.021 9.1 | M | V | 1 +| Object Class | 3GPP TS 52.021 9.2 | M | V | 1 +| Object Instance | 3GPP TS 52.021 9.3 | M | V | 3 5+<| _Object Class specific IEs follow, see <>..._ |=== @@ -262,7 +263,7 @@ [[addnl_obj_classes]] === Additional Object Classes -In addition to 3GPP TS 12.21 Chapter 9.2, the following managed objects +In addition to 3GPP TS 52.021 Chapter 9.2, the following managed objects are supported: .Additional Managed Object Classes @@ -284,9 +285,9 @@ [cols="30%,25%,15%,15%,15%"] |=== | INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH -| Message Type | 3GPP TS 12.21 9.1 | M | V | 1 -| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 -| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| Message Type | 3GPP TS 52.021 9.1 | M | V | 1 +| Object Class | 3GPP TS 52.021 9.2 | M | V | 1 +| Object Instance | 3GPP TS 52.021 9.3 | M | V | 3 | GPRS NSEI | <> | O | TL16V | >= 5 | GPRS NS Configuration | <> | O | TL16V | >= 10 | GPRS BSSGP Configuration | <> | O | TL16V | >= 14 @@ -301,9 +302,9 @@ [cols="30%,25%,15%,15%,15%"] |=== | INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH -| Message Type | 3GPP TS 12.21 9.1 | M | V | 1 -| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 -| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| Message Type | 3GPP TS 52.021 9.1 | M | V | 1 +| Object Class | 3GPP TS 52.021 9.2 | M | V | 1 +| Object Instance | 3GPP TS 52.021 9.3 | M | V | 3 | GPRS Routing Area Code | <> | O | TL16V | >= 4 | GPRS Paging Configuration | <> | O | TL16V | >= 5 | GPRS RLC Configuration | <> | O | TL16V | >= 12 @@ -321,9 +322,9 @@ [cols="30%,25%,15%,15%,15%"] |=== | INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH -| Message Type | 3GPP TS 12.21 9.1 | M | V | 1 -| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 -| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| Message Type | 3GPP TS 52.021 9.1 | M | V | 1 +| Object Class | 3GPP TS 52.021 9.2 | M | V | 1 +| Object Instance | 3GPP TS 52.021 9.3 | M | V | 3 | GPRS NSVCI | <> | O | TL16V | >= 5 | GPRS NS Link Configuration | <> | O | TL16V | >= 11 |=== @@ -332,9 +333,9 @@ === Information Elements Overview All of the IEs handled by OsmoBTS are listed below, with limitations and -additions to TS 12.21 specified in more detail. +additions to TS 52.021 specified in more detail. -==== IEs Conforming to TS 12.21 +==== IEs Conforming to TS 52.021 The following Information Elements are accepted by OsmoBTS. @@ -346,10 +347,10 @@ (<-) are in fact parsed and their values are stored by OsmoBTS, but these stored items are currently not used in the OsmoBTS code base. -.IEs conforming to TS 12.21 +.IEs conforming to TS 52.021 [options="header",cols="5%,10%,40%,5%,40%"] |=== -| tag (hex) | TS 12.21 ? | IE name | <-/-> | Received/Sent by OsmoBTS +| tag (hex) | TS 52.021 ? | IE name | <-/-> | Received/Sent by OsmoBTS | 0x00 | 9.4.1 | Abis Channel | | _ignored_ | 0x01 | 9.4.2 | Additional Info | | _ignored_ | 0x02 | 9.4.3 | Additional Text | | _ignored_ @@ -413,12 +414,12 @@ | 0x47 | 9.4.32 | Measurement Result | | _ignored_ |=== -==== IEs Not Conforming to TS 12.21 +==== IEs Not Conforming to TS 52.021 -.IEs not conforming to TS 12.21 +.IEs not conforming to TS 52.021 [options="header",cols="5%,10%,30%,55%"] |=== -| tag (hex) | TS 12.21 ? | IE name | Description +| tag (hex) | TS 52.021 ? | IE name | Description | 0x15 | 9.4.21 | HSN | presence causes NACK response | 0x17 | 9.4.23 | HW Description | _ignored_ by OsmoBTS, but coding may differ, see <> | 0x1b | 9.4.27 | MAIO | presence causes NACK response @@ -431,14 +432,14 @@ ==== Additional Attributes and Parameters The following Information Elements are defined in addition to those -specified in 3GPP TS 12.21 Chapter 9.4. +specified in 3GPP TS 52.021 Chapter 9.4. All of these additional IEs are _received_ by OsmoBTS. These attributes are not used by OsmoBTS, but simply passed to OsmoPCU connected to the PCU socket. -.Additional IEs handled by OsmoBTS but not defined in TS 12.21 +.Additional IEs handled by OsmoBTS but not defined in TS 52.021 [options="header",cols="5%,50%,45%"] |=== | tag (hex) | IE name | Description @@ -465,7 +466,7 @@ [[ie_hw_desc]] ==== HW Description -TS 12.21 suggests a series of 5 length-value pairs for the _HW Description_ IE. +TS 52.021 suggests a series of 5 length-value pairs for the _HW Description_ IE. Instead, OsmoBTS interprets it as a single TL16V. The value of this IE is ignored by OsmoBTS, yet the coding may affect message parsing. @@ -487,7 +488,7 @@ [[ie_chan_comb]] ==== Additional Channel Combinations -In addition to 3GPP TS 12.21 Chapter 9.4.13, the following channel +In addition to 3GPP TS 52.021 Chapter 9.4.13, the following channel combinations are supported: .Additional Channel Combinations @@ -513,7 +514,7 @@ [[ie_conn_fail_crit]] ==== Connection Failure Criterion -3GPP TS 12.21 Chapter 9.4.14 specifies two different options for the +3GPP TS 52.021 Chapter 9.4.14 specifies two different options for the _Connection Failure Criterion_. OsmoBTS only implements the option coded as 0x01, i.e. based upon uplink SACCH error rate (RADIO_LINK_TIMEOUT). @@ -523,7 +524,7 @@ Due to limitations in the currently supported PHY implementations, OsmoBTS supports only one global TSC for all channels on one TRX, rather -than a separate TSC for each timeslot, as expected by 3GPP TS 12.21. +than a separate TSC for each timeslot, as expected by 3GPP TS 52.021. [[NM_ATT_IPACC_DST_IP]] @@ -786,7 +787,7 @@ === A-bis OML Initialization / BTS bring-up At the time an Abis/IP BTS connects to via OML to the BSC, it is -initialized according to the procedures described in 3GPP TS 12.21 as +initialized according to the procedures described in 3GPP TS 52.021 as amended by this document. Each Managed Object (MO) is separately initialized. The initialization -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I662a3419a6ec741fe162ccc7c7221df20b2780b1 Gerrit-Change-Number: 23846 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Apr 21 16:35:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:35:05 +0000 Subject: Change in osmo-bts[master]: Abis manual: add VAMOS to BTS features In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23848 ) Change subject: Abis manual: add VAMOS to BTS features ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f Gerrit-Change-Number: 23848 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 21 Apr 2021 16:35: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 Apr 21 16:36:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:36:51 +0000 Subject: Change in osmo-bts[master]: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23849 ) Change subject: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23849/2/doc/manuals/abis/rsl.adoc File doc/manuals/abis/rsl.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23849/2/doc/manuals/abis/rsl.adoc at 1013 PS2, Line 1013: | octet 3 | TSC set > And using two separate octets for such small range values also looks redundant to me, I would define [?] do we really need to save one byte on the Abis RSL signalling plane? We are talking about Ethernet here, in 2021. Not 64k timeslots in 1990. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 Gerrit-Change-Number: 23849 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 21 Apr 2021 16:36:51 +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 Wed Apr 21 16:38:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:38:27 +0000 Subject: Change in pysim[master]: pySim-shell: separate export summary with a headline In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23803 ) Change subject: pySim-shell: separate export summary with a headline ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I90771e525b2b114bdb41a8e90d298ca991c09c3d Gerrit-Change-Number: 23803 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 16:38:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:39:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:39:04 +0000 Subject: Change in pysim[master]: pySim-shell: separate export summary with a headline In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23803 ) Change subject: pySim-shell: separate export summary with a headline ...................................................................... pySim-shell: separate export summary with a headline the export summary is printed after the log entry for the last file without separation. This is confusing because it looks like if the summary would refer to the last file only. Lets add a headline to make clear that the last few lines are the "Export summary" Change-Id: I90771e525b2b114bdb41a8e90d298ca991c09c3d Related: OS#4963 --- M pySim-shell.py M pySim/utils.py 2 files changed, 18 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index a8db263..d622128 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -39,7 +39,7 @@ from pySim.transport import init_reader, ApduTracer from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, h2s, JsonEncoder -from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex +from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex, boxed_heading_str from pySim.card_handler import card_handler from pySim.filesystem import CardMF, RuntimeState, CardDF, CardADF @@ -237,10 +237,8 @@ df_path_list = df.fully_qualified_path(True) df_path_list_fid = df.fully_qualified_path(False) - self._cmd.poutput("#" * 80) - file_str = '/'.join(df_path_list) + "/" + str(filename) + " " * 80 - self._cmd.poutput("# " + file_str[0:77] + "#") - self._cmd.poutput("#" * 80) + file_str = '/'.join(df_path_list) + "/" + str(filename) + self._cmd.poutput(boxed_heading_str(file_str)) self._cmd.poutput("# directory: %s (%s)" % ('/'.join(df_path_list), '/'.join(df_path_list_fid))) try: @@ -288,6 +286,9 @@ self.export(opts.filename, context) else: self.walk(0, self.export, context) + + self._cmd.poutput(boxed_heading_str("Export summary")) + self._cmd.poutput("# total files visited: %u" % context['COUNT']) self._cmd.poutput("# bad files: %u" % context['ERR']) for b in context['BAD']: diff --git a/pySim/utils.py b/pySim/utils.py index a0da03a..2da93a5 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -841,3 +841,15 @@ if isinstance(o, BytesIO) or isinstance(o, bytes) or isinstance(o, bytearray): return b2h(o) return json.JSONEncoder.default(self, o) + +def boxed_heading_str(heading, width=80): + """Generate a string that contains a boxed heading.""" + # Auto-enlarge box if heading exceeds length + if len(heading) > width - 4: + width = len(heading) + 4 + + res = "#" * width + fstr = "\n# %-" + str(width - 4) + "s #\n" + res += fstr % (heading) + res += "#" * width + return res -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I90771e525b2b114bdb41a8e90d298ca991c09c3d Gerrit-Change-Number: 23803 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:39:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:39:05 +0000 Subject: Change in pysim[master]: filesystem: fix wrong comment In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23817 ) Change subject: filesystem: fix wrong comment ...................................................................... filesystem: fix wrong comment The property rec_len is not a tuple, it is a set. Related: OS#4963 Change-Id: I366772c62d0bb5a6400ce5b431eb94ac9248dccc --- M pySim/filesystem.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 36588e2..82b4409 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -688,7 +688,7 @@ name : Brief name of the file, lik EF_ICCID desc : Description of the file parent : Parent CardFile object within filesystem hierarchy - rec_len : tuple of (minimum_length, recommended_length) + rec_len : set of {minimum_length, recommended_length} """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent) self.rec_len = rec_len -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I366772c62d0bb5a6400ce5b431eb94ac9248dccc Gerrit-Change-Number: 23817 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:39:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:39:06 +0000 Subject: Change in pysim[master]: filesystem: fix wrong helpstring for update_record_decoded In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23818 ) Change subject: filesystem: fix wrong helpstring for update_record_decoded ...................................................................... filesystem: fix wrong helpstring for update_record_decoded the helpstring of update_record_decoded mentions hex bytes for the data parameter, but it should be mentioned as abstract json data like in update_binary_decoded Change-Id: Ibae2ab49054ac5dd6fcccddd28c98d886403dac9 Related: OS#4963 --- M pySim/filesystem.py 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/pySim/filesystem.py b/pySim/filesystem.py index 82b4409..2023495 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -638,7 +638,7 @@ upd_rec_dec_parser = argparse.ArgumentParser() upd_rec_dec_parser.add_argument('record_nr', type=int, help='Number of record to be read') - upd_rec_dec_parser.add_argument('data', help='Data bytes (hex format) to write') + upd_rec_dec_parser.add_argument('data', help='Abstract data (JSON format) to write') upd_rec_dec_parser.add_argument('--json-path', type=str, help='JSON path to modify specific element of record only') @cmd2.with_argparser(upd_rec_dec_parser) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibae2ab49054ac5dd6fcccddd28c98d886403dac9 Gerrit-Change-Number: 23818 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 16:40:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 21 Apr 2021 16:40:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: remove deprecated 'logging level all everything' from configs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23834 ) Change subject: remove deprecated 'logging level all everything' from configs ...................................................................... remove deprecated 'logging level all everything' from configs it has been deprecated in libosmocore.git 2.5 years ago: commit 7e0686c6b4b456ec4e6e15689694b1bcf96c301f Author: Neels Hofmeyr Date: Mon Sep 10 20:58:52 2018 +0200 Change-Id: Ieb9e958278e7bb9d5e798f83b70dcb873a25d06d --- M bsc/osmo-bsc.cfg M bsc/osmo-stp.cfg M msc/osmo-msc.cfg M msc/osmo-stp.cfg M sgsn/osmo-sgsn.cfg M sgsn/osmo-sgsn.sns.cfg M sgsn/osmo-stp.cfg M smlc/osmo-stp.cfg 8 files changed, 0 insertions(+), 8 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/osmo-bsc.cfg b/bsc/osmo-bsc.cfg index 6401474..b64a63d 100644 --- a/bsc/osmo-bsc.cfg +++ b/bsc/osmo-bsc.cfg @@ -9,7 +9,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level rll notice logging level mm notice logging level rr notice diff --git a/bsc/osmo-stp.cfg b/bsc/osmo-stp.cfg index 8b8ccdb..b29dc91 100644 --- a/bsc/osmo-stp.cfg +++ b/bsc/osmo-stp.cfg @@ -8,7 +8,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp notice diff --git a/msc/osmo-msc.cfg b/msc/osmo-msc.cfg index ddac4cd..6db0cd3 100644 --- a/msc/osmo-msc.cfg +++ b/msc/osmo-msc.cfg @@ -7,7 +7,6 @@ logging color 0 logging print category 1 logging timestamp 1 - logging level all everything logging level rll notice logging level cc debug logging level mm debug diff --git a/msc/osmo-stp.cfg b/msc/osmo-stp.cfg index 17e611a..fd18907 100644 --- a/msc/osmo-stp.cfg +++ b/msc/osmo-stp.cfg @@ -7,7 +7,6 @@ logging color 0 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp notice diff --git a/sgsn/osmo-sgsn.cfg b/sgsn/osmo-sgsn.cfg index dfbff6c..082a353 100644 --- a/sgsn/osmo-sgsn.cfg +++ b/sgsn/osmo-sgsn.cfg @@ -14,7 +14,6 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file 1 - logging level all everything logging level mm debug logging level pag notice logging level meas notice diff --git a/sgsn/osmo-sgsn.sns.cfg b/sgsn/osmo-sgsn.sns.cfg index a22e737..988790a 100644 --- a/sgsn/osmo-sgsn.sns.cfg +++ b/sgsn/osmo-sgsn.sns.cfg @@ -14,7 +14,6 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file 1 - logging level all everything logging level mm debug logging level pag notice logging level meas notice diff --git a/sgsn/osmo-stp.cfg b/sgsn/osmo-stp.cfg index 0f480d8..bf1148f 100644 --- a/sgsn/osmo-stp.cfg +++ b/sgsn/osmo-stp.cfg @@ -13,7 +13,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp notice diff --git a/smlc/osmo-stp.cfg b/smlc/osmo-stp.cfg index dad1f2d..062bea5 100644 --- a/smlc/osmo-stp.cfg +++ b/smlc/osmo-stp.cfg @@ -8,7 +8,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp notice -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieb9e958278e7bb9d5e798f83b70dcb873a25d06d Gerrit-Change-Number: 23834 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 Wed Apr 21 17:02:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 17:02:54 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/23795 to look at the new patch set (#2). Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef Introduce TLV attribute definition for "Old BSS to New BSS Information" container. Related: SYS#5337 Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 --- M TODO-RELEASE M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 4 files changed, 29 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/23795/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith 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 Apr 21 17:06:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 17:06:28 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request 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/+/23753 to look at the new patch set (#7). Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request Whenever SRVCC EUTRAN->GERAN is performed by the CN, it will set the Last Used E-UTRAN PLMN Id in order for the BSS to inform the MS about EUTRAN neighbors once the call is over. The last part (sending EUTRAN neighs) is already implemented, since same thing is done as per CSFB. However, we lacked the first part, where the EUTRAN PLMN Id is recorded for later use. Actually, in both cases, we end up building the list of neighbors without taking into accound the PLMN value (hence no filtering of configured neighs), but it only sends such a list if any PLMN was stored there, which means this patch is still necessary for a quick fallback to 4G after the call is over. Related: SYS#5337 Depends: libosmocore.git Change-Id I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e --- M TODO-RELEASE M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/handover_fsm.c 3 files changed, 39 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/53/23753/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 17:06:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 17:06:55 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Forward Last EUTRAN PLMN Id in Handover Required 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/+/23761 to look at the new patch set (#8). Change subject: SRVCC: Forward Last EUTRAN PLMN Id in Handover Required ...................................................................... SRVCC: Forward Last EUTRAN PLMN Id in Handover Required """ The old BSS shall inform the new BSS of the MS's last used E-UTRAN PLMN in the "Last used E-UTRAN PLMN ID" information element included in the "Old BSS to New BSS information" Information Element if this information is present. """ Depends: libosmocore.git Change-Id I6280ce1abc283f1491bc6f391b2dd952df33a16b Related: SYS#5337 Change-Id: I6cf54f9a16d598f98dc56b25f0fef56225a25a28 --- M TODO-RELEASE M src/osmo-bsc/osmo_bsc_bssap.c 2 files changed, 12 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/23761/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6cf54f9a16d598f98dc56b25f0fef56225a25a28 Gerrit-Change-Number: 23761 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 17:45:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 17:45:38 +0000 Subject: Change in osmo-ggsn[master]: gtp: Update teic_confirmed only on resp success References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23850 ) Change subject: gtp: Update teic_confirmed only on resp success ...................................................................... gtp: Update teic_confirmed only on resp success Change-Id: I54c54cbb51bfa5d1520855f448fa27511037b396 --- M gtp/gtp.c 1 file changed, 4 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/50/23850/1 diff --git a/gtp/gtp.c b/gtp/gtp.c index 25eafdf..701aa36 100644 --- a/gtp/gtp.c +++ b/gtp/gtp.c @@ -1792,9 +1792,6 @@ return EOF; } - /* Register that we have received a valid teic from GGSN */ - pdp->teic_confirmed = 1; - /* Decode information elements */ if (gtpie_decaps(ie, version, pack + hlen, len - hlen)) { gsn->invalid++; @@ -1894,6 +1891,8 @@ gsn->cb_conf(type, EOF, pdp, cbp); return EOF; } + /* Register that we have received a valid teic from GGSN */ + pdp->teic_confirmed = 1; } if (gtpie_gettv4(ie, GTPIE_CHARGING_ID, 0, &pdp->cid)) { @@ -2345,9 +2344,6 @@ goto err_out; } - /* Register that we have received a valid teic from GGSN */ - pdp->teic_confirmed = 1; - /* Decode information elements */ if (gtpie_decaps(ie, version, pack + hlen, len - hlen)) { gsn->invalid++; @@ -2393,6 +2389,8 @@ if (gtpie_gettv4(ie, GTPIE_TEI_C, 0, &pdp->teic_gn)) { goto err_missing; } + /* Register that we have received a valid teic from GGSN */ + pdp->teic_confirmed = 1; } if (gtpie_gettv4(ie, GTPIE_CHARGING_ID, 0, &pdp->cid)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I54c54cbb51bfa5d1520855f448fa27511037b396 Gerrit-Change-Number: 23850 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 Apr 21 18:13:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 18:13:04 +0000 Subject: Change in osmo-sgsn[master]: gtp: Delete ctx upon receive UpdateCtxResp with cause Non-existent References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/23851 ) Change subject: gtp: Delete ctx upon receive UpdateCtxResp with cause Non-existent ...................................................................... gtp: Delete ctx upon receive UpdateCtxResp with cause Non-existent Change-Id: Ic5f682a79663acc65fd364dd7a3a7cc554534414 --- M src/sgsn/sgsn_libgtp.c 1 file changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/51/23851/1 diff --git a/src/sgsn/sgsn_libgtp.c b/src/sgsn/sgsn_libgtp.c index 367570d..8be7927 100644 --- a/src/sgsn/sgsn_libgtp.c +++ b/src/sgsn/sgsn_libgtp.c @@ -479,6 +479,33 @@ gtp_echo_req(ggc->gsn, ggc->gtp_version, ggc, &ggc->remote_addr); } +/* Confirmation of a PDP Context Update */ +static int update_pdp_conf(struct pdp_t *pdp, void *cbp, int cause) +{ + struct sgsn_pdp_ctx *pctx = cbp; + int rc; + + LOGPDPCTXP(LOGL_INFO, pctx, "Received Update PDP CTX CONF, cause=%d(%s)\n", + cause, get_value_string(gtp_cause_strs, cause)); + + /* 3GPP TS 29.060 "7.3.4": + * "If the SGSN receives an Update PDP Context Response with a Cause + * value other than "Request accepted", it shall abort the update of the + * PDP context."" + * "If the SGSN receives an Update PDP Context Response with + * a Cause value "Non-existent", it shall delete the PDP Context." + */ + if (cause != GTPCAUSE_NON_EXIST) + return 0; /* Nothing to do */ + + LOGPDPCTXP(LOGL_INFO, pctx, "PDP CTX we tried to update doesn't exist in " + "the GGSN anymore, deleting it locally.\n"); + + rc = gtp_freepdp(pctx->ggsn->gsn, pctx->lib); + /* related mmctx is torn down in cb_delete_context called by gtp_freepdp() */ + return rc; +} + /* Confirmation of a PDP Context Delete */ static int delete_pdp_conf(struct pdp_t *pdp, void *cbp, int cause) { @@ -577,6 +604,8 @@ return echo_conf(cbp, cause == EOF); case GTP_CREATE_PDP_REQ: return create_pdp_conf(pdp, cbp, cause); + case GTP_UPDATE_PDP_REQ: + return update_pdp_conf(pdp, cbp, cause); case GTP_DELETE_PDP_REQ: return delete_pdp_conf(pdp, cbp, cause); default: -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/23851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ic5f682a79663acc65fd364dd7a3a7cc554534414 Gerrit-Change-Number: 23851 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 Apr 21 18:21:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 21 Apr 2021 18:21:55 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23795 ) Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... Patch Set 2: -Code-Review I finally kept the use of tlv_definition because in this specific case I saw no real benefit in using more complex osmo_tlv_prot_def one. In this case we define one message (actually a container IE "Old BSS to New BSS Info") with all-optional IEs, so there's no beefit in going for osmo_tlv_prot_def. I dropped the function getter indirection as requested. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 18:21:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 21 21:30:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 21 Apr 2021 21:30:09 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23795 ) Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 21 Apr 2021 21:30: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 Apr 22 07:12:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 07:12:38 +0000 Subject: Change in pysim[master]: ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs 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/+/23837 to look at the new patch set (#2). Change subject: ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs ...................................................................... ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs Change-Id: I2d4662dc021e286a1c3293ab36aaa845b1251388 --- M pySim/ts_31_102.py 1 file changed, 58 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/37/23837/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I2d4662dc021e286a1c3293ab36aaa845b1251388 Gerrit-Change-Number: 23837 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 Apr 22 07:12:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 07:12:39 +0000 Subject: Change in pysim[master]: filesystem.py: Introduce place-holder for BER-TLV files References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23852 ) Change subject: filesystem.py: Introduce place-holder for BER-TLV files ...................................................................... filesystem.py: Introduce place-holder for BER-TLV files I always assumed BER-TLV files are transparent EF with BER-TLV contents. However, this is wrong. ETS TS 102 221 Section 8.2.2.4 specifies them. TS 102 221 Section 11.3 describes the specific RETRIEVE DATA, SET DATA commands, which are not yet implemented in pySim. Change-Id: Ie4701d9f72b05c8a5810e287e55a20f6ea86a574 --- M pySim/filesystem.py M pySim/ts_31_103.py 2 files changed, 9 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/52/23852/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 1068930..dec521e 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -917,7 +917,13 @@ return b''.join(chunks) +class BerTlvEF(TransparentEF): + """BER-TLV EF (Entry File) in the smart card filesystem. + A BER-TLV EF is a binary file with a BER (Basic Encoding Rules) TLV structure + NOTE: We currently don't really support those, this class is simply a wrapper + around TransparentEF as a place-holder, so we can already define EFs of BER-TLV + type without fully supporting them.""" class RuntimeState(object): diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index baa4d25..d5641b3 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -146,12 +146,12 @@ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) # TS 31.103 Section 4.2.18 -class EF_IMSConfigData(TransparentEF): +class EF_IMSConfigData(BerTlvEF): def __init__(self, fid='6ff8', sfid=None, name='EF.IMSConfigData', desc='IMS Configuration Data'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) # TS 31.103 Section 4.2.19 -class EF_XCAPConfigData(TransparentEF): +class EF_XCAPConfigData(BerTlvEF): def __init__(self, fid='6ffc', sfid=None, name='EF.XCAPConfigData', desc='XCAP Configuration Data'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) @@ -161,7 +161,7 @@ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) # TS 31.103 Section 4.2.21 -class EF_MuDMiDConfigData(TransparentEF): +class EF_MuDMiDConfigData(BerTlvEF): def __init__(self, fid='6ffe', sfid=None, name='EF.MuDMiDConfigData', desc='MuD and MiD Configuration Data'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie4701d9f72b05c8a5810e287e55a20f6ea86a574 Gerrit-Change-Number: 23852 Gerrit-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 Apr 22 09:21:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:21:23 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23853 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: I34b18457268ae6f8ae3a053c5424210074a4d52e --- M contrib/jenkins.sh 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/53/23853/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 1d6ff37..d6dc82f 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -71,13 +71,13 @@ $TOPDIR/contrib/prepare_upload.sh cat > "/build/known_hosts" < Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 09:22:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:22:19 +0000 Subject: Change in osmo-asf4-dfu[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/23854 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: I1ba0a5e6185af1fba5e7cccb7966fda2fa50bf24 --- M contrib/jenkins.sh 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/54/23854/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 2471deb..e9296c6 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -34,17 +34,17 @@ echo "=============== UPLOAD BUILD ==============" cat > "/build/known_hosts" < Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 09:22:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:22:53 +0000 Subject: Change in osmo-ccid-firmware[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23855 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: I63bac9d6767b21cb738be789f7efce2108804bdf --- M contrib/jenkins.sh 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/55/23855/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 8810730..fec91e5 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -66,19 +66,19 @@ echo "=============== UPLOAD BUILD ==============" cat > "/build/known_hosts" < Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 09:24:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:24:04 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/23856 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: Idd49f27c9b08c6cfd077f85276a3dedc4cf117ef --- M contrib/jenkins.sh 1 file changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/56/23856/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 171d368..9352a47 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -45,15 +45,15 @@ 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 Apr 22 09:25:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:25:09 +0000 Subject: Change in osmo-gsm-manuals[master]: build: Switch from rita -> ftp.osmocom.org References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23857 ) Change subject: build: Switch from rita -> ftp.osmocom.org ...................................................................... build: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: Ie139a8cbf2aaa746c0edf6c90a567eb43bc51f45 --- M build/Makefile.common.inc M build/known_hosts 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/57/23857/1 diff --git a/build/Makefile.common.inc b/build/Makefile.common.inc index ca06962..0fda918 100644 --- a/build/Makefile.common.inc +++ b/build/Makefile.common.inc @@ -28,7 +28,7 @@ distclean: clean publish: $(UPLOAD_FILES) - rsync -avz -e "$(SSH_COMMAND)" $(UPLOAD_FILES) docs at rita.osmocom.org:web-files/latest/ + rsync -avz -e "$(SSH_COMMAND)" $(UPLOAD_FILES) docs at ftp.osmocom.org:web-files/latest/ # Install and uninstall targets # Notes about OSMO_GSM_MANUALS_NO_INSTALL: diff --git a/build/known_hosts b/build/known_hosts index c78b03d..de29e93 100644 --- a/build/known_hosts +++ b/build/known_hosts @@ -1,3 +1,3 @@ -[rita.osmocom.org]:48 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDgQ9HntlpWNmh953a2Gc8NysKE4orOatVT1wQkyzhARnfYUerRuwyNr1GqMyBKdSI9amYVBXJIOUFcpV81niA7zQRUs66bpIMkE9/rHxBd81SkorEPOIS84W4vm3SZtuNqa+fADcqe88Hcb0ZdTzjKILuwi19gzrQyME2knHY71EOETe9Yow5RD2hTIpB5ecNxI0LUKDq+Ii8HfBvndPBIr0BWYDugckQ3Bocf+yn/tn2/GZieFEyFpBGF/MnLbAAfUKIdeyFRX7ufaiWWz5yKAfEhtziqdAGZaXNaLG6gkpy3EixOAy6ZXuTAk3b3Y0FUmDjhOHllbPmTOcKMry9 -[rita.osmocom.org]:48 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPdWn1kEousXuKsZ+qJEZTt/NSeASxCrUfNDW3LWtH+d8Ust7ZuKp/vuyG+5pe5pwpPOgFu7TjN+0lVjYJVXH54= -[rita.osmocom.org]:48 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8iivY70EiR5NiGChV39gRLjNpC8lvu1ZdHtdMw2zuX +[ftp.osmocom.org]:48 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDgQ9HntlpWNmh953a2Gc8NysKE4orOatVT1wQkyzhARnfYUerRuwyNr1GqMyBKdSI9amYVBXJIOUFcpV81niA7zQRUs66bpIMkE9/rHxBd81SkorEPOIS84W4vm3SZtuNqa+fADcqe88Hcb0ZdTzjKILuwi19gzrQyME2knHY71EOETe9Yow5RD2hTIpB5ecNxI0LUKDq+Ii8HfBvndPBIr0BWYDugckQ3Bocf+yn/tn2/GZieFEyFpBGF/MnLbAAfUKIdeyFRX7ufaiWWz5yKAfEhtziqdAGZaXNaLG6gkpy3EixOAy6ZXuTAk3b3Y0FUmDjhOHllbPmTOcKMry9 +[ftp.osmocom.org]:48 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPdWn1kEousXuKsZ+qJEZTt/NSeASxCrUfNDW3LWtH+d8Ust7ZuKp/vuyG+5pe5pwpPOgFu7TjN+0lVjYJVXH54= +[ftp.osmocom.org]:48 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8iivY70EiR5NiGChV39gRLjNpC8lvu1ZdHtdMw2zuX -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23857 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: Ie139a8cbf2aaa746c0edf6c90a567eb43bc51f45 Gerrit-Change-Number: 23857 Gerrit-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 Apr 22 09:26:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:26:23 +0000 Subject: Change in osmo-ci[master]: osmocom-release-tarballs: Switch from rita -> ftp.osmocom.org References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23858 ) Change subject: osmocom-release-tarballs: Switch from rita -> ftp.osmocom.org ...................................................................... osmocom-release-tarballs: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: If0d57ef9edc4d6b3fdf435e44573a15d64245b6a --- M jobs/osmocom-release-tarballs.yml 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/58/23858/1 diff --git a/jobs/osmocom-release-tarballs.yml b/jobs/osmocom-release-tarballs.yml index 4ff1c1c..9ecffca 100644 --- a/jobs/osmocom-release-tarballs.yml +++ b/jobs/osmocom-release-tarballs.yml @@ -40,7 +40,7 @@ SSH_COMMAND="ssh -p 48" cd _release_tarballs - rsync -avz --delete -e "$SSH_COMMAND" . releases at rita.osmocom.org:web-files/ + rsync -avz --delete -e "$SSH_COMMAND" . releases at ftp.osmocom.org:web-files/ scm: - git: branches: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If0d57ef9edc4d6b3fdf435e44573a15d64245b6a Gerrit-Change-Number: 23858 Gerrit-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 Apr 22 09:26:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:26:57 +0000 Subject: Change in pysim[master]: Move reader related argument parser to transport module In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23721 ) Change subject: Move reader related argument parser to transport module ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If77f53850e1ca65f42cf1dca3e0f460dac1b0d1a Gerrit-Change-Number: 23721 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 09:26: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 Apr 22 09:27:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:27:01 +0000 Subject: Change in pysim[master]: pySim-read: Migrate over to use shared argparse from transport In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23722 ) Change subject: pySim-read: Migrate over to use shared argparse from transport ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I12ca1a484a5d6e84820d9761c9701f8a94381f66 Gerrit-Change-Number: 23722 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 09:27:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 09:27:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:27:11 +0000 Subject: Change in pysim[master]: filsystem.py: Add more information to exceptions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23841 ) Change subject: filsystem.py: Add more information to exceptions ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia9449ddfaaf5f49e0a65aeeea9435141fd55fe65 Gerrit-Change-Number: 23841 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 09: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 Thu Apr 22 09:27:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:27:26 +0000 Subject: Change in pysim[master]: Move reader related argument parser to transport module In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23721 ) Change subject: Move reader related argument parser to transport module ...................................................................... Move reader related argument parser to transport module Ideally that shared definition would be used by all programs, rather than copy+pasting it. Unfortunately pySim-{read,prog} are still using optparse and first need to be converted to argparse. Change-Id: If77f53850e1ca65f42cf1dca3e0f460dac1b0d1a --- M pySim-shell.py M pySim/transport/__init__.py 2 files changed, 29 insertions(+), 24 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve diff --git a/pySim-shell.py b/pySim-shell.py index d622128..659c12c 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -36,7 +36,7 @@ from pySim.exceptions import * from pySim.commands import SimCardCommands -from pySim.transport import init_reader, ApduTracer +from pySim.transport import init_reader, ApduTracer, argparse_add_reader_args from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, h2s, JsonEncoder from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex, boxed_heading_str @@ -432,32 +432,12 @@ option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell', formatter_class=argparse.ArgumentDefaultsHelpFormatter) - -serial_group = option_parser.add_argument_group('Serial Reader') -serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', - help='Serial Device for SIM access') -serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, - help='Baud rate used for SIM access') - -pcsc_group = option_parser.add_argument_group('PC/SC Reader') -pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, - help='PC/SC reader number to use for SIM access') - -modem_group = option_parser.add_argument_group('AT Command Modem Reader') -modem_group.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, - help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') -modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, - help='Baud rate used for modem port') - -osmobb_group = option_parser.add_argument_group('OsmocomBB Reader') -osmobb_group.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, - help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)') +argparse_add_reader_args(option_parser) global_group = option_parser.add_argument_group('General Options') global_group.add_argument('--script', metavar='PATH', default=None, - help='script with pySim-shell commands to be executed automatically at start-up') -global_group.add_argument('--csv', metavar='FILE', default=None, - help='Read card data from CSV file') + help='script with pySim-shell commands to be executed automatically at start-up') +global_group.add_argument('--csv', metavar='FILE', default=None, help='Read card data from CSV file') adm_group = global_group.add_mutually_exclusive_group() adm_group.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None, diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 290bc7c..d4f7f3a 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -3,6 +3,7 @@ """ pySim: PCSC reader transport link base """ +import argparse from typing import Optional from pySim.exceptions import * @@ -175,6 +176,30 @@ raise SwMatchError(sw, sw_exp.lower(), self.sw_interpreter) return (rsp, sw) +def argparse_add_reader_args(arg_parser): + """Add all reader related arguments to the given argparse.Argumentparser instance.""" + serial_group = arg_parser.add_argument_group('Serial Reader') + serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', + help='Serial Device for SIM access') + serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, + help='Baud rate used for SIM access') + + pcsc_group = arg_parser.add_argument_group('PC/SC Reader') + pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, + help='PC/SC reader number to use for SIM access') + + modem_group = arg_parser.add_argument_group('AT Command Modem Reader') + modem_group.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, + help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') + modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, + help='Baud rate used for modem port') + + osmobb_group = arg_parser.add_argument_group('OsmocomBB Reader') + osmobb_group.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, + help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)') + + return arg_parser + def init_reader(opts, **kwargs) -> Optional[LinkBase]: """ Init card reader driver -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If77f53850e1ca65f42cf1dca3e0f460dac1b0d1a Gerrit-Change-Number: 23721 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Apr 22 09:27:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:27:27 +0000 Subject: Change in pysim[master]: pySim-read: Migrate over to use shared argparse from transport In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23722 ) Change subject: pySim-read: Migrate over to use shared argparse from transport ...................................................................... pySim-read: Migrate over to use shared argparse from transport Now that we have a shared argparse definition for all reader related options in the transport module, use that. Change-Id: I12ca1a484a5d6e84820d9761c9701f8a94381f66 --- M docs/legacy.rst M pySim-read.py 2 files changed, 12 insertions(+), 53 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve diff --git a/docs/legacy.rst b/docs/legacy.rst index dad83d8..ec3ddfc 100644 --- a/docs/legacy.rst +++ b/docs/legacy.rst @@ -84,18 +84,9 @@ * EF.IST -:: +pySim-read usage +~~~~~~~~~~~~~~~~ - Usage: pySim-read.py [options] - - Options: - -h, --help show this help message and exit - -d DEV, --device=DEV Serial Device for SIM access [default: /dev/ttyUSB0] - -b BAUD, --baud=BAUD Baudrate used for SIM access [default: 9600] - -p PCSC, --pcsc-device=PCSC - Which PC/SC reader number for SIM access - --modem-device=DEV Serial port of modem for Generic SIM Access (3GPP TS - 27.007) - --modem-baud=BAUD Baudrate used for modem's port [default: 115200] - --osmocon=PATH Socket path for Calypso (e.g. Motorola C1XX) based - reader (via OsmocomBB) +.. argparse:: + :module: pySim-read + :func: option_parser diff --git a/pySim-read.py b/pySim-read.py index 8e4a512..ae10c1a 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -23,7 +23,7 @@ # import hashlib -from optparse import OptionParser +import argparse import os import random import re @@ -33,53 +33,21 @@ from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map from pySim.commands import SimCardCommands -from pySim.transport import init_reader +from pySim.transport import init_reader, argparse_add_reader_args from pySim.cards import card_detect, Card, UsimCard, IsimCard from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, dec_addr_tlv from pySim.utils import h2s, format_ePDGSelection -def parse_options(): - - parser = OptionParser(usage="usage: %prog [options]") - - parser.add_option("-d", "--device", dest="device", metavar="DEV", - help="Serial Device for SIM access [default: %default]", - default="/dev/ttyUSB0", - ) - parser.add_option("-b", "--baud", dest="baudrate", type="int", metavar="BAUD", - help="Baudrate used for SIM access [default: %default]", - default=9600, - ) - parser.add_option("-p", "--pcsc-device", dest="pcsc_dev", type='int', metavar="PCSC", - help="Which PC/SC reader number for SIM access", - default=None, - ) - parser.add_option("--modem-device", dest="modem_dev", metavar="DEV", - help="Serial port of modem for Generic SIM Access (3GPP TS 27.007)", - default=None, - ) - parser.add_option("--modem-baud", dest="modem_baud", type="int", metavar="BAUD", - help="Baudrate used for modem's port [default: %default]", - default=115200, - ) - parser.add_option("--osmocon", dest="osmocon_sock", metavar="PATH", - help="Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)", - default=None, - ) - - (options, args) = parser.parse_args() - - if args: - parser.error("Extraneous arguments") - - return options - +option_parser = argparse.ArgumentParser(prog='pySim-read', + description='Legacy tool for reading some parts of a SIM card', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) +argparse_add_reader_args(option_parser) if __name__ == '__main__': # Parse options - opts = parse_options() + opts = option_parser.parse_args() # Init card reader driver sl = init_reader(opts) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I12ca1a484a5d6e84820d9761c9701f8a94381f66 Gerrit-Change-Number: 23722 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Apr 22 09:27:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:27:27 +0000 Subject: Change in pysim[master]: filsystem.py: Add more information to exceptions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23841 ) Change subject: filsystem.py: Add more information to exceptions ...................................................................... filsystem.py: Add more information to exceptions Change-Id: Ia9449ddfaaf5f49e0a65aeeea9435141fd55fe65 --- M pySim/filesystem.py 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 2023495..1068930 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -209,13 +209,13 @@ if child.fid in self.children: if ignore_existing: return - raise ValueError("File with given fid %s already exists" % (child.fid)) + raise ValueError("File with given fid %s already exists in %s" % (child.fid, self)) if self.lookup_file_by_sfid(child.sfid): - raise ValueError("File with given sfid %s already exists" % (child.sfid)) + raise ValueError("File with given sfid %s already exists in %s" % (child.sfid, self)) if self.lookup_file_by_name(child.name): if ignore_existing: return - raise ValueError("File with given name %s already exists" % (child.name)) + raise ValueError("File with given name %s already exists in %s" % (child.name, self)) self.children[child.fid] = child child.parent = self -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia9449ddfaaf5f49e0a65aeeea9435141fd55fe65 Gerrit-Change-Number: 23841 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 Thu Apr 22 09:30:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:30:25 +0000 Subject: Change in osmo-ci[master]: osmocom-release-tarballs: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23858 ) Change subject: osmocom-release-tarballs: Switch from rita -> ftp.osmocom.org ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If0d57ef9edc4d6b3fdf435e44573a15d64245b6a Gerrit-Change-Number: 23858 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 09:30:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 09:30:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:30:27 +0000 Subject: Change in osmo-ci[master]: osmocom-release-tarballs: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23858 ) Change subject: osmocom-release-tarballs: Switch from rita -> ftp.osmocom.org ...................................................................... osmocom-release-tarballs: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: If0d57ef9edc4d6b3fdf435e44573a15d64245b6a --- M jobs/osmocom-release-tarballs.yml 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/jobs/osmocom-release-tarballs.yml b/jobs/osmocom-release-tarballs.yml index 4ff1c1c..9ecffca 100644 --- a/jobs/osmocom-release-tarballs.yml +++ b/jobs/osmocom-release-tarballs.yml @@ -40,7 +40,7 @@ SSH_COMMAND="ssh -p 48" cd _release_tarballs - rsync -avz --delete -e "$SSH_COMMAND" . releases at rita.osmocom.org:web-files/ + rsync -avz --delete -e "$SSH_COMMAND" . releases at ftp.osmocom.org:web-files/ scm: - git: branches: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If0d57ef9edc4d6b3fdf435e44573a15d64245b6a Gerrit-Change-Number: 23858 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 Apr 22 09:31:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 09:31:19 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23853 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I34b18457268ae6f8ae3a053c5424210074a4d52e Gerrit-Change-Number: 23853 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 09:31: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 Apr 22 09:31:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:31:27 +0000 Subject: Change in osmo-gsm-manuals[master]: build: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23857 ) Change subject: build: Switch from rita -> ftp.osmocom.org ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23857 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: Ie139a8cbf2aaa746c0edf6c90a567eb43bc51f45 Gerrit-Change-Number: 23857 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 09:31:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 09:31:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:31:29 +0000 Subject: Change in osmo-gsm-manuals[master]: build: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23857 ) Change subject: build: Switch from rita -> ftp.osmocom.org ...................................................................... build: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: Ie139a8cbf2aaa746c0edf6c90a567eb43bc51f45 --- M build/Makefile.common.inc M build/known_hosts 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/build/Makefile.common.inc b/build/Makefile.common.inc index ca06962..0fda918 100644 --- a/build/Makefile.common.inc +++ b/build/Makefile.common.inc @@ -28,7 +28,7 @@ distclean: clean publish: $(UPLOAD_FILES) - rsync -avz -e "$(SSH_COMMAND)" $(UPLOAD_FILES) docs at rita.osmocom.org:web-files/latest/ + rsync -avz -e "$(SSH_COMMAND)" $(UPLOAD_FILES) docs at ftp.osmocom.org:web-files/latest/ # Install and uninstall targets # Notes about OSMO_GSM_MANUALS_NO_INSTALL: diff --git a/build/known_hosts b/build/known_hosts index c78b03d..de29e93 100644 --- a/build/known_hosts +++ b/build/known_hosts @@ -1,3 +1,3 @@ -[rita.osmocom.org]:48 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDgQ9HntlpWNmh953a2Gc8NysKE4orOatVT1wQkyzhARnfYUerRuwyNr1GqMyBKdSI9amYVBXJIOUFcpV81niA7zQRUs66bpIMkE9/rHxBd81SkorEPOIS84W4vm3SZtuNqa+fADcqe88Hcb0ZdTzjKILuwi19gzrQyME2knHY71EOETe9Yow5RD2hTIpB5ecNxI0LUKDq+Ii8HfBvndPBIr0BWYDugckQ3Bocf+yn/tn2/GZieFEyFpBGF/MnLbAAfUKIdeyFRX7ufaiWWz5yKAfEhtziqdAGZaXNaLG6gkpy3EixOAy6ZXuTAk3b3Y0FUmDjhOHllbPmTOcKMry9 -[rita.osmocom.org]:48 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPdWn1kEousXuKsZ+qJEZTt/NSeASxCrUfNDW3LWtH+d8Ust7ZuKp/vuyG+5pe5pwpPOgFu7TjN+0lVjYJVXH54= -[rita.osmocom.org]:48 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8iivY70EiR5NiGChV39gRLjNpC8lvu1ZdHtdMw2zuX +[ftp.osmocom.org]:48 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDgQ9HntlpWNmh953a2Gc8NysKE4orOatVT1wQkyzhARnfYUerRuwyNr1GqMyBKdSI9amYVBXJIOUFcpV81niA7zQRUs66bpIMkE9/rHxBd81SkorEPOIS84W4vm3SZtuNqa+fADcqe88Hcb0ZdTzjKILuwi19gzrQyME2knHY71EOETe9Yow5RD2hTIpB5ecNxI0LUKDq+Ii8HfBvndPBIr0BWYDugckQ3Bocf+yn/tn2/GZieFEyFpBGF/MnLbAAfUKIdeyFRX7ufaiWWz5yKAfEhtziqdAGZaXNaLG6gkpy3EixOAy6ZXuTAk3b3Y0FUmDjhOHllbPmTOcKMry9 +[ftp.osmocom.org]:48 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPdWn1kEousXuKsZ+qJEZTt/NSeASxCrUfNDW3LWtH+d8Ust7ZuKp/vuyG+5pe5pwpPOgFu7TjN+0lVjYJVXH54= +[ftp.osmocom.org]:48 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8iivY70EiR5NiGChV39gRLjNpC8lvu1ZdHtdMw2zuX -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23857 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: Ie139a8cbf2aaa746c0edf6c90a567eb43bc51f45 Gerrit-Change-Number: 23857 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 Apr 22 09:31:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 09:31:43 +0000 Subject: Change in osmo-asf4-dfu[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/23854 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/23854 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-Change-Id: I1ba0a5e6185af1fba5e7cccb7966fda2fa50bf24 Gerrit-Change-Number: 23854 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 09:31: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 Apr 22 09:31:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 09:31:49 +0000 Subject: Change in osmo-ccid-firmware[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23855 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23855 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: I63bac9d6767b21cb738be789f7efce2108804bdf Gerrit-Change-Number: 23855 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 09:31: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 Apr 22 09:31:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:31:57 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/23856 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/23856 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: Idd49f27c9b08c6cfd077f85276a3dedc4cf117ef Gerrit-Change-Number: 23856 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 09:31: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 Apr 22 09:31:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 09:31:59 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/23856 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/23856 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: Idd49f27c9b08c6cfd077f85276a3dedc4cf117ef Gerrit-Change-Number: 23856 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 09:31:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 09:32:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:32:21 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/23856 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: Idd49f27c9b08c6cfd077f85276a3dedc4cf117ef --- M contrib/jenkins.sh 1 file changed, 7 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 171d368..9352a47 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -45,15 +45,15 @@ echo "=============== UPLOAD FIRMWARE ==============" cat > "/build/known_hosts" < 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 Apr 22 09:32:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:32:32 +0000 Subject: Change in osmo-ccid-firmware[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23855 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23855 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: I63bac9d6767b21cb738be789f7efce2108804bdf Gerrit-Change-Number: 23855 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 09: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 Thu Apr 22 09:32:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:32:39 +0000 Subject: Change in osmo-asf4-dfu[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/23854 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/23854 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-Change-Id: I1ba0a5e6185af1fba5e7cccb7966fda2fa50bf24 Gerrit-Change-Number: 23854 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 09:32:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 09:32:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:32:41 +0000 Subject: Change in osmo-asf4-dfu[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/23854 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: I1ba0a5e6185af1fba5e7cccb7966fda2fa50bf24 --- M contrib/jenkins.sh 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/contrib/jenkins.sh b/contrib/jenkins.sh index 2471deb..e9296c6 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -34,17 +34,17 @@ echo "=============== UPLOAD BUILD ==============" cat > "/build/known_hosts" < 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 Apr 22 09:32:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:32:44 +0000 Subject: Change in osmo-ccid-firmware[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/23855 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: I63bac9d6767b21cb738be789f7efce2108804bdf --- M contrib/jenkins.sh 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/contrib/jenkins.sh b/contrib/jenkins.sh index 8810730..fec91e5 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -66,19 +66,19 @@ echo "=============== UPLOAD BUILD ==============" cat > "/build/known_hosts" < 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 Apr 22 09:33:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:33:05 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23853 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I34b18457268ae6f8ae3a053c5424210074a4d52e Gerrit-Change-Number: 23853 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 09:33:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 09:33:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 09:33:07 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23853 ) Change subject: contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org ...................................................................... contrib/jenkins.sh: Switch from rita -> ftp.osmocom.org We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: I34b18457268ae6f8ae3a053c5424210074a4d52e --- M contrib/jenkins.sh 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/contrib/jenkins.sh b/contrib/jenkins.sh index 1d6ff37..d6dc82f 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -71,13 +71,13 @@ $TOPDIR/contrib/prepare_upload.sh cat > "/build/known_hosts" < 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 Apr 22 09:37:05 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 09:37:05 +0000 Subject: Change in pysim[master]: ts_31_102, ts_31_103: Add EF.FromPreferred In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23840 ) Change subject: ts_31_102, ts_31_103: Add EF.FromPreferred ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I7dc989a4ab198f3eaa45ba7060c8087354a544bb Gerrit-Change-Number: 23840 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Thu, 22 Apr 2021 09: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 Thu Apr 22 09:37:47 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 09:37:47 +0000 Subject: Change in pysim[master]: ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23839 ) Change subject: ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I54046375f180017373ab8e06e60ac5a542da706a Gerrit-Change-Number: 23839 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Thu, 22 Apr 2021 09:37: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 Apr 22 09:44:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 09:44:55 +0000 Subject: Change in pysim[master]: ts_31_103: Use EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from ts_51_011 In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23838 ) Change subject: ts_31_103: Use EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from ts_51_011 ...................................................................... Patch Set 2: Code-Review+1 Looks good from me. However, I get an error: pySIM-shell (MF/ADF.ISIM)> select EF.SMS EXCEPTION of type 'RuntimeError' occurred with message: '6a82: Wrong parameters - File not found' Is this expected? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I688cfddcf5845316f71a9641d4426a20f58c1fba Gerrit-Change-Number: 23838 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Thu, 22 Apr 2021 09:44: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 Apr 22 09:51:58 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 09:51:58 +0000 Subject: Change in pysim[master]: ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23837 ) Change subject: ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs ...................................................................... Patch Set 2: Code-Review+1 Looks good to me. DF.WLAN can be selected without problems. However, at least on my card I am unable to select (almost all) files in that directory. This is probably expected, I just wanted to make you aware of this. # MF/ADF.USIM/DF.WLAN/EF.UPLMNWLAN, 6283: Warnings - Selected file invalidated # MF/ADF.USIM/DF.WLAN/EF.WRI, 6a82: Wrong parameters - File not found # MF/ADF.USIM/DF.WLAN/EF.HWSIDL, 6a82: Wrong parameters - File not found # MF/ADF.USIM/DF.WLAN/EF.WEHPLMNPI, 6a82: Wrong parameters - File not found # MF/ADF.USIM/DF.WLAN/EF.WHPI, 6a82: Wrong parameters - File not found # MF/ADF.USIM/DF.WLAN/EF.WLRPLMN, 6a82: Wrong parameters - File not found # MF/ADF.USIM/DF.WLAN/EF.HPLMNDAI, 6a82: Wrong parameters - File not found -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I2d4662dc021e286a1c3293ab36aaa845b1251388 Gerrit-Change-Number: 23837 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Thu, 22 Apr 2021 09:51: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 Apr 22 09:52:56 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 09:52:56 +0000 Subject: Change in pysim[master]: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23836 ) Change subject: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I344d8247ff81463e5c0140ff17e66322a61ef20f Gerrit-Change-Number: 23836 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Thu, 22 Apr 2021 09:52: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 Apr 22 09:53:29 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 22 Apr 2021 09:53:29 +0000 Subject: Change in pysim[master]: ts_31_103: Use EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from ts_51_011 In-Reply-To: References: Message-ID: herlesupreeth has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23838 ) Change subject: ts_31_103: Use EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from ts_51_011 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I688cfddcf5845316f71a9641d4426a20f58c1fba Gerrit-Change-Number: 23838 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Thu, 22 Apr 2021 09:53: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 Apr 22 09:58:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 09:58:16 +0000 Subject: Change in pysim[master]: filesystem.py: Introduce place-holder for BER-TLV files In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23852 ) Change subject: filesystem.py: Introduce place-holder for BER-TLV files ...................................................................... Patch Set 1: Verified+1 Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie4701d9f72b05c8a5810e287e55a20f6ea86a574 Gerrit-Change-Number: 23852 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 22 Apr 2021 09:58:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 09:59:36 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 09:59:36 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23795 ) Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 09: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 Thu Apr 22 10:04:01 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 10:04:01 +0000 Subject: Change in osmo-pcu[master]: RIM: Improve logging In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23800 ) Change subject: RIM: Improve logging ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0adbb8ea4480912463dc1dded6c06a1b8f7ed807 Gerrit-Change-Number: 23800 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 22 Apr 2021 10:04: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 Apr 22 10:10:44 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 10:10:44 +0000 Subject: Change in osmo-ggsn[master]: gtp: Update teic_confirmed only on resp success In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23850 ) Change subject: gtp: Update teic_confirmed only on resp success ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I54c54cbb51bfa5d1520855f448fa27511037b396 Gerrit-Change-Number: 23850 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 22 Apr 2021 10: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 Thu Apr 22 10:19:41 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 10:19:41 +0000 Subject: Change in osmo-bts[master]: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23849 ) Change subject: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23849/2/doc/manuals/abis/rsl.adoc File doc/manuals/abis/rsl.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23849/2/doc/manuals/abis/rsl.adoc at 1013 PS2, Line 1013: | octet 3 | TSC set > do we really need to save one byte on the Abis RSL signalling plane? We are talking about Ethernet h [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 Gerrit-Change-Number: 23849 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 22 Apr 2021 10:19:41 +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 Thu Apr 22 10:22:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 22 Apr 2021 10:22:09 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: 'burst type' is actually modulation type In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23827 ) Change subject: osmo-bts-trx: 'burst type' is actually modulation type ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic06c96434ad32dd3770b88cb1fefcbefb2fc3928 Gerrit-Change-Number: 23827 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 10:22: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 Apr 22 10:23:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 10:23:05 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23795 ) Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 10:23:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 10:23:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 10:23:08 +0000 Subject: Change in libosmocore[master]: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23795 ) Change subject: gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef ...................................................................... gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef Introduce TLV attribute definition for "Old BSS to New BSS Information" container. Related: SYS#5337 Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 --- M TODO-RELEASE M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 4 files changed, 29 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index 53401ec..ed04a14 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 libosmovty _LAST_OSMOVTY_NODE Raise _LAST_OSMOVTY_NODE by introducing some RESERVED*_NODE -libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size) +libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size), gsm0808_old_bss_to_new_bss_info_att_tlvdef symbol added diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index ecb9827..dc3610f 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -311,6 +311,7 @@ void gsm0808_prepend_dtap_header(struct msgb *msg, uint8_t link_id); const struct tlv_definition *gsm0808_att_tlvdef(void); +extern const struct tlv_definition gsm0808_old_bss_to_new_bss_info_att_tlvdef; /*! Parse BSSAP TLV structure using \ref tlv_parse */ #define osmo_bssap_tlv_parse(dec, buf, len) tlv_parse(dec, gsm0808_att_tlvdef(), buf, len, 0, 0) diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 578c7fa..3a39fd1 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -1576,6 +1576,32 @@ return &bss_att_tlvdef; } +/* As per 3GPP TS 48.008 version 16.0.0 Release 16 ? 3.2.2.58 Old BSS to New BSS Information */ +const struct tlv_definition gsm0808_old_bss_to_new_bss_info_att_tlvdef = { + .def = { + [GSM0808_FE_IE_EXTRA_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_CURRENT_CHANNEL_TYPE_2] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_TARGET_CELL_RADIO_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_GPRS_SUSPEND_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_MULTIRATE_CONFIGURATION_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_DUAL_TRANSFER_MODE_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_INTER_RAT_HANDOVER_INFO] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_CDMA2000_CAPABILITY_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_DOWNLINK_CELL_LOAD_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_UPLINK_CELL_LOAD_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_CELL_LOAD_INFORMATION_GROUP] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_CELL_LOAD_INFORMATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_PS_INDICATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_DTM_HANDOVER_COMMAND_INDICATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_D_RNTI] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_IRAT_MEASUREMENT_CONFIGURATION] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_SOURCE_CELL_ID] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_IRAT_MEASUREMENT_CONFIGURATION_EXTENDED_E_ARFCNS] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_VGCS_TALKER_MODE] = { TLV_TYPE_TLV }, + [GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID] = { TLV_TYPE_FIXED, 3 }, + }, +}; + const struct value_string gsm0406_dlci_sapi_names[] = { { DLCI_SAPI_RR_MM_CC, "RR/MM/CC" }, { DLCI_SAPI_SMS, "SMS" }, diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 56a57b8..3fd01db 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -154,6 +154,7 @@ gsm0503_mcs9; gsm0808_att_tlvdef; +gsm0808_old_bss_to_new_bss_info_att_tlvdef; gsm0808_bssap_name; gsm0808_bssmap_name; gsm0808_cause_name; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Gerrit-Change-Number: 23795 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 10:23:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 10:23:18 +0000 Subject: Change in osmo-pcu[master]: RIM: Improve logging In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23800 ) Change subject: RIM: Improve logging ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0adbb8ea4480912463dc1dded6c06a1b8f7ed807 Gerrit-Change-Number: 23800 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 10:23: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 Apr 22 10:23:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 10:23:20 +0000 Subject: Change in osmo-pcu[master]: RIM: Improve logging In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23800 ) Change subject: RIM: Improve logging ...................................................................... RIM: Improve logging Change-Id: I0adbb8ea4480912463dc1dded6c06a1b8f7ed807 --- M src/gprs_bssgp_rim.c 1 file changed, 19 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/gprs_bssgp_rim.c b/src/gprs_bssgp_rim.c index 5f6f750..c1f9cec 100644 --- a/src/gprs_bssgp_rim.c +++ b/src/gprs_bssgp_rim.c @@ -87,6 +87,13 @@ /* Note: It is possible that the resulting PDU will not contain any system information, even if this is * an unlikely case since the BTS immediately updates the system information after startup. The * specification permits to send zero system information, see also: 3GPP TS 48.018 section 11.3.63.2.1 */ + + if (!bts->si1_is_set || !bts->si3_is_set || !bts->si13_is_set) + LOGP(DNACC, LOGL_INFO, "TX RAN INFO RESPONSE (NACC) %s: Some SI are missing:%s%s%s\n", + osmo_cgi_ps_name(&app_cont->reprt_cell), + bts->si1_is_set ? "" : " SI1", + bts->si3_is_set ? "" : " SI3", + bts->si13_is_set ? "" : " SI13"); } /* Format a RAN INFORMATION PDU that contains the requested system information */ @@ -243,7 +250,7 @@ pdu->routing_info_dest.geran.cid); bts = gprs_pcu_get_bts_by_cgi_ps(the_pcu, &dst_addr); if (!bts) { - LOGPRIM(nsei, LOGL_ERROR, "Cell %s unknown to this pcu\n", + LOGPRIM(nsei, LOGL_ERROR, "Destination cell %s unknown to this pcu\n", osmo_cgi_ps_name(&dst_addr)); return bssgp_tx_status(BSSGP_CAUSE_UNKN_DST, NULL, msg); } @@ -251,7 +258,8 @@ /* Check if the incoming RIM PDU is parseable, if not we must report * an error to the controlling BSS 3GPP TS 48.018, 8c.3.4 and 8c.3.4.2 */ if (!pdu->decoded_present) { - LOGPRIM(nsei, LOGL_ERROR, "Errornous RIM PDU received -- rejected.\n"); + LOGPRIM(nsei, LOGL_ERROR, "Erroneous RIM PDU received for cell %s -- reject.\n", + osmo_cgi_ps_name(&dst_addr)); format_response_pdu_err(&resp_pdu, pdu); return 0; } @@ -259,7 +267,9 @@ /* Check if the RIM container inside the incoming RIM PDU has the correct * application ID */ if (!match_app_id(pdu, BSSGP_RAN_INF_APP_ID_NACC)) { - LOGPRIM(nsei, LOGL_ERROR, "RIM PDU with unknown/wrong application ID received -- rejected.\n"); + LOGPRIM(nsei, LOGL_ERROR, + "RIM PDU for cell %s with unknown/wrong application ID received -- reject.\n", + osmo_cgi_ps_name(&dst_addr)); format_response_pdu_err(&resp_pdu, pdu); return 0; } @@ -269,10 +279,14 @@ case BSSGP_IE_RI_REQ_RIM_CONTAINER: rc = osmo_cgi_ps_cmp(&dst_addr, &pdu->decoded.req_rim_cont.u.app_cont_nacc.reprt_cell); if (rc != 0) { - LOGPRIM(nsei, LOGL_ERROR, "reporting cell in RIM application container does not match destination cell in RIM routing info -- rejected.\n"); + LOGPRIM(nsei, LOGL_ERROR, "reporting cell in RIM application container %s " + "does not match destination cell in RIM routing info %s -- rejected.\n", + osmo_cgi_ps_name(&pdu->decoded.req_rim_cont.u.app_cont_nacc.reprt_cell), + osmo_cgi_ps_name2(&dst_addr)); format_response_pdu_err(&resp_pdu, pdu); } else { - LOGPRIM(nsei, LOGL_INFO, "Responding to RAN INFORMATION REQUEST ...\n"); + LOGPRIM(nsei, LOGL_INFO, "Responding to RAN INFORMATION REQUEST %s ...\n", + osmo_cgi_ps_name(&pdu->decoded.req_rim_cont.u.app_cont_nacc.reprt_cell)); format_response_pdu(&resp_pdu, pdu, bts); } bssgp_tx_rim(&resp_pdu, nsei); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0adbb8ea4480912463dc1dded6c06a1b8f7ed807 Gerrit-Change-Number: 23800 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 11:40:59 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 22 Apr 2021 11:40:59 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy_main: Process options after all initialization is done References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23859 ) Change subject: gbproxy_main: Process options after all initialization is done ...................................................................... gbproxy_main: Process options after all initialization is done Previously gprs_ns2_vty_init() was called after handle_options(). This caused config-ns* commands to be missing when calling osmo-gbproxy --vty-ref-xml which is used to generate the vty reference manual. This commit moves argument handling until after all VTY commands have been installed. Change-Id: I0f779c16085a42b308925a676b144999106f2b63 --- M src/gb_proxy_main.c 1 file changed, 17 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/59/23859/1 diff --git a/src/gb_proxy_main.c b/src/gb_proxy_main.c index cf7421f..1a4e951 100644 --- a/src/gb_proxy_main.c +++ b/src/gb_proxy_main.c @@ -289,23 +289,6 @@ osmo_cpu_sched_vty_init(tall_sgsn_ctx); gbproxy_vty_init(); - handle_options(argc, argv); - - /* Backwards compatibility: for years, the default config file name was - * osmo_gbproxy.cfg. All other Osmocom programs use osmo-*.cfg with a - * dash. To be able to use the new config file name without breaking - * previous setups that might rely on the legacy default config file - * name, we need to look for the old config file if no -c option was - * passed AND no file exists with the new default file name. */ - if (!config_file) { - /* No -c option was passed */ - if (file_exists(CONFIG_FILE_LEGACY) - && !file_exists(CONFIG_FILE_DEFAULT)) - config_file = CONFIG_FILE_LEGACY; - else - config_file = CONFIG_FILE_DEFAULT; - } - rate_ctr_init(tall_sgsn_ctx); osmo_stats_init(tall_sgsn_ctx); @@ -323,6 +306,23 @@ gprs_ns2_vty_init(gbcfg->nsi); logging_vty_add_deprecated_subsys(tall_sgsn_ctx, "bssgp"); + handle_options(argc, argv); + + /* Backwards compatibility: for years, the default config file name was + * osmo_gbproxy.cfg. All other Osmocom programs use osmo-*.cfg with a + * dash. To be able to use the new config file name without breaking + * previous setups that might rely on the legacy default config file + * name, we need to look for the old config file if no -c option was + * passed AND no file exists with the new default file name. */ + if (!config_file) { + /* No -c option was passed */ + if (file_exists(CONFIG_FILE_LEGACY) + && !file_exists(CONFIG_FILE_DEFAULT)) + config_file = CONFIG_FILE_LEGACY; + else + config_file = CONFIG_FILE_DEFAULT; + } + bssgp_set_bssgp_callback(gbprox_bssgp_send_cb, gbcfg); rc = gbproxy_parse_config(config_file, gbcfg); -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I0f779c16085a42b308925a676b144999106f2b63 Gerrit-Change-Number: 23859 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 Apr 22 12:03:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 12:03:12 +0000 Subject: Change in osmo-ggsn[master]: gtp: Rework parsing logic of UpdatePdpCtxResponse References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23860 ) Change subject: gtp: Rework parsing logic of UpdatePdpCtxResponse ...................................................................... gtp: Rework parsing logic of UpdatePdpCtxResponse The previous order of parsing lead to non-optimal information gathering when pushing events to upper layers. This patch rearranges parsing of packet data to always gather as much info as possible for the benefit of the upper layer. This way it can gather information such as the cause, which is important in the case of "Non-existent", since user should then drop the context. First we want to parse the recovery state, but delay cb to upper layers until we tried to gather the pdp ctx (meaning all except that pdp ctx should be freed). Second, we want to parse the cause, in order to know if there's an associated pdp ctx we can gather from TEID. Third, once we know if we should expect a meaningul TEID, parse it. Related: SYS#5435 Change-Id: Idd10b494e8fbac8703c49ecd8f9bbe4246e51c57 --- M gtp/gtp.c 1 file changed, 30 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/60/23860/1 diff --git a/gtp/gtp.c b/gtp/gtp.c index 701aa36..1995d10 100644 --- a/gtp/gtp.c +++ b/gtp/gtp.c @@ -2324,26 +2324,20 @@ static int gtp_update_pdp_conf(struct gsn_t *gsn, uint8_t version, struct sockaddr_in *peer, void *pack, unsigned len) { - struct pdp_t *pdp; + struct pdp_t *pdp = NULL; union gtpie_member *ie[GTPIE_SIZE]; - uint8_t cause, recovery; + uint8_t cause = EOF; + uint8_t recovery; + int rc = 0; void *cbp = NULL; uint8_t type = 0; + bool trigger_recovery = false; int hlen = get_hlen(pack); /* Remove packet from queue */ if (gtp_conf(gsn, 0, peer, pack, len, &type, &cbp)) return EOF; - /* Find the context in question */ - if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { - gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, len, - "Unknown PDP context: %u\n", get_tei(pack)); - pdp = NULL; - goto err_out; - } - /* Decode information elements */ if (gtpie_decaps(ie, version, pack + hlen, len - hlen)) { gsn->invalid++; @@ -2352,19 +2346,34 @@ goto err_out; } + /* Extract recovery (optional) */ + if (!gtpie_gettv1(ie, GTPIE_RECOVERY, 0, &recovery)) + trigger_recovery = true; + /* Extract cause value (mandatory) */ if (gtpie_gettv1(ie, GTPIE_CAUSE, 0, &cause)) { goto err_missing; } - /* Extract recovery (optional) */ - if (!gtpie_gettv1(ie, GTPIE_RECOVERY, 0, &recovery)) { - emit_cb_recovery(gsn, peer, pdp, recovery); + /* 3GPP TS 29.060 sec 8.2: "Receiving node shall send back to the source + * of the message, a response with the appropriate cause value (either + * "Non-existent" or "Context not found"). The Tunnel Endpoint + * Identifier used in the response message shall be set to all zeroes." + * Hence, TEID=0 in this scenario, it makes no sense to infer PDP ctx + * from it. User is responsible to infer it from cbp */ + if (cause != GTPCAUSE_NON_EXIST || cause != GTPCAUSE_CONTEXT_NOT_FOUND) { + /* Find the context in question */ + if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { + gsn->err_unknownpdp++; + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: %u\n", get_tei(pack)); + goto err_out; + } } /* Check all conditional information elements */ /* TODO: This does not handle GGSN-initiated update responses */ - if (GTPCAUSE_ACC_REQ == cause) { + if (cause == GTPCAUSE_ACC_REQ) { if (version == 0) { if (gtpie_gettv0(ie, GTPIE_QOS_PROFILE0, 0, &pdp->qos_neg0, @@ -2416,18 +2425,20 @@ } } +generic_ret: + if (trigger_recovery) + emit_cb_recovery(gsn, peer, pdp, recovery); if (gsn->cb_conf) gsn->cb_conf(type, cause, pdp, cbp); - return 0; /* Succes */ + return rc; /* Succes */ err_missing: gsn->missing++; GTP_LOGPKG(LOGL_ERROR, peer, pack, len, "Missing information field\n"); err_out: - if (gsn->cb_conf) - gsn->cb_conf(type, EOF, pdp, cbp); - return EOF; + rc = EOF; + goto generic_ret; } /* API: Deprecated. Send Delete PDP Context Request And free pdp ctx. */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Idd10b494e8fbac8703c49ecd8f9bbe4246e51c57 Gerrit-Change-Number: 23860 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 Apr 22 12:23:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 12:23:01 +0000 Subject: Change in osmo-ggsn[master]: ggsn: Improve logging on incoming DL data packets References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 ) Change subject: ggsn: Improve logging on incoming DL data packets ...................................................................... ggsn: Improve logging on incoming DL data packets Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b --- M ggsn/ggsn.c 1 file changed, 20 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/61/23861/1 diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c index bde7f4b..a96949a 100644 --- a/ggsn/ggsn.c +++ b/ggsn/ggsn.c @@ -626,17 +626,31 @@ return 0; if (ippool_getip(pool, &ipm, &dst)) { - LOGTUN(LOGL_DEBUG, tun, "Received packet for APN(%s) with no PDP contex! (%s)\n", + LOGTUN(LOGL_DEBUG, tun, "APN(%s) Rx DL data packet for IP address not " + "in the pool of managed addresses: (%s)\n", + apn->cfg.name, + iph->version == 4 ? + inet_ntop(AF_INET, &iph->saddr, straddr, sizeof(straddr)) : + inet_ntop(AF_INET6, &ip6h->ip6_src, straddr, sizeof(straddr))); + return 0; + } + + if (ipm->peer) { /* Check if a peer protocol is defined */ + struct pdp_t *pdp = (struct pdp_t *)ipm->peer; + LOGTUN(LOGL_DEBUG, tun, "APN(%s) Rx DL data packet for %s, PDP(%s:%u)\n", + apn->cfg.name, + iph->version == 4 ? + inet_ntop(AF_INET, &iph->saddr, straddr, sizeof(straddr)) : + inet_ntop(AF_INET6, &ip6h->ip6_src, straddr, sizeof(straddr)), + imsi_gtp2str(&(pdp)->imsi), (pdp)->nsapi); + gtp_data_req(apn->ggsn->gsn, pdp, pack, len); + } else { + LOGTUN(LOGL_DEBUG, tun, "APN(%s) Rx DL data packet for IP address with no associated PDP Ctx: %s\n", apn->cfg.name, iph->version == 4 ? inet_ntop(AF_INET, &iph->saddr, straddr, sizeof(straddr)) : inet_ntop(AF_INET6, &ip6h->ip6_src, straddr, sizeof(straddr))); - return 0; } - LOGTUN(LOGL_DEBUG, tun, "Received packet for APN(%s)\n", apn->cfg.name); - - if (ipm->peer) /* Check if a peer protocol is defined */ - gtp_data_req(apn->ggsn->gsn, (struct pdp_t *)ipm->peer, pack, len); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b Gerrit-Change-Number: 23861 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 Apr 22 12:26:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 12:26:30 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy_main: Process options after all initialization is done In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23859 ) Change subject: gbproxy_main: Process options after all initialization is done ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I0f779c16085a42b308925a676b144999106f2b63 Gerrit-Change-Number: 23859 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 22 Apr 2021 12: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 Apr 22 12:27:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 12:27:18 +0000 Subject: Change in osmo-ggsn[master]: ggsn: Improve logging on incoming DL data packets 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-ggsn/+/23861 to look at the new patch set (#2). Change subject: ggsn: Improve logging on incoming DL data packets ...................................................................... ggsn: Improve logging on incoming DL data packets Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b --- M ggsn/ggsn.c 1 file changed, 20 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/61/23861/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b Gerrit-Change-Number: 23861 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 Apr 22 12:27:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 12:27:37 +0000 Subject: Change in osmo-ggsn[master]: ggsn: Improve logging on incoming DL data packets 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-ggsn/+/23861 to look at the new patch set (#3). Change subject: ggsn: Improve logging on incoming DL data packets ...................................................................... ggsn: Improve logging on incoming DL data packets Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b --- M ggsn/ggsn.c 1 file changed, 20 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/61/23861/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b Gerrit-Change-Number: 23861 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 Apr 22 12:31:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 12:31:28 +0000 Subject: Change in pysim[master]: ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23839 ) Change subject: ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I54046375f180017373ab8e06e60ac5a542da706a Gerrit-Change-Number: 23839 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Thu, 22 Apr 2021 12:31: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 Apr 22 12:32:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 12:32:21 +0000 Subject: Change in pysim[master]: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23836 ) Change subject: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23836/2/pySim/ts_31_102.py File pySim/ts_31_102.py: https://gerrit.osmocom.org/c/pysim/+/23836/2/pySim/ts_31_102.py at 155 PS2, Line 155: 129: '5GS Operator PLMN List', Something is wrong with alignment here. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I344d8247ff81463e5c0140ff17e66322a61ef20f Gerrit-Change-Number: 23836 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 22 Apr 2021 12:32:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 12:40:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 12:40:39 +0000 Subject: Change in osmo-ggsn[master]: ggsn: Improve logging on incoming DL data packets 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-ggsn/+/23861 to look at the new patch set (#4). Change subject: ggsn: Improve logging on incoming DL data packets ...................................................................... ggsn: Improve logging on incoming DL data packets Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b --- M ggsn/ggsn.c 1 file changed, 33 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/61/23861/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b Gerrit-Change-Number: 23861 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 Apr 22 13:01:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 13:01:27 +0000 Subject: Change in osmo-ggsn[master]: gtp: Improve logging of failing pdp ctx resolution from TEI/TID References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23862 ) Change subject: gtp: Improve logging of failing pdp ctx resolution from TEI/TID ...................................................................... gtp: Improve logging of failing pdp ctx resolution from TEI/TID Change-Id: I4f2084ec7e3a830e0224dd998ff0fe6654cc23bd --- M gtp/gtp.c 1 file changed, 31 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/62/23862/1 diff --git a/gtp/gtp.c b/gtp/gtp.c index 1995d10..81b7e0f 100644 --- a/gtp/gtp.c +++ b/gtp/gtp.c @@ -2136,8 +2136,9 @@ /* Find the context in question */ if (gtp_pdp_tidget(gsn, &pdp, get_tid(pack))) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, - len, "Unknown PDP context\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: TID=0x%" PRIx64 "\n", + get_tid(pack)); return gtp_update_pdp_resp(gsn, version, peer, fd, pack, len, NULL, GTPCAUSE_NON_EXIST); @@ -2161,9 +2162,9 @@ /* Find the context in question */ if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, - pack, len, "Unknown PDP context: %u\n", - get_tei(pack)); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: TEI=0x%" PRIx32 "\n", + get_tei(pack)); return gtp_update_pdp_resp(gsn, version, peer, fd, pack, len, NULL, GTPCAUSE_NON_EXIST); @@ -2172,8 +2173,9 @@ /* Find the context in question */ if (gtp_pdp_getimsi(gsn, &pdp, imsi, nsapi)) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, - pack, len, "Unknown PDP context\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: IMSI=0x%" PRIx64 + " NSAPI=%" PRIu8 "\n", imsi, nsapi); return gtp_update_pdp_resp(gsn, version, peer, fd, pack, len, NULL, GTPCAUSE_NON_EXIST); @@ -2366,7 +2368,7 @@ if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { gsn->err_unknownpdp++; GTP_LOGPKG(LOGL_ERROR, peer, pack, len, - "Unknown PDP context: %u\n", get_tei(pack)); + "Unknown PDP context: TEI=0x%" PRIx32 "\n", get_tei(pack)); goto err_out; } } @@ -2603,7 +2605,7 @@ if (gtp_pdp_getgtp1(gsn, &linked_pdp, get_tei(pack))) { gsn->err_unknownpdp++; GTP_LOGPKG(LOGL_ERROR, peer, pack, len, - "Unknown PDP context: %u\n", get_tei(pack)); + "Unknown PDP context: TEI=0x%" PRIx32 "\n", get_tei(pack)); return gtp_delete_pdp_resp(gsn, version, peer, fd, pack, len, NULL, NULL, GTPCAUSE_NON_EXIST, teardown); @@ -2632,7 +2634,7 @@ if (gtpie_gettv1(ie, GTPIE_NSAPI, 0, &nsapi)) { gsn->missing++; GTP_LOGPKG(LOGL_ERROR, peer, pack, - len, "Missing mandatory information field\n"); + len, "Missing mandatory information field\n"); return gtp_delete_pdp_resp(gsn, version, peer, fd, pack, len, NULL, NULL, GTPCAUSE_MAN_IE_MISSING, @@ -2642,8 +2644,9 @@ /* Find the context in question */ if (gtp_pdp_getgtp1(gsn, &pdp, linked_pdp->secondary_tei[nsapi & 0x0f])) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, - len, "Unknown PDP context\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: Secondary TEI=0x%" PRIx32 "\n", + linked_pdp->secondary_tei[nsapi & 0x0f]); return gtp_delete_pdp_resp(gsn, version, peer, fd, pack, len, NULL, NULL, GTPCAUSE_NON_EXIST, @@ -2696,8 +2699,9 @@ if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { gsn->err_unknownpdp++; GTP_LOGPKG(LOGL_NOTICE, peer, pack, len, - "Unknown PDP context: %u (expected if gtp_delete_context_req is used or pdp ctx was freed manually before response)\n", - get_tei(pack)); + "Unknown PDP context: TEI=0x%" PRIx32 " (expected if " + "gtp_delete_context_req is used or pdp ctx was freed " + "manually before response)\n", get_tei(pack)); if (gsn->cb_conf) gsn->cb_conf(type, EOF, NULL, cbp); return EOF; @@ -2774,7 +2778,8 @@ if (gtp_pdp_tidget(gsn, &pdp, get_tid(pack))) { gsn->err_unknownpdp++; GTP_LOGPKG(LOGL_ERROR, peer, pack, len, - "Unknown PDP context\n"); + "Unknown PDP context: TID=0x%" PRIx64 "\n", + get_tid(pack)); return EOF; } } else if (version == 1) { @@ -2799,7 +2804,9 @@ if (gtp_pdp_getgtp1_peer_d(gsn, &pdp, peer, teid_gn)) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, len, "Unknown PDP context\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: Peer TEID=0x%" PRIx32 "\n", + teid_gn); return EOF; } } else { @@ -2830,22 +2837,22 @@ switch (version) { case 0: - if (gtp_pdp_getgtp0(gsn, &pdp, - ntoh16(((union gtp_packet *)pack)->gtp0.h.flow))) { + if (gtp_pdp_getgtp0(gsn, &pdp, get_tei(pack))) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, - len, "Unknown PDP context, GTPv0\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: TEI=0x%" PRIx32 "\n", + get_tei(pack)); return gtp_error_ind_resp(gsn, version, peer, fd, pack, len); } hlen = GTP0_HEADER_SIZE; break; case 1: - if (gtp_pdp_getgtp1(gsn, &pdp, - ntoh32(((union gtp_packet *)pack)->gtp1l.h.tei))) { + if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, - len, "Unknown PDP context, GTPv1\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: TEI=0x%" PRIx32 "\n", + get_tei(pack)); return gtp_error_ind_resp(gsn, version, peer, fd, pack, len); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I4f2084ec7e3a830e0224dd998ff0fe6654cc23bd Gerrit-Change-Number: 23862 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 Apr 22 14:09:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 14:09:46 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy_main: Process options after all initialization is done In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23859 ) Change subject: gbproxy_main: Process options after all initialization is done ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I0f779c16085a42b308925a676b144999106f2b63 Gerrit-Change-Number: 23859 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 14:09: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 Apr 22 14:18:25 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 22 Apr 2021 14:18:25 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy_main: Process options after all initialization is done In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23859 ) Change subject: gbproxy_main: Process options after all initialization is done ...................................................................... gbproxy_main: Process options after all initialization is done Previously gprs_ns2_vty_init() was called after handle_options(). This caused config-ns* commands to be missing when calling osmo-gbproxy --vty-ref-xml which is used to generate the vty reference manual. This commit moves argument handling until after all VTY commands have been installed. Change-Id: I0f779c16085a42b308925a676b144999106f2b63 --- M src/gb_proxy_main.c 1 file changed, 17 insertions(+), 17 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/gb_proxy_main.c b/src/gb_proxy_main.c index cf7421f..1a4e951 100644 --- a/src/gb_proxy_main.c +++ b/src/gb_proxy_main.c @@ -289,23 +289,6 @@ osmo_cpu_sched_vty_init(tall_sgsn_ctx); gbproxy_vty_init(); - handle_options(argc, argv); - - /* Backwards compatibility: for years, the default config file name was - * osmo_gbproxy.cfg. All other Osmocom programs use osmo-*.cfg with a - * dash. To be able to use the new config file name without breaking - * previous setups that might rely on the legacy default config file - * name, we need to look for the old config file if no -c option was - * passed AND no file exists with the new default file name. */ - if (!config_file) { - /* No -c option was passed */ - if (file_exists(CONFIG_FILE_LEGACY) - && !file_exists(CONFIG_FILE_DEFAULT)) - config_file = CONFIG_FILE_LEGACY; - else - config_file = CONFIG_FILE_DEFAULT; - } - rate_ctr_init(tall_sgsn_ctx); osmo_stats_init(tall_sgsn_ctx); @@ -323,6 +306,23 @@ gprs_ns2_vty_init(gbcfg->nsi); logging_vty_add_deprecated_subsys(tall_sgsn_ctx, "bssgp"); + handle_options(argc, argv); + + /* Backwards compatibility: for years, the default config file name was + * osmo_gbproxy.cfg. All other Osmocom programs use osmo-*.cfg with a + * dash. To be able to use the new config file name without breaking + * previous setups that might rely on the legacy default config file + * name, we need to look for the old config file if no -c option was + * passed AND no file exists with the new default file name. */ + if (!config_file) { + /* No -c option was passed */ + if (file_exists(CONFIG_FILE_LEGACY) + && !file_exists(CONFIG_FILE_DEFAULT)) + config_file = CONFIG_FILE_LEGACY; + else + config_file = CONFIG_FILE_DEFAULT; + } + bssgp_set_bssgp_callback(gbprox_bssgp_send_cb, gbcfg); rc = gbproxy_parse_config(config_file, gbcfg); -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I0f779c16085a42b308925a676b144999106f2b63 Gerrit-Change-Number: 23859 Gerrit-PatchSet: 1 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 Apr 22 14:24:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 14:24:58 +0000 Subject: Change in osmo-ggsn[master]: gtp: Rework parsing logic of UpdatePdpCtxResponse 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-ggsn/+/23860 to look at the new patch set (#2). Change subject: gtp: Rework parsing logic of UpdatePdpCtxResponse ...................................................................... gtp: Rework parsing logic of UpdatePdpCtxResponse The previous order of parsing lead to non-optimal information gathering when pushing events to upper layers. This patch rearranges parsing of packet data to always gather as much info as possible for the benefit of the upper layer. This way it can gather information such as the cause, which is important in the case of "Non-existent", since user should then drop the context. First we want to parse the recovery state, but delay cb to upper layers until we tried to gather the pdp ctx (meaning all except that pdp ctx should be freed). Second, we want to parse the cause, in order to know if there's an associated pdp ctx we can gather from TEID. Third, once we know if we should expect a meaningul TEID, parse it. Related: SYS#5435 Change-Id: Idd10b494e8fbac8703c49ecd8f9bbe4246e51c57 --- M gtp/gtp.c 1 file changed, 30 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/60/23860/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Idd10b494e8fbac8703c49ecd8f9bbe4246e51c57 Gerrit-Change-Number: 23860 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 Apr 22 15:25:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:25:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: define TRXC/TRXD message buffer size 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/+/23826 to look at the new patch set (#4). Change subject: osmo-bts-trx: define TRXC/TRXD message buffer size ...................................................................... osmo-bts-trx: define TRXC/TRXD message buffer size Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 2 files changed, 10 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/26/23826/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Gerrit-Change-Number: 23826 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 Thu Apr 22 15:25:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:25:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move MTS parser into trx_data_parse_mts() 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/+/23828 to look at the new patch set (#4). Change subject: osmo-bts-trx: move MTS parser into trx_data_parse_mts() ...................................................................... osmo-bts-trx: move MTS parser into trx_data_parse_mts() This would allow to re-use this code from the TRXDv2 parser. Change-Id: I2de2cb2d58110452d8dedbcacfef28f85f6d67c1 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 38 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/28/23828/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2de2cb2d58110452d8dedbcacfef28f85f6d67c1 Gerrit-Change-Number: 23828 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 Thu Apr 22 15:25:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:25:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version 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/+/23829 to look at the new patch set (#4). Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... osmo-bts-trx: discard TRXD PDUs with unexpected version Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 13 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/29/23829/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 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 Thu Apr 22 15:25:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:25:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() 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/+/23830 to look at the new patch set (#4). Change subject: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() ...................................................................... osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() Change-Id: Ib3c4a5ad7f16196dc5c591aa0b4d7e0ec3267f05 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 7 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/30/23830/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib3c4a5ad7f16196dc5c591aa0b4d7e0ec3267f05 Gerrit-Change-Number: 23830 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 Thu Apr 22 15:25:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:25:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor handling of version specific TRXD 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-bts/+/23832 to look at the new patch set (#4). Change subject: osmo-bts-trx: refactor handling of version specific TRXD parts ...................................................................... osmo-bts-trx: refactor handling of version specific TRXD parts This is a preparatory change for the upcoming TRXDv2 support: * move common TRXDv0/v1 header parser into a separate function; * move burst handling into a single, version independent function; ** determine modulation and burst length in trx_data_parse_pdu_v0(); Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 60 insertions(+), 81 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/32/23832/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Gerrit-Change-Number: 23832 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 15:25:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:25:33 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: generalize checking of TRXD header length References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23863 ) Change subject: osmo-bts-trx: generalize checking of TRXD header length ...................................................................... osmo-bts-trx: generalize checking of TRXD header length Change-Id: I7df851c3afb82133f84dc805e0926438a90efe07 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 14 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/63/23863/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 0beb941..28b5f2e 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -723,19 +723,17 @@ /* Uplink TRXDv1 header length: additional MTS + C/I */ #define TRX_UL_V1HDR_LEN (TRX_UL_V0HDR_LEN + 1 + 2) +/* Minimum Uplink TRXD header length for all PDU versions */ +static const uint8_t trx_data_rx_hdr_len[] = { + TRX_UL_V0HDR_LEN, /* TRXDv0 */ + TRX_UL_V1HDR_LEN, /* TRXDv1 */ +}; + /* TRXD header dissector for version 0 */ static int trx_data_handle_hdr_v0(struct trx_l1h *l1h, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { - /* Make sure we have enough data */ - if (buf_len < TRX_UL_V0HDR_LEN) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Short read on TRXD, missing version 0 header " - "(len=%zu vs expected %d)\n", buf_len, TRX_UL_V0HDR_LEN); - return -EIO; - } - bi->tn = buf[0] & 0b111; bi->fn = osmo_load32be(buf + 1); bi->rssi = -(int8_t)buf[5]; @@ -785,14 +783,6 @@ { int rc; - /* Make sure we have enough data */ - if (buf_len < TRX_UL_V1HDR_LEN) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Short read on TRXD, missing version 1 header " - "(len=%zu vs expected %d)\n", buf_len, TRX_UL_V1HDR_LEN); - return -EIO; - } - /* Parse v0 specific part */ rc = trx_data_handle_hdr_v0(l1h, bi, buf, buf_len); if (rc < 0) @@ -948,6 +938,14 @@ return -EIO; } + /* Make sure that we have enough bytes to parse the header */ + if (buf_len < trx_data_rx_hdr_len[pdu_ver]) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Rx malformed TRXDv%u PDU: len=%zd < expected %u\n", + pdu_ver, buf_len, trx_data_rx_hdr_len[pdu_ver]); + return -EINVAL; + } + /* Parse header depending on the PDU version */ switch (pdu_ver) { case 0: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7df851c3afb82133f84dc805e0926438a90efe07 Gerrit-Change-Number: 23863 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 Apr 22 15:25:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:25:33 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: pass 'struct phy_instance' to TRXD dissectors References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23864 ) Change subject: osmo-bts-trx: pass 'struct phy_instance' to TRXD dissectors ...................................................................... osmo-bts-trx: pass 'struct phy_instance' to TRXD dissectors All these functions need the PHY instance pointer for logging, they don't really need a pointer to 'struct trx_l1h'. Change-Id: I626b4392a8bc57a3fe5e8c931aa1ce9dd505676c Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 15 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/64/23864/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 28b5f2e..d2ad877 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -730,7 +730,7 @@ }; /* TRXD header dissector for version 0 */ -static int trx_data_handle_hdr_v0(struct trx_l1h *l1h, +static int trx_data_handle_hdr_v0(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { @@ -743,7 +743,7 @@ } /* Parser for MTS (Modulation and Training Sequence) */ -static inline int trx_data_parse_mts(struct trx_l1h *l1h, +static inline int trx_data_parse_mts(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t mts) { @@ -762,7 +762,7 @@ bi->mod = TRX_MOD_T_8PSK; bi->tsc_set = (mts >> 3) & 0x01; } else { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + LOGPPHI(phy_inst, DTRX, LOGL_ERROR, "Rx TRXD PDU with unknown or not supported " "modulation (MTS=0x%02x)\n", mts); return -ENOTSUP; @@ -777,14 +777,14 @@ } /* TRXD header dissector for version 0x01 */ -static int trx_data_handle_hdr_v1(struct trx_l1h *l1h, +static int trx_data_handle_hdr_v1(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { int rc; /* Parse v0 specific part */ - rc = trx_data_handle_hdr_v0(l1h, bi, buf, buf_len); + rc = trx_data_handle_hdr_v0(phy_inst, bi, buf, buf_len); if (rc < 0) return rc; @@ -793,7 +793,7 @@ buf += rc; /* MTS (Modulation and Training Sequence) */ - rc = trx_data_parse_mts(l1h, bi, buf[0]); + rc = trx_data_parse_mts(phy_inst, bi, buf[0]); if (rc < 0) return rc; @@ -805,7 +805,7 @@ } /* TRXD burst handler for PDU version 0 */ -static int trx_data_handle_burst_v0(struct trx_l1h *l1h, +static int trx_data_handle_burst_v0(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { @@ -824,7 +824,7 @@ break; default: - LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, + LOGPPHI(phy_inst, DTRX, LOGL_NOTICE, "Rx TRXD message with odd burst length %zu\n", buf_len); return -EINVAL; } @@ -841,7 +841,7 @@ } /* TRXD burst handler for PDU version 1 */ -static int trx_data_handle_burst_v1(struct trx_l1h *l1h, +static int trx_data_handle_burst_v1(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { @@ -853,7 +853,7 @@ /* Verify burst length */ if (bl[bi->mod] != buf_len) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, + LOGPPHI(phy_inst, DTRX, LOGL_NOTICE, "Rx TRXD message with odd burst length %zu, " "expected %zu\n", buf_len, bl[bi->mod]); return -EINVAL; @@ -861,7 +861,7 @@ /* The PDU format is the same as for version 0. * NOTE: other modulation types to be handled separately. */ - return trx_data_handle_burst_v0(l1h, bi, buf, buf_len); + return trx_data_handle_burst_v0(phy_inst, bi, buf, buf_len); } static const char *trx_data_desc_msg(const struct trx_ul_burst_ind *bi) @@ -950,10 +950,10 @@ switch (pdu_ver) { case 0: /* Legacy protocol has no version indicator */ - hdr_len = trx_data_handle_hdr_v0(l1h, &bi, buf, buf_len); + hdr_len = trx_data_handle_hdr_v0(l1h->phy_inst, &bi, buf, buf_len); break; case 1: - hdr_len = trx_data_handle_hdr_v1(l1h, &bi, buf, buf_len); + hdr_len = trx_data_handle_hdr_v1(l1h->phy_inst, &bi, buf, buf_len); break; default: /* Shall not happen */ @@ -982,10 +982,10 @@ /* Handle burst bits */ switch (pdu_ver) { case 0: - rc = trx_data_handle_burst_v0(l1h, &bi, buf + hdr_len, buf_len); + rc = trx_data_handle_burst_v0(l1h->phy_inst, &bi, buf + hdr_len, buf_len); break; case 1: - rc = trx_data_handle_burst_v1(l1h, &bi, buf + hdr_len, buf_len); + rc = trx_data_handle_burst_v1(l1h->phy_inst, &bi, buf + hdr_len, buf_len); break; default: /* Shall not happen, just to make GCC happy */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23864 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I626b4392a8bc57a3fe5e8c931aa1ce9dd505676c Gerrit-Change-Number: 23864 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 Apr 22 15:25:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:25:33 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: enlarge and share TRXD message buffer References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23865 ) Change subject: osmo-bts-trx: enlarge and share TRXD message buffer ...................................................................... osmo-bts-trx: enlarge and share TRXD message buffer Starting from TRXDv2, several PDUs may be batched together and sent in all together a single datagram. This requires us to increase the buffer size that we use for sending and receiving TRXD messages. Let's use 65536 matching the default MTU value for 'lo' interface on Linux. Given that 65536 is quite a big number, let's allocate a shared Rx/Tx buffer statically to avoid [potential] stack overflow. Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 2 files changed, 23 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/65/23865/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 8169f8f..30c74dd 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -902,20 +902,24 @@ return buf; } +/* TRXD buffer used by Rx/Tx handlers */ +static uint8_t trx_data_buf[TRXD_MSG_BUF_SIZE]; + /* Parse TRXD message from transceiver, compose an UL burst indication. */ static int trx_data_read_cb(struct osmo_fd *ofd, unsigned int what) { + const uint8_t *ptr = &trx_data_buf[0]; struct trx_l1h *l1h = ofd->data; - uint8_t buf[TRXD_MSG_BUF_SIZE]; struct trx_ul_burst_ind bi; ssize_t hdr_len, buf_len; uint8_t pdu_ver; - buf_len = recv(ofd->fd, buf, sizeof(buf), 0); + buf_len = recv(ofd->fd, trx_data_buf, sizeof(trx_data_buf), 0); if (buf_len <= 0) { - strerror_r(errno, (char *)buf, sizeof(buf)); + strerror_r(errno, (char *) trx_data_buf, sizeof(trx_data_buf)); LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "recv() failed on TRXD with rc=%zd (%s)\n", buf_len, buf); + "recv() failed on TRXD with rc=%zd (%s)\n", + buf_len, trx_data_buf); return buf_len; } @@ -923,7 +927,7 @@ bi.flags = 0x00; /* Parse PDU version first */ - pdu_ver = buf[0] >> 4; + pdu_ver = ptr[0] >> 4; /* Make sure that PDU version matches our expectations */ if (pdu_ver != l1h->config.trxd_pdu_ver_use) { @@ -944,10 +948,10 @@ /* Parse header depending on the PDU version */ switch (pdu_ver) { case 0: /* TRXDv0 */ - hdr_len = trx_data_handle_hdr_v0(l1h->phy_inst, &bi, buf, buf_len); + hdr_len = trx_data_handle_hdr_v0(l1h->phy_inst, &bi, ptr, buf_len); break; case 1: /* TRXDv1 */ - hdr_len = trx_data_handle_hdr_v1(l1h->phy_inst, &bi, buf, buf_len); + hdr_len = trx_data_handle_hdr_v1(l1h->phy_inst, &bi, ptr, buf_len); break; default: /* Shall not happen */ @@ -969,7 +973,7 @@ buf_len -= hdr_len; /* Calculate burst length and parse it (if present) */ - if (trx_data_handle_burst(&bi, buf + hdr_len, buf_len) != 0) { + if (trx_data_handle_burst(&bi, ptr + hdr_len, buf_len) != 0) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Rx malformed TRXDv%u PDU: odd burst length=%zd\n", pdu_ver, buf_len); @@ -995,7 +999,7 @@ { ssize_t snd_len; uint8_t pdu_ver = l1h->config.trxd_pdu_ver_use; - uint8_t buf[TRXD_MSG_BUF_SIZE]; + uint8_t *ptr = &trx_data_buf[0]; if ((br->burst_len != GSM_BURST_LEN) && (br->burst_len != EGPRS_BURST_LEN)) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Tx burst length %zu invalid\n", @@ -1019,20 +1023,21 @@ return -ENOTSUP; } - buf[0] = ((pdu_ver & 0x0f) << 4) | br->tn; - osmo_store32be(br->fn, buf + 1); - buf[5] = br->att; + ptr[0] = ((pdu_ver & 0x0f) << 4) | br->tn; + osmo_store32be(br->fn, ptr + 1); + ptr[5] = br->att; /* copy ubits {0,1} */ - memcpy(buf + 6, br->burst, br->burst_len); + memcpy(ptr + 6, br->burst, br->burst_len); /* we must be sure that TRX is on */ if (trx_if_powered(l1h)) { - snd_len = send(l1h->trx_ofd_data.fd, buf, br->burst_len + 6, 0); + snd_len = send(l1h->trx_ofd_data.fd, trx_data_buf, br->burst_len + 6, 0); if (snd_len <= 0) { - strerror_r(errno, (char *)buf, sizeof(buf)); + strerror_r(errno, (char *) trx_data_buf, sizeof(trx_data_buf)); LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "send() failed on TRXD with rc=%zd (%s)\n", snd_len, buf); + "send() failed on TRXD with rc=%zd (%s)\n", + snd_len, trx_data_buf); return -2; } } else diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index ca3d51b..f40dbb5 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -2,8 +2,8 @@ /* TRXC read/send buffer size */ #define TRXC_MSG_BUF_SIZE 1500 -/* TRXD read/send buffer size */ -#define TRXD_MSG_BUF_SIZE 512 +/* TRXD read/send buffer size (max. lo MTU) */ +#define TRXD_MSG_BUF_SIZE 65536 struct trx_dl_burst_req; struct trx_l1h; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Gerrit-Change-Number: 23865 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 Apr 22 15:25:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:25:33 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: assert PDU version in trx_if_send_burst() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23866 ) Change subject: osmo-bts-trx: assert PDU version in trx_if_send_burst() ...................................................................... osmo-bts-trx: assert PDU version in trx_if_send_burst() If somehow the TRXC logic negotiates a non-supported TRXD PDU version, then it's a serious bug in the code. Let's add an assert() for that. Change-Id: I301377bcebd5e2bbcfc18b3637253ef261bb5b2e --- M src/osmo-bts-trx/trx_if.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/66/23866/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 30c74dd..9ea16ca 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1018,9 +1018,8 @@ break; default: - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Requested TRXD PDU version %u is not supported\n", pdu_ver); - return -ENOTSUP; + /* Shall not happen */ + OSMO_ASSERT(0); } ptr[0] = ((pdu_ver & 0x0f) << 4) | br->tn; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I301377bcebd5e2bbcfc18b3637253ef261bb5b2e Gerrit-Change-Number: 23866 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 Apr 22 15:25:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:25:34 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: reduce code nasting in trx_if_send_burst() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23867 ) Change subject: osmo-bts-trx: reduce code nasting in trx_if_send_burst() ...................................................................... osmo-bts-trx: reduce code nasting in trx_if_send_burst() If the PHY is not powered on and we are not supposed to send any bursts to it, then trx_if_send_burst() should just return early. Change-Id: I578bd5a731ad88ebff283c75bb7eb268d9e7e787 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 15 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/67/23867/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 9ea16ca..f3c805d 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1001,6 +1001,13 @@ uint8_t pdu_ver = l1h->config.trxd_pdu_ver_use; uint8_t *ptr = &trx_data_buf[0]; + /* Make sure that the PHY is powered on */ + if (!trx_if_powered(l1h)) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Ignoring Tx data, transceiver is powered off\n"); + return -ENODEV; + } + if ((br->burst_len != GSM_BURST_LEN) && (br->burst_len != EGPRS_BURST_LEN)) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Tx burst length %zu invalid\n", br->burst_len); @@ -1029,18 +1036,14 @@ /* copy ubits {0,1} */ memcpy(ptr + 6, br->burst, br->burst_len); - /* we must be sure that TRX is on */ - if (trx_if_powered(l1h)) { - snd_len = send(l1h->trx_ofd_data.fd, trx_data_buf, br->burst_len + 6, 0); - if (snd_len <= 0) { - strerror_r(errno, (char *) trx_data_buf, sizeof(trx_data_buf)); - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "send() failed on TRXD with rc=%zd (%s)\n", - snd_len, trx_data_buf); - return -2; - } - } else - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Ignoring TX data, transceiver powered off.\n"); + snd_len = send(l1h->trx_ofd_data.fd, trx_data_buf, br->burst_len + 6, 0); + if (snd_len <= 0) { + strerror_r(errno, (char *) trx_data_buf, sizeof(trx_data_buf)); + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "send() failed on TRXD with rc=%zd (%s)\n", + snd_len, trx_data_buf); + return -2; + } return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I578bd5a731ad88ebff283c75bb7eb268d9e7e787 Gerrit-Change-Number: 23867 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 Apr 22 15:27:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 15:27:09 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: define TRXC/TRXD message buffer size In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23826 ) Change subject: osmo-bts-trx: define TRXC/TRXD message buffer size ...................................................................... Patch Set 4: > Patch Set 3: > > Is this going to play well with the bacthing feature you are preparing? Not sure what exactly do you mean? Buffer size I guess? If so, please see: https://gerrit.osmocom.org/c/osmo-bts/+/23865 osmo-bts-trx: enlarge and share TRXD message buffer -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Gerrit-Change-Number: 23826 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 15:27: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 Thu Apr 22 16:09:57 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 22 Apr 2021 16:09:57 +0000 Subject: Change in osmo-gbproxy[master]: examples/manuals: Improve/update ns-related documentation References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23868 ) Change subject: examples/manuals: Improve/update ns-related documentation ...................................................................... examples/manuals: Improve/update ns-related documentation * example config files with current libosmogb options * Unify IPs used in config and manual * Include NS2-related configuration chapters in manual Closes: SYS#5115 Change-Id: I57cf5dc4ee686352252086917f5f63d5a69dddd7 --- M doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg M doc/examples/osmo-gbproxy/osmo-gbproxy.cfg M doc/manuals/chapters/gbproxy-configuration.adoc M doc/manuals/chapters/gbproxy-sgsnpool.adoc M doc/manuals/osmogbproxy-usermanual.adoc 5 files changed, 69 insertions(+), 46 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/68/23868/1 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg index bbc8a1b..c724a3c 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg @@ -7,22 +7,25 @@ ! gbproxy nri bitlen 4 - nri null add 0 4 + nri null add 15 sgsn nsei 101 name main nri add 1 - nri add 11 sgsn nsei 102 nri add 2 - nri add 12 ns - bind udp local - listen 127.0.0.100 23000 - accept-ipaccess + bind udp sgsn-side + listen 10.0.0.1 23000 nse 101 - nsvc ipa local 192.168.100.239 7777 nsvci 101 + ip-sns-bind sgsn-side + ip-sns-remote 10.0.1.1 23000 nse 102 - nsvc ipa local 192.168.100.239 7778 nsvci 102 + ip-sns-bind sgsn-side + ip-sns-remote 10.0.1.2 23000 + bind udp bss-side + listen 10.0.0.100 23000 + accept-dynamic-ip-sns + ip-sns-default bind bss-side timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg index 777d0b0..cbabb2d 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg @@ -9,11 +9,15 @@ sgsn nsei 101 name main ns - bind udp local - listen 127.0.0.100 23000 - accept-ipaccess + bind udp sgsn-side + listen 10.0.0.1 23000 nse 101 - nsvc ipa local 192.168.100.239 7777 nsvci 101 + ip-sns-bind sgsn-side + ip-sns-remote 10.0.1.1 23000 + bind udp bss-side + listen 10.0.0.100 23000 + accept-dynamic-ip-sns + ip-sns-default bind bss-side timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc index 87da471..79a508b 100644 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ b/doc/manuals/chapters/gbproxy-configuration.adoc @@ -5,29 +5,10 @@ Most config options specific to OsmoGbProxy are related to SGSN pooling and telling the proxy which NSE(s) it should use to talk to the SGSN(s). -=== Configure the Network Service (NS) - -A detailed description of the NS configuration can be found in <>. The following config snippets assume the SGSN(s) (NSEI 101 and 102) are using IP-SNS and listen on 10.0.1.1:23000 and 10.0.1.2:23000 respectively. -This would be the NS config for the SGSN(s): - -.Example: NS configuration example (SGSN) ----- -ns - bind udp local - listen 10.0.0.1 23000 <1> - nse 101 <2> - ip-sns 10.0.1.1 23000 <3> - nse 102 - ip-sns 10.0.1.2 23000 ----- -<1> Define the local IP/port from which to connect -<2> Define an NSE with NSEI -<3> Use IP-SNS to connect to the SGSN - -=== Configure an SGSN +=== Configure SGSN(s) Configuration of a single (non-pooling) SGSN is rather simple. @@ -35,7 +16,36 @@ ---- sgsn 101 <1> name Main SGSN <2> +sgsn 102 +ns + bind udp sgsn-side + listen 10.0.0.1 23000 <3> + nse 101 <4> + ip-sns-bind sgsn-side <5> + ip-sns-remote 10.0.1.1 23000 <6> + nse 102 + ip-sns-bind sgsn-side + ip-sns-remote 10.0.1.2 23000 ---- <1> Each SGSN is identified by its NSEI (same as in the NS configuration) <2> An SGSN can optionally have a name. If none is set a default name will be used. +<3> Define IP/port from which to connect +<4> Define an NSE with NSEI +<5> Use this bind to connect from +<6> Use IP-SNS to connect to the SGSN +=== Configure a socket for BSS + +The following configuration shows how to accept arbitrary BSS-NSE + +.Example: NS configuration example (NS) +---- +ns + bind udp bss-side <1> + listen 10.0.0.100 23000 + accept-dynamic-ip-sns <2> + ip-sns-default bind bss-side <3> +---- +<1> Define bind with IP/port for the BSS +<2> Allow BSS with dynamic NSE to connect to this bind +<3> Use this bind as default for dynamic NSE \ No newline at end of file diff --git a/doc/manuals/chapters/gbproxy-sgsnpool.adoc b/doc/manuals/chapters/gbproxy-sgsnpool.adoc index 61806af..cc30515 100644 --- a/doc/manuals/chapters/gbproxy-sgsnpool.adoc +++ b/doc/manuals/chapters/gbproxy-sgsnpool.adoc @@ -48,26 +48,32 @@ ==== Connecting Multiple SGSNs ---- -# Configure the Network Service +! Configure the Network Service ns bind udp sgsn listen 10.0.0.1 23000 nse 1 - ip-sns 10.0.1.1 23000 - ip-sns 10.0.1.1 23001 + ip-sns-bind sgsn + ip-sns-remote 10.0.1.1 23000 + ip-sns-remote 10.0.1.1 23001 nse 2 - ip-sns 10.0.1.2 23000 + ip-sns-bind sgsn + ip-sns-remote 10.0.1.2 23000 nse 3 - ip-sns 10.0.1.3 23000 -# configure NRI value ranges + ip-sns-bind sgsn + ip-sns-remote 10.0.1.3 23000 +! configure NRI value ranges gbproxy nri bitlen 10 nri null add 0 -sgsn 1 +sgsn nsei 1 + name SGSN01 nri add 1 341 -sgsn 2 +sgsn nsei 2 + name SGSN02 nri add 342 682 -sgsn 3 +sgsn nsei 3 + name SGSN03 nri add 683 1023 ---- @@ -184,8 +190,6 @@ that are being paged by this SGSN. But OsmoGbProxy will no longer direct new subscribers to this SGSN. -TODO: Is paging response relevant for SGSN? - To re-enable an SGSN for attaching new subscribers: ---- diff --git a/doc/manuals/osmogbproxy-usermanual.adoc b/doc/manuals/osmogbproxy-usermanual.adoc index 454cf69..4c3e419 100644 --- a/doc/manuals/osmogbproxy-usermanual.adoc +++ b/doc/manuals/osmogbproxy-usermanual.adoc @@ -21,13 +21,15 @@ include::{srcdir}/chapters/gbproxy-configuration.adoc[] +include::./common/chapters/gb-ns2-configuration.adoc[] + +include::./common/chapters/gb-ns2-configuration-timer.adoc[] + include::{srcdir}/chapters/gbproxy-sgsnpool.adoc[] include::./common/chapters/gb-ns2.adoc[] -include::./common/chapters/gb.adoc[] - -include::./common/chapters/control_if.adoc[] +asdfadsfdsfainclude::./common/chapters/control_if.adoc[] include::{srcdir}/chapters/counters_generated.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I57cf5dc4ee686352252086917f5f63d5a69dddd7 Gerrit-Change-Number: 23868 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 Apr 22 16:19:04 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 22 Apr 2021 16:19:04 +0000 Subject: Change in osmo-gbproxy[master]: examples/manuals: Improve/update ns-related documentation 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-gbproxy/+/23868 to look at the new patch set (#2). Change subject: examples/manuals: Improve/update ns-related documentation ...................................................................... examples/manuals: Improve/update ns-related documentation * example config files with current libosmogb options * Include NS2-related configuration chapters in manual Closes: SYS#5115 Change-Id: I57cf5dc4ee686352252086917f5f63d5a69dddd7 --- M doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg M doc/examples/osmo-gbproxy/osmo-gbproxy.cfg M doc/manuals/chapters/gbproxy-configuration.adoc M doc/manuals/chapters/gbproxy-sgsnpool.adoc M doc/manuals/osmogbproxy-usermanual.adoc M tests/osmo-gbproxy-pool_test-nodes.vty 6 files changed, 68 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/68/23868/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I57cf5dc4ee686352252086917f5f63d5a69dddd7 Gerrit-Change-Number: 23868 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 Thu Apr 22 18:05:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 18:05:29 +0000 Subject: Change in osmo-gbproxy[master]: examples/manuals: Improve/update ns-related documentation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23868 ) Change subject: examples/manuals: Improve/update ns-related documentation ...................................................................... Patch Set 2: Code-Review+2 merging as it is clearly an improvement over the old content. we can always add incremental fixes. -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I57cf5dc4ee686352252086917f5f63d5a69dddd7 Gerrit-Change-Number: 23868 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 18:05:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 18:05:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 18:05:32 +0000 Subject: Change in osmo-gbproxy[master]: examples/manuals: Improve/update ns-related documentation In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23868 ) Change subject: examples/manuals: Improve/update ns-related documentation ...................................................................... examples/manuals: Improve/update ns-related documentation * example config files with current libosmogb options * Include NS2-related configuration chapters in manual Closes: SYS#5115 Change-Id: I57cf5dc4ee686352252086917f5f63d5a69dddd7 --- M doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg M doc/examples/osmo-gbproxy/osmo-gbproxy.cfg M doc/manuals/chapters/gbproxy-configuration.adoc M doc/manuals/chapters/gbproxy-sgsnpool.adoc M doc/manuals/osmogbproxy-usermanual.adoc M tests/osmo-gbproxy-pool_test-nodes.vty 6 files changed, 68 insertions(+), 47 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg index bbc8a1b..7457ee8 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg @@ -7,22 +7,25 @@ ! gbproxy nri bitlen 4 - nri null add 0 4 + nri null add 15 sgsn nsei 101 name main nri add 1 - nri add 11 sgsn nsei 102 nri add 2 - nri add 12 ns - bind udp local - listen 127.0.0.100 23000 - accept-ipaccess + bind udp sgsn-side + listen 127.0.0.1 23000 nse 101 - nsvc ipa local 192.168.100.239 7777 nsvci 101 + ip-sns-bind sgsn-side + ip-sns-remote 127.0.1.1 23000 nse 102 - nsvc ipa local 192.168.100.239 7778 nsvci 102 + ip-sns-bind sgsn-side + ip-sns-remote 127.0.1.2 23000 + bind udp bss-side + listen 127.0.0.100 23000 + accept-dynamic-ip-sns + ip-sns-default bind bss-side timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg index 777d0b0..3ab0d7a 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg @@ -9,11 +9,15 @@ sgsn nsei 101 name main ns - bind udp local - listen 127.0.0.100 23000 - accept-ipaccess + bind udp sgsn-side + listen 127.0.0.1 23000 nse 101 - nsvc ipa local 192.168.100.239 7777 nsvci 101 + ip-sns-bind sgsn-side + ip-sns-remote 127.0.1.1 23000 + bind udp bss-side + listen 127.0.0.100 23000 + accept-dynamic-ip-sns + ip-sns-default bind bss-side timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc index 87da471..79a508b 100644 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ b/doc/manuals/chapters/gbproxy-configuration.adoc @@ -5,29 +5,10 @@ Most config options specific to OsmoGbProxy are related to SGSN pooling and telling the proxy which NSE(s) it should use to talk to the SGSN(s). -=== Configure the Network Service (NS) - -A detailed description of the NS configuration can be found in <>. The following config snippets assume the SGSN(s) (NSEI 101 and 102) are using IP-SNS and listen on 10.0.1.1:23000 and 10.0.1.2:23000 respectively. -This would be the NS config for the SGSN(s): - -.Example: NS configuration example (SGSN) ----- -ns - bind udp local - listen 10.0.0.1 23000 <1> - nse 101 <2> - ip-sns 10.0.1.1 23000 <3> - nse 102 - ip-sns 10.0.1.2 23000 ----- -<1> Define the local IP/port from which to connect -<2> Define an NSE with NSEI -<3> Use IP-SNS to connect to the SGSN - -=== Configure an SGSN +=== Configure SGSN(s) Configuration of a single (non-pooling) SGSN is rather simple. @@ -35,7 +16,36 @@ ---- sgsn 101 <1> name Main SGSN <2> +sgsn 102 +ns + bind udp sgsn-side + listen 10.0.0.1 23000 <3> + nse 101 <4> + ip-sns-bind sgsn-side <5> + ip-sns-remote 10.0.1.1 23000 <6> + nse 102 + ip-sns-bind sgsn-side + ip-sns-remote 10.0.1.2 23000 ---- <1> Each SGSN is identified by its NSEI (same as in the NS configuration) <2> An SGSN can optionally have a name. If none is set a default name will be used. +<3> Define IP/port from which to connect +<4> Define an NSE with NSEI +<5> Use this bind to connect from +<6> Use IP-SNS to connect to the SGSN +=== Configure a socket for BSS + +The following configuration shows how to accept arbitrary BSS-NSE + +.Example: NS configuration example (NS) +---- +ns + bind udp bss-side <1> + listen 10.0.0.100 23000 + accept-dynamic-ip-sns <2> + ip-sns-default bind bss-side <3> +---- +<1> Define bind with IP/port for the BSS +<2> Allow BSS with dynamic NSE to connect to this bind +<3> Use this bind as default for dynamic NSE \ No newline at end of file diff --git a/doc/manuals/chapters/gbproxy-sgsnpool.adoc b/doc/manuals/chapters/gbproxy-sgsnpool.adoc index 61806af..cc30515 100644 --- a/doc/manuals/chapters/gbproxy-sgsnpool.adoc +++ b/doc/manuals/chapters/gbproxy-sgsnpool.adoc @@ -48,26 +48,32 @@ ==== Connecting Multiple SGSNs ---- -# Configure the Network Service +! Configure the Network Service ns bind udp sgsn listen 10.0.0.1 23000 nse 1 - ip-sns 10.0.1.1 23000 - ip-sns 10.0.1.1 23001 + ip-sns-bind sgsn + ip-sns-remote 10.0.1.1 23000 + ip-sns-remote 10.0.1.1 23001 nse 2 - ip-sns 10.0.1.2 23000 + ip-sns-bind sgsn + ip-sns-remote 10.0.1.2 23000 nse 3 - ip-sns 10.0.1.3 23000 -# configure NRI value ranges + ip-sns-bind sgsn + ip-sns-remote 10.0.1.3 23000 +! configure NRI value ranges gbproxy nri bitlen 10 nri null add 0 -sgsn 1 +sgsn nsei 1 + name SGSN01 nri add 1 341 -sgsn 2 +sgsn nsei 2 + name SGSN02 nri add 342 682 -sgsn 3 +sgsn nsei 3 + name SGSN03 nri add 683 1023 ---- @@ -184,8 +190,6 @@ that are being paged by this SGSN. But OsmoGbProxy will no longer direct new subscribers to this SGSN. -TODO: Is paging response relevant for SGSN? - To re-enable an SGSN for attaching new subscribers: ---- diff --git a/doc/manuals/osmogbproxy-usermanual.adoc b/doc/manuals/osmogbproxy-usermanual.adoc index 454cf69..193b6a4 100644 --- a/doc/manuals/osmogbproxy-usermanual.adoc +++ b/doc/manuals/osmogbproxy-usermanual.adoc @@ -21,12 +21,14 @@ include::{srcdir}/chapters/gbproxy-configuration.adoc[] +include::./common/chapters/gb-ns2-configuration.adoc[] + +include::./common/chapters/gb-ns2-configuration-timer.adoc[] + include::{srcdir}/chapters/gbproxy-sgsnpool.adoc[] include::./common/chapters/gb-ns2.adoc[] -include::./common/chapters/gb.adoc[] - include::./common/chapters/control_if.adoc[] include::{srcdir}/chapters/counters_generated.adoc[] diff --git a/tests/osmo-gbproxy-pool_test-nodes.vty b/tests/osmo-gbproxy-pool_test-nodes.vty index a741e48..84c267f 100644 --- a/tests/osmo-gbproxy-pool_test-nodes.vty +++ b/tests/osmo-gbproxy-pool_test-nodes.vty @@ -2,10 +2,8 @@ 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 ... -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I57cf5dc4ee686352252086917f5f63d5a69dddd7 Gerrit-Change-Number: 23868 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 Thu Apr 22 18:30:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 18:30:34 +0000 Subject: Change in osmo-ggsn[master]: gtp: Update teic_confirmed only on resp success In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23850 ) Change subject: gtp: Update teic_confirmed only on resp success ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I54c54cbb51bfa5d1520855f448fa27511037b396 Gerrit-Change-Number: 23850 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 18:30:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 18:31:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 18:31:20 +0000 Subject: Change in osmo-ggsn[master]: gtp: Rework parsing logic of UpdatePdpCtxResponse In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23860 ) Change subject: gtp: Rework parsing logic of UpdatePdpCtxResponse ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Idd10b494e8fbac8703c49ecd8f9bbe4246e51c57 Gerrit-Change-Number: 23860 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 18:31: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 Apr 22 18:32:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 18:32:02 +0000 Subject: Change in osmo-ggsn[master]: ggsn: Improve logging on incoming DL data packets In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 ) Change subject: ggsn: Improve logging on incoming DL data packets ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b Gerrit-Change-Number: 23861 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 18:32: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 Apr 22 18:32:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 22 Apr 2021 18:32:23 +0000 Subject: Change in osmo-ggsn[master]: gtp: Improve logging of failing pdp ctx resolution from TEI/TID In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23862 ) Change subject: gtp: Improve logging of failing pdp ctx resolution from TEI/TID ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I4f2084ec7e3a830e0224dd998ff0fe6654cc23bd Gerrit-Change-Number: 23862 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 22 Apr 2021 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 Thu Apr 22 18:35:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 18:35:46 +0000 Subject: Change in osmo-pcu[master]: sba: Drop unused function find_sba_rts References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23869 ) Change subject: sba: Drop unused function find_sba_rts ...................................................................... sba: Drop unused function find_sba_rts This function is not longer used since commit below, let's drop it. Change-Id: I633676fc3a573acd0dccdd035ffe557c9c71a56e Fixes: fd1fbdb8db4d76c2f50ccef01f99df0ef8bd8c74 --- M src/sba.c M src/sba.h 2 files changed, 0 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/69/23869/1 diff --git a/src/sba.c b/src/sba.c index ce44fa5..d293784 100644 --- a/src/sba.c +++ b/src/sba.c @@ -95,15 +95,3 @@ /* Upon timeout, the UL Controller node is already released */ sba_free_norelease(sba); } - -uint32_t find_sba_rts(struct gprs_rlcmac_pdch *pdch, uint32_t fn, uint8_t block_nr) -{ - uint32_t sba_fn = rts_next_fn(fn, block_nr); - struct gprs_rlcmac_sba *sba; - - sba = pdch_ulc_get_sba(pdch->ulc, sba_fn); - if (sba) - return sba_fn; - - return 0xffffffff; -} diff --git a/src/sba.h b/src/sba.h index 0f2fdc6..3962576 100644 --- a/src/sba.h +++ b/src/sba.h @@ -43,8 +43,6 @@ void sba_free(struct gprs_rlcmac_sba *sba); void sba_timeout(struct gprs_rlcmac_sba *sba); -uint32_t find_sba_rts(struct gprs_rlcmac_pdch *pdch, uint32_t fn, uint8_t block_nr); - #ifdef __cplusplus } #endif -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I633676fc3a573acd0dccdd035ffe557c9c71a56e Gerrit-Change-Number: 23869 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 Apr 22 18:35:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 18:35:47 +0000 Subject: Change in osmo-pcu[master]: pdch: rcv_resource_request: Improve robustness References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23870 ) Change subject: pdch: rcv_resource_request: Improve robustness ...................................................................... pdch: rcv_resource_request: Improve robustness Use recently added PDCH UL Controller to verify expectancies. Test test_packet_access_rej_prr is rewritten since it didn't make sense as it was before, since it relied on osmo-pcu not checking stuff properly to trigger the reject. The RACH requests are changed to allocate 8 SBAs (maximum of 7 concurrent USFs). Allocating the SBA doesn't reserve a USF, that happens at PKT RESOURCE REQUEST, hence we end up exhausting resources there and triggering the REJECT at that point. Previous version of the patch allocated TBFs directly through RACH req, and then submitted an extra PKT RESOURCE REQUEST which PCU didn't expect to trigger the reject. Change-Id: I157e72160317340ee7742c78c62a25d3d98fc01e --- M src/pdch.cpp M src/pdch_ul_controller.h M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 4 files changed, 390 insertions(+), 178 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/70/23870/1 diff --git a/src/pdch.cpp b/src/pdch.cpp index 0d9ebf2..baac0f7 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -594,37 +594,76 @@ struct gprs_rlcmac_sba *sba; if (request->ID.UnionType) { - struct gprs_rlcmac_ul_tbf *ul_tbf; + struct gprs_rlcmac_ul_tbf *ul_tbf = NULL; + struct pdch_ulc_node *item; uint32_t tlli = request->ID.u.TLLI; - bool ms_found = true; GprsMs *ms = bts_ms_by_tlli(bts(), tlli, GSM_RESERVED_TMSI); if (!ms) { - ms_found = false; ms = bts_alloc_ms(bts(), 0, 0); /* ms class updated later */ ms_set_tlli(ms, tlli); } - ul_tbf = ms_ul_tbf(ms); /* hence ul_tbf may be NULL */ /* Keep the ms, even if it gets idle temporarily */ ms_ref(ms); - LOGPDCH(this, DRLCMAC, LOGL_DEBUG, "MS requests UL TBF " - "in packet resource request of single " - "block, so we provide one:\n"); - sba = pdch_ulc_get_sba(this->ulc, fn); - if (sba) { + if (!(item = pdch_ulc_get_node(ulc, fn))) { + LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "FN=%u PKT RESOURCE REQ: " + "UL block not reserved\n", fn); + goto return_unref; + } + + switch (item->type) { + case PDCH_ULC_NODE_SBA: + sba = item->sba.sba; + LOGPDCH(this, DRLCMAC, LOGL_DEBUG, "FN=%u PKT RESOURCE REQ: " + "MS requests UL TBF throguh SBA\n", fn); ms_set_ta(ms, sba->ta); sba_free(sba); - } else if (!ul_tbf || !ul_tbf->state_is(GPRS_RLCMAC_FINISHED)) { - LOGPTBFUL(ul_tbf, LOGL_NOTICE, - "MS requests UL TBF in PACKET RESOURCE REQ of " - "single block, but there is no resource request " - "scheduled!\n"); + break; + case PDCH_ULC_NODE_TBF_POLL: + if (item->tbf_poll.poll_tbf->direction != GPRS_RLCMAC_UL_TBF) { + LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "FN=%u PKT RESOURCE REQ: " + "Unexpectedly received for DL TBF %s\n", fn, + tbf_name(item->tbf_poll.poll_tbf)); + /* let common path expire the poll */ + goto return_unref; + } + ul_tbf = (struct gprs_rlcmac_ul_tbf *)item->tbf_poll.poll_tbf; + if (item->tbf_poll.reason != PDCH_ULC_POLL_UL_ACK) { + LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "FN=%u PKT RESOURCE REQ: " + "Unexpectedly received, waiting for poll reason %d\n", + fn, item->tbf_poll.reason); + /* let common path expire the poll */ + goto return_unref; + } + if (ul_tbf != ms_ul_tbf(ms)) { + LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "FN=%u PKT RESOURCE REQ: " + "Unexpected TLLI 0x%08x received vs exp 0x%08x\n", + fn, tlli, ul_tbf->tlli()); + /* let common path expire the poll */ + goto return_unref; + } + /* 3GPP TS 44.060 $ 9.3.3.3 */ + LOGPTBFUL(ul_tbf, LOGL_DEBUG, "FN=%u PKT RESOURCE REQ: " + "MS requests reuse of finished UL TBF in RRBP " + "block of final UL ACK/NACK\n", fn); + ul_tbf->n_reset(N3103); + pdch_ulc_release_node(ulc, item); + break; + case PDCH_ULC_NODE_TBF_USF: + /* Is it actually valid for an MS to send a PKT Res Req during USF? */ + ul_tbf = item->tbf_usf.ul_tbf; + LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "FN=%u PKT RESOURCE REQ: " + "Unexpectedly received, waiting USF of %s\n", + fn, tbf_name(item->tbf_usf.ul_tbf)); + pdch_ulc_release_node(ulc, item); + break; + default: + OSMO_ASSERT(0); } - /* else: Resource Request can be received even if not scheduled - by the network since it's used by MS to re-establish a new UL - TBF when last one has finished. */ + + /* here ul_tbf may be NULL in SBA case (no previous TBF) */ if (request->Exist_MS_Radio_Access_capability2) { uint8_t ms_class, egprs_ms_class; @@ -637,7 +676,7 @@ } /* Get rid of previous finished UL TBF before providing a new one */ - if (ms_found && ul_tbf) { + if (ul_tbf) { if (!ul_tbf->state_is(GPRS_RLCMAC_FINISHED)) LOGPTBFUL(ul_tbf, LOGL_NOTICE, "Got PACKET RESOURCE REQ while TBF not finished, killing pending UL TBF\n"); @@ -660,10 +699,8 @@ TBF_SET_ASS_STATE_UL(ul_tbf, GPRS_RLCMAC_UL_ASS_SEND_ASS); /* get measurements */ - if (ul_tbf->ms()) { - get_meas(meas, request); - ms_update_l1_meas(ul_tbf->ms(), meas); - } + get_meas(meas, request); + ms_update_l1_meas(ul_tbf->ms(), meas); return_unref: ms_unref(ms); return; diff --git a/src/pdch_ul_controller.h b/src/pdch_ul_controller.h index ff60d2f..776f5ba 100644 --- a/src/pdch_ul_controller.h +++ b/src/pdch_ul_controller.h @@ -55,7 +55,7 @@ enum pdch_ulc_tbf_poll_reason { PDCH_ULC_POLL_UL_ASS, /* Expect CTRL ACK for UL ASS we transmit */ PDCH_ULC_POLL_DL_ASS, /* Expect CTRL ACK for DL ASS we transmit */ - PDCH_ULC_POLL_UL_ACK, /* Expect CTRL ACK for UL ACK/NACK we transmit */ + PDCH_ULC_POLL_UL_ACK, /* Expect CTRL ACK (or PKT RES REQ on final UL ACK/NACK) for UL ACK/NACK we transmit */ PDCH_ULC_POLL_DL_ACK, /* Expect DL ACK/NACK requested by RRBP */ PDCH_ULC_POLL_CELL_CHG_CONTINUE, /* Expect CTRL ACK for Pkt cell Change Continue we transmit */ }; diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 5ce2611..c839ee0 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3214,44 +3214,44 @@ /* * Trigger rach till resources(USF) exhaust */ - rc = bts_handle_rach(bts, 0x78, rach_fn, qta); - rc = bts_handle_rach(bts, 0x79, rach_fn, qta); - rc = bts_handle_rach(bts, 0x7a, rach_fn, qta); - rc = bts_handle_rach(bts, 0x7b, rach_fn, qta); - rc = bts_handle_rach(bts, 0x7c, rach_fn, qta); - rc = bts_handle_rach(bts, 0x7d, rach_fn, qta); - rc = bts_handle_rach(bts, 0x7e, rach_fn, qta); - - /* fake a resource request */ - ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; - presreq = &ulreq.u.Packet_Resource_Request; - presreq->PayloadType = GPRS_RLCMAC_CONTROL_BLOCK; - presreq->ID.UnionType = 1; /* != 0 */ - presreq->ID.u.TLLI = tlli; - presreq->Exist_MS_Radio_Access_capability2 = 1; - pmsradiocap = &presreq->MS_Radio_Access_capability2; - pmsradiocap->Count_MS_RA_capability_value = 1; - pmsradiocap->MS_RA_capability_value[0].u.Content. - Exist_Multislot_capability = 1; - pmultislotcap = &pmsradiocap->MS_RA_capability_value[0]. - u.Content.Multislot_capability; - - pmultislotcap->Exist_GPRS_multislot_class = 1; - pmultislotcap->GPRS_multislot_class = ms_class; - if (egprs_ms_class) { - pmultislotcap->Exist_EGPRS_multislot_class = 1; - pmultislotcap->EGPRS_multislot_class = egprs_ms_class; + int i; + for (i = 0; i < 8; i++) { + rc = bts_handle_rach(bts, 0x70 + i, rach_fn, qta); } - send_ul_mac_block(bts, trx_no, ts_no, &ulreq, sba_fn); + sba_fn = 52; + for (i = 0; i < 8; i++) { + /* fake a resource request */ + ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; + presreq = &ulreq.u.Packet_Resource_Request; + presreq->PayloadType = GPRS_RLCMAC_CONTROL_BLOCK; + presreq->ID.UnionType = 1; /* != 0 */ + presreq->ID.u.TLLI = tlli + i; + presreq->Exist_MS_Radio_Access_capability2 = 1; + pmsradiocap = &presreq->MS_Radio_Access_capability2; + pmsradiocap->Count_MS_RA_capability_value = 1; + pmsradiocap->MS_RA_capability_value[0].u.Content. + Exist_Multislot_capability = 1; + pmultislotcap = &pmsradiocap->MS_RA_capability_value[0]. + u.Content.Multislot_capability; - /* trigger packet access reject */ - uint8_t bn = fn2bn(fn); + pmultislotcap->Exist_GPRS_multislot_class = 1; + pmultislotcap->GPRS_multislot_class = ms_class; + if (egprs_ms_class) { + pmultislotcap->Exist_EGPRS_multislot_class = 1; + pmultislotcap->EGPRS_multislot_class = egprs_ms_class; + } - rc = gprs_rlcmac_rcv_rts_block(bts, - trx_no, ts_no, fn, bn); + send_ul_mac_block(bts, trx_no, ts_no, &ulreq, sba_fn); + sba_fn = fn_next_block(sba_fn); - OSMO_ASSERT(rc == 0); + /* trigger packet access reject */ + uint8_t bn = fn2bn(fn); + + rc = gprs_rlcmac_rcv_rts_block(bts, + trx_no, ts_no, fn, bn); + OSMO_ASSERT(rc == 0); + } TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index b190c9a..450edc0 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1517,7 +1517,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -1601,7 +1601,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -1746,7 +1746,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654348 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf5667788, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654348 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf5667788, TA 220 -> 7 Modifying MS object, TLLI = 0xf5667788, MS class 0 -> 1 MS(TLLI=0xf5667788, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -1825,7 +1825,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -1914,7 +1914,7 @@ Detected FN jump! 2654275 -> 2654327 PDCH(bts=0,trx=0,ts=7) FN=2654327 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654327 ------------------------- RX : Uplink Control Block ------------------------- -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654327 PKT RESOURCE REQ: MS requests UL TBF throguh SBA MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, DL) ********** UL-TBF starts here ********** MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, DL) Allocating UL TBF [UL] algo A (suggested TRX: 0): Alloc start @@ -1971,7 +1971,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -2118,7 +2118,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -3243,7 +3243,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 Modifying MS object, TLLI = 0xf1223344, EGPRS MS class 0 -> 1 @@ -3335,7 +3335,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 Modifying MS object, TLLI = 0xf1223344, EGPRS MS class 0 -> 1 @@ -5930,7 +5930,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 Modifying MS object, TLLI = 0xf1223344, EGPRS MS class 0 -> 1 @@ -6095,7 +6095,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 Modifying MS object, TLLI = 0xf1223344, EGPRS MS class 0 -> 1 @@ -6420,7 +6420,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 Modifying MS object, TLLI = 0xf1223344, EGPRS MS class 0 -> 1 @@ -7845,11 +7845,51 @@ packet reject: 40 84 7f f7 6e e6 41 4b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b === end test_packet_access_rej_epdan === === start test_packet_access_rej_prr === -MS requests Uplink resource on CCCH/RACH: ra=0x78 (8 bit) Fn=2654167 qta=31 +MS requests Uplink resource on CCCH/RACH: ra=0x70 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=52 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x71 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=56 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x72 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=60 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=65 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x74 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=69 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x75 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=73 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x76 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=78 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x77 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=82 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Detected FN jump! 2654167 -> 52 +PDCH(bts=0,trx=0,ts=7) FN=52 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=52 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddcc, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=52 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddcc, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddcc, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddcc, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7858,20 +7898,35 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=0 USF=0 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 -MS requests Uplink resource on CCCH/RACH: ra=0x79 (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS), 1 TBFs, USFs = 01, TFIs = 00000001. +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=52 +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=56 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=56 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddcd, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=56 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddcd, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddcd, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddcd, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7880,20 +7935,40 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=1 USF=1 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL), 2 TBFs, USFs = 03, TFIs = 00000003. -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=1 USF=1 -MS requests Uplink resource on CCCH/RACH: ra=0x7a (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS), 2 TBFs, USFs = 03, TFIs = 00000003. +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=56 +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=56 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 56) +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=60 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=60 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddce, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=60 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddce, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddce, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddce, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7902,20 +7977,40 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=2 USF=2 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL), 3 TBFs, USFs = 07, TFIs = 00000007. -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=2 USF=2 -MS requests Uplink resource on CCCH/RACH: ra=0x7b (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS), 3 TBFs, USFs = 07, TFIs = 00000007. +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=60 +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=60 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 60) +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=65 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=65 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddcf, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=65 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddcf, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddcf, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddcf, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7924,20 +8019,40 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=3 USF=3 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL), 4 TBFs, USFs = 0f, TFIs = 0000000f. -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=3 USF=3 -MS requests Uplink resource on CCCH/RACH: ra=0x7c (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS), 4 TBFs, USFs = 0f, TFIs = 0000000f. +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=65 +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=65 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 65) +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=69 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=69 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddd0, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=69 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddd0, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddd0, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddd0, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7946,20 +8061,40 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=4 USF=4 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL), 5 TBFs, USFs = 1f, TFIs = 0000001f. -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=4 USF=4 -MS requests Uplink resource on CCCH/RACH: ra=0x7d (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS), 5 TBFs, USFs = 1f, TFIs = 0000001f. +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=69 +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=69 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 69) +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=73 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=73 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddd1, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=73 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddd1, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddd1, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddd1, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7968,20 +8103,40 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=5 USF=5 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL), 6 TBFs, USFs = 3f, TFIs = 0000003f. -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=5 USF=5 -MS requests Uplink resource on CCCH/RACH: ra=0x7e (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS), 6 TBFs, USFs = 3f, TFIs = 0000003f. +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=73 +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=73 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 73) +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=78 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=78 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddd2, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=78 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddd2, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddd2, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddd2, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7990,27 +8145,39 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=6 USF=6 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL), 7 TBFs, USFs = 7f, TFIs = 0000007f. -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=6 USF=6 -Detected FN jump! 2654167 -> 2654270 -PDCH(bts=0,trx=0,ts=7) FN=2654270 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ -PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS), 7 TBFs, USFs = 7f, TFIs = 0000007f. +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=78 +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=78 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 78) +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=82 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=82 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddcc, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: -(no TBF) MS requests UL TBF in PACKET RESOURCE REQ of single block, but there is no resource request scheduled! -Modifying MS object, TLLI = 0xffeeddcc, MS class 0 -> 11 -Modifying MS object, TLLI = 0xffeeddcc, EGPRS MS class 0 -> 11 -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 11/11,) Enabled EGPRS, mode EGPRS -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 11/11,) ********** UL-TBF starts here ********** -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 11/11,) Allocating UL TBF +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddd3, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=82 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddd3, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddd3, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddd3, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) Allocating UL TBF [UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -8021,14 +8188,22 @@ - Skipping TS 6, because not enabled - Skipping TS 7, because no USF available [UL] algo A (suggested TRX: 0): failed to allocate a TS, no USF available -TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) Timeslot Allocation failed: trx = 0, single_slot = 0 -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 11/11,) No PDCH resource -TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL) changes state from NULL to ASSIGN -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 11/11,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) -TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ -Received RTS for PDCH: TRX=0 TS=7 FN=2654218 block_nr=8 scheduling USF=0 for required uplink resource of UL TFI=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) starting timer T0 [reject (PACCH)] with 0 sec. 2000 microsec, cur_fn=2654270 -PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) +TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=NULL EGPRS) Timeslot Allocation failed: trx = 0, single_slot = 0 +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) No PDCH resource +TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=NULL) changes state from NULL to ASSIGN +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=ASSIGN) +TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ +PDCH(bts=0,trx=0,ts=7) Expiring FN=82 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 82) +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) === end test_packet_access_rej_prr === === start test_packet_access_rej_prr_no_other_tbfs === Creating MS object, TLLI = 0xffffffff -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I157e72160317340ee7742c78c62a25d3d98fc01e Gerrit-Change-Number: 23870 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 Apr 22 18:40:47 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 18:40:47 +0000 Subject: Change in osmo-bts[master]: Abis manual: add VAMOS to BTS features In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23848 ) Change subject: Abis manual: add VAMOS to BTS features ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23848/1/doc/manuals/abis/oml.adoc File doc/manuals/abis/oml.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23848/1/doc/manuals/abis/oml.adoc at 880 PS1, Line 880: (CCN) > unrelated interesting, I don't even recall that I added this... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f Gerrit-Change-Number: 23848 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 18:40:47 +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 Apr 22 18:46:01 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 18:46:01 +0000 Subject: Change in osmo-bts[master]: Abis manual: add Get Attributes, add BTS features 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-bts/+/23847 to look at the new patch set (#2). Change subject: Abis manual: add Get Attributes, add BTS features ...................................................................... Abis manual: add Get Attributes, add BTS features Change-Id: I99631272334537ab49ba8c530240aaeb67dde9d7 --- M doc/manuals/abis/oml.adoc 1 file changed, 107 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/47/23847/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99631272334537ab49ba8c530240aaeb67dde9d7 Gerrit-Change-Number: 23847 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Apr 22 18:46:01 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 18:46:01 +0000 Subject: Change in osmo-bts[master]: Abis manual: add VAMOS to BTS features In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/23848 to look at the new patch set (#2). Change subject: Abis manual: add VAMOS to BTS features ...................................................................... Abis manual: add VAMOS to BTS features Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f --- M doc/manuals/abis/oml.adoc 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/48/23848/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f Gerrit-Change-Number: 23848 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 18:46:27 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 18:46:27 +0000 Subject: Change in osmo-bts[master]: Abis manual: add Get Attributes, add BTS features In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23847 ) Change subject: Abis manual: add Get Attributes, add BTS features ...................................................................... Patch Set 2: Code-Review+2 re-add previous +2 after trivial tweak -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99631272334537ab49ba8c530240aaeb67dde9d7 Gerrit-Change-Number: 23847 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 18:46: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 Apr 22 18:46:53 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 18:46:53 +0000 Subject: Change in osmo-bts[master]: Abis manual: add VAMOS to BTS features In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23848 ) Change subject: Abis manual: add VAMOS to BTS features ...................................................................... Patch Set 2: Code-Review+2 re-add previous +2 after trivial tweak -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f Gerrit-Change-Number: 23848 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 18:46: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 Apr 22 18:47:19 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 18:47:19 +0000 Subject: Change in osmo-bts[master]: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23849 ) Change subject: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE ...................................................................... Patch Set 3: Code-Review+2 combine 2x +1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 Gerrit-Change-Number: 23849 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 22 Apr 2021 18:47:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 18:48:38 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 18:48:38 +0000 Subject: Change in osmo-gsm-manuals[master]: bib: add reference to 3GPP TS 45.002, for Training Sequence definitions In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23842 ) Change subject: bib: add reference to 3GPP TS 45.002, for Training Sequence definitions ...................................................................... Patch Set 1: Code-Review+2 add +2 myself for trivial patch -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23842 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: I2d72bff8496d7b3a0ad59ce28d6be0fd3f842839 Gerrit-Change-Number: 23842 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 22 Apr 2021 18:48: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 Apr 22 18:48:56 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 18:48:56 +0000 Subject: Change in osmo-gsm-manuals[master]: bib: add reference to 3GPP TS 45.002, for Training Sequence definitions In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23842 ) Change subject: bib: add reference to 3GPP TS 45.002, for Training Sequence definitions ...................................................................... bib: add reference to 3GPP TS 45.002, for Training Sequence definitions Change-Id: I2d72bff8496d7b3a0ad59ce28d6be0fd3f842839 --- M common/chapters/bibliography.adoc 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc index 67f0cb9..df69c44 100644 --- a/common/chapters/bibliography.adoc +++ b/common/chapters/bibliography.adoc @@ -126,6 +126,10 @@ - [[[3gpp-ts-44-064]]] 3GPP TS 44.064: Mobile Station - Serving GPRS Support Node (MS-SGSN); Logical Link Control (LLC) Layer Specification https://www.3gpp.org/DynaReport/44064.htm +- [[[3gpp-ts-45-002]]] 3GPP TS 45.002: Digital cellular telecommunications + system (Phase 2+) (GSM); GSM/EDGE Multiplexing and multiple access on the + radio path + https://www.3gpp.org/DynaReport/45002.htm - [[[3gpp-ts-48-008]]] 3GPP TS 48.008: Mobile Switching Centre - Base Station system (MSC-BSS) interface; Layer 3 specification https://www.3gpp.org/DynaReport/48008.htm -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23842 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: I2d72bff8496d7b3a0ad59ce28d6be0fd3f842839 Gerrit-Change-Number: 23842 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 18:49:44 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 18:49:44 +0000 Subject: Change in libosmocore[master]: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23804 ) Change subject: gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect ...................................................................... gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20 has value 0x0002, so the '& 0xff' had exactly no effect. Change-Id: Ia25ac20539e8ac70fb5f70c1191bd58825151c68 --- M src/gsm/gsm0808_utils.c 1 file changed, 1 insertion(+), 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/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c index dda73ad..94c9a79 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -1579,7 +1579,7 @@ /* Rate 5,15k can never be selected (see table) */ cfg->m5_15 = 0; - if (s15_s0 & GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20 & 0xff) { + if (s15_s0 & GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20) { /* Table Table 7.11.3.1.3-2 lists one mode that selects 4 * rates at once (Config-NB-Code = 1). The rates selected * are known to be compatible between GERAN and UTRAN, since -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia25ac20539e8ac70fb5f70c1191bd58825151c68 Gerrit-Change-Number: 23804 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Apr 22 18:50:32 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 18:50:32 +0000 Subject: Change in osmo-bsc[master]: update neighbor ARFCNs on startup and config changes In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23785 ) Change subject: update neighbor ARFCNs on startup and config changes ...................................................................... update neighbor ARFCNs on startup and config changes The effects of the neighbor configuration depend on the LAC, Cell Identity, ARFCN, BSIC configuration of neighbor cells. Make sure that the neighbor ARFCN list in the System Information is updated. This may seem rather aggressive: updating the SI of all BTS if only one config item changed. But indeed even modifying one config item of one BTS may cause a change in the neighbor relations that many other BTS may have to the changed BTS. For example, if many BTS configure a 'neighbor lac-ci 42 23', and this cell's config changes to LAC 43, all of those other BTS need to update their neighbor ARFCNs. Also update the system information even before the BTS are connected and started up. The main benefit here is that the VTY 'show bts N' command then already lists the correct neighbor ARFCNs. In gsm_bts_trx_set_system_infos(), make sure that the updated SI is only sent to TRXes that are actually usable, otherwise abis_rsl_sendmsg() spams the log with complaints that a message's dst == NULL. Still return an error rc in case a TRX is not connected, so that the CTRL command bts.N.send-new-system-informations accurately returns whether SI were actually sent to all TRXes. The desire to have the ARFCNs listed in the VTY before starting up BTSes came during analysis for Ifb54d9a91e9bca032c721f12c873c6216733e7b1, which fixes a bug that is now much easier to verify being fixed. Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_trx.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c 7 files changed, 48 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/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index bcc215d..58ca104 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -671,6 +671,7 @@ int bts_count_free_ts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan); int gsm_bts_set_system_infos(struct gsm_bts *bts); +int gsm_net_set_system_infos(void); int gsm_bts_model_register(struct gsm_bts_model *model); struct gsm_bts_model *bts_model_find(enum gsm_bts_type type); diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c index b572f27..cd97695 100644 --- a/src/osmo-bsc/bsc_init.c +++ b/src/osmo-bsc/bsc_init.c @@ -168,3 +168,15 @@ return bts; } + +int gsm_net_set_system_infos(void) +{ + struct gsm_bts *bts; + int ret = 0; + llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { + int rc = gsm_bts_set_system_infos(bts); + if (rc) + ret = rc; + } + return ret; +} diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 3c60f5f..1a6cf0a 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2448,6 +2448,11 @@ } bts->cell_identity = ci; + /* Changing the CI of a BTS may affect the neighbor relations between cells, when other cells indicate a + * neighbor cell by CI. Update the neighbors list in System Information. */ + if (vty->type != VTY_FILE) + gsm_net_set_system_infos(); + return CMD_SUCCESS; } @@ -2474,6 +2479,11 @@ bts->location_area_code = lac; + /* Changing the LAC of a BTS may affect the neighbor relations between cells, when other cells indicate a + * neighbor cell by LAC. Update the neighbors list in System Information. */ + if (vty->type != VTY_FILE) + gsm_net_set_system_infos(); + return CMD_SUCCESS; } @@ -2504,6 +2514,9 @@ } bts->bsic = bsic; + if (vty->type != VTY_FILE) + gsm_net_set_system_infos(); + return CMD_SUCCESS; } @@ -5347,7 +5360,9 @@ return CMD_WARNING; } - /* FIXME: patch ARFCN into SYSTEM INFORMATION */ + if (vty->type != VTY_FILE) + gsm_net_set_system_infos(); + /* FIXME: use OML layer to update the ARFCN */ /* FIXME: use RSL layer to update SYSTEM INFORMATION */ diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 2192c56..08587d7 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -722,6 +722,7 @@ int gsm_bts_set_system_infos(struct gsm_bts *bts) { struct gsm_bts_trx *trx; + int ret = 0; /* Generate a new ID */ bts->bcch_change_mark += 1; @@ -732,10 +733,10 @@ rc = gsm_bts_trx_set_system_infos(trx); if (rc != 0) - return rc; + ret = rc; } - return 0; + return ret; } const struct rate_ctr_desc bts_ctr_description[] = { diff --git a/src/osmo-bsc/bts_trx.c b/src/osmo-bsc/bts_trx.c index 6d98929..d67c9a1 100644 --- a/src/osmo-bsc/bts_trx.c +++ b/src/osmo-bsc/bts_trx.c @@ -429,6 +429,10 @@ /* Third, we send the selected SI via RSL */ + /* If the BTS is not up and running yet, don't send anything. */ + if (!trx_is_usable(trx)) + return -1; + for (n = 0; n < n_si; n++) { i = gen_si[n]; /* 3GPP TS 08.58 ?8.5.1 BCCH INFORMATION. If we don't currently diff --git a/src/osmo-bsc/neighbor_ident_vty.c b/src/osmo-bsc/neighbor_ident_vty.c index b9160ec..12aca9d 100644 --- a/src/osmo-bsc/neighbor_ident_vty.c +++ b/src/osmo-bsc/neighbor_ident_vty.c @@ -183,6 +183,10 @@ neighbor = talloc_zero(bts, struct neighbor); *neighbor = *n; llist_add_tail(&neighbor->entry, &bts->neighbors); + + if (vty->type != VTY_FILE) + gsm_bts_set_system_infos(bts); + return CMD_SUCCESS; } @@ -213,6 +217,10 @@ llist_del(&neighbor->entry); talloc_free(neighbor); + + if (vty->type != VTY_FILE) + gsm_bts_set_system_infos(bts); + return CMD_SUCCESS; } diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 3069cc0..fd41b74 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -942,6 +942,10 @@ exit(1); } + /* Make the 'show bts' information list the neighbor ARFCNs by updating the + * system_information.si_common.neigh_list. */ + gsm_net_set_system_infos(); + /* start control interface after reading config for * ctrl_vty_get_bind_addr() */ bsc_gsmnet->ctrl = bsc_controlif_setup(bsc_gsmnet, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef Gerrit-Change-Number: 23785 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 19:06:22 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 19:06:22 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... Patch Set 2: (1 comment) the port endianness remains unchanged by this patch, as fixeria accurately points out https://gerrit.osmocom.org/c/osmo-bsc/+/23730/2/src/osmo-bsc/abis_nm.c File src/osmo-bsc/abis_nm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23730/2/src/osmo-bsc/abis_nm.c at 3030 PS2, Line 3030: msgb_tv_fixed_put > Can we use msgb_tv32_put() here instead? so yes, here we could drop the line above (ia.s_addr = htonl(ip)) and use msgb_tv32_put(), but 'ia' is still used for logging below as inet_ntoa(ia) which needs s_addr in network byte order. I'd rather keep this patch as small/trivial as possible so would rather leave it like this. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 22 Apr 2021 19:06:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 19:06:39 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 19:06:39 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr In-Reply-To: References: Message-ID: neels has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... Removed Code-Review-1 by laforge -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 19:09:21 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 19:09:21 +0000 Subject: Change in osmo-bsc[master]: manual: Location Services: clarify BSC side address In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22081 ) Change subject: manual: Location Services: clarify BSC side address ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22081/1/doc/manuals/chapters/smlc.adoc File doc/manuals/chapters/smlc.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/22081/1/doc/manuals/chapters/smlc.adoc at 65 PS1, Line 65: For the BSC side, it suffices to configure a point-code in the `cs7` section, : so that the BSC typically uses the same point-code on A and Lb interfaces > do we really support that? Yes, we *should*, but thinking of how osmo-stp works, I'm currently not [?] I'm fairly sure that I actually tried it and saw that it works before writing this, on M3UA. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb Gerrit-Change-Number: 22081 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 19:09:21 +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 Apr 22 19:13:16 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 22 Apr 2021 19:13:16 +0000 Subject: Change in osmo-bsc[master]: manual: Location Services: clarify BSC side address 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/+/22081 to look at the new patch set (#2). Change subject: manual: Location Services: clarify BSC side address ...................................................................... manual: Location Services: clarify BSC side address A clarification that I promised a while back but forgot to submit. Related: SYS#4876 Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb --- M doc/manuals/chapters/smlc.adoc 1 file changed, 19 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/22081/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb Gerrit-Change-Number: 22081 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Apr 22 19:13:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 19:13:26 +0000 Subject: Change in osmo-pcu[master]: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23871 ) Change subject: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING ...................................................................... pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING During RELEASING state the TFI, USFs, etc. are still reserved and assigned to the TBF, and hence the TBF may still use it. If callers of this function rely on not taking TBFs under RELEASING state, they should check that explicitly. It still makes sense being to operate on RELEASING TBFs, since under some circumstances the TBF may go under a previous state. See for instance 3GPP TS 44.060 sec 8.1.1.3a.2: """ If N3101 reaches the value N3101max, the network shall stop sending PACKET UPLINK ACK/NACK messages to the mobile station for that TBF and shall start timer T3169 for the TBF. If an RLC/MAC block is received from the TBF when timer T3169 is running, the network shall stop timer T3169 and resume sending PACKET UPLINK ACK/NACK messages to the TBF. When T3169 expires, the network may consider the TBF as released and reuse the TFI value. """ Change-Id: Ibb471e727388512d42794d3faa26597e2545b852 --- M src/pdch.cpp 1 file changed, 1 insertion(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/71/23871/1 diff --git a/src/pdch.cpp b/src/pdch.cpp index baac0f7..76ca1d0 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1044,14 +1044,7 @@ tbf = m_tbfs[dir][tfi]; - if (!tbf) - return NULL; - - if (tbf->state_is_not(GPRS_RLCMAC_RELEASING)) { - return tbf; - } - - return NULL; + return tbf; } void gprs_rlcmac_pdch::attach_tbf(gprs_rlcmac_tbf *tbf) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibb471e727388512d42794d3faa26597e2545b852 Gerrit-Change-Number: 23871 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 Apr 22 19:13:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 22 Apr 2021 19:13:27 +0000 Subject: Change in osmo-pcu[master]: Stop abusing T3169 References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23872 ) Change subject: Stop abusing T3169 ...................................................................... Stop abusing T3169 Now that we finally handle N3101 and N3103 correctly, we can fix abuse of T3169 we were doing to make sure TBFs were freed. According to 3GPP TS 44.060, T3169 should be armed: * N3101_MAX reached * N3103_MAX reached Furthermore, when T3169 is enabled, the tbf should be in state RELEASING so that its USF is not used. TODO: There's a specific case where RELEASING state can go back to working state: """ If N3101 reaches the value N3101max, the network shall stop sending PACKET UPLINK ACK/NACK messages to the mobile station for that TBF and shall start timer T3169 for the TBF. If an RLC/MAC block is received from the TBF when timer T3169 is running, the network shall stop timer T3169 and resume sending PACKET UPLINK ACK/NACK messages to the TBF. When T3169 expires, the network may consider the TBF as released and reuse the TFI value. """ See full description: https://osmocom.org/issues/5033#note-2 Related: OS#5033 Change-Id: I2cec531e2633281b88f69ba065c0105580c81076 --- M src/bts.cpp M src/tbf_ul.cpp M tests/tbf/TbfTest.err 3 files changed, 8 insertions(+), 247 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/72/23872/1 diff --git a/src/bts.cpp b/src/bts.cpp index b61c6b4..3d935a1 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -876,7 +876,6 @@ tbf->set_ta(ta); TBF_SET_STATE(tbf, GPRS_RLCMAC_FLOW); TBF_ASS_TYPE_SET(tbf, GPRS_RLCMAC_FLAG_CCCH); - T_START(tbf, T3169, 3169, "RACH (new UL-TBF)", true); trx_no = tbf->trx->trx_no; ts_no = tbf->first_ts; usf = tbf->m_usf[ts_no]; diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index ff291ef..7a4e3a3 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -156,7 +156,6 @@ } tbf->m_contention_resolution_done = 1; TBF_SET_ASS_ON(tbf, GPRS_RLCMAC_FLAG_PACCH, false); - T_START(tbf, T3169, 3169, "allocation (UL-TBF)", true); tbf->update_ms(tlli, GPRS_RLCMAC_UL_TBF); OSMO_ASSERT(tbf->ms()); @@ -361,9 +360,6 @@ uint32_t new_tlli = GSM_RESERVED_TMSI; unsigned int block_idx; - /* restart T3169 */ - T_START(this, T3169, 3169, "acked (data)", true); - /* Increment RX-counter */ this->m_rx_counter++; update_coding_scheme_counter_ul(rlc->cs); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 450edc0..4b38aec 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1457,13 +1457,11 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654167 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xffffffff, IMSI=, TA=7, 0/0, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: CS-1 -> CS-2 -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654167 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=0, BSN=0, SPB=0, PI=0, E=1, TI=1, bitoffs=24 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) data_length=20, data=f1 22 33 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1536,7 +1534,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654270 + 13 = 2654283 @@ -1556,7 +1553,6 @@ PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1620,7 +1616,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654270 + 13 = 2654283 @@ -1640,7 +1635,6 @@ PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1765,7 +1759,6 @@ TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf5667788, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=NULL) TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654348 TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS PDCH(bts=0,trx=0,ts=7) Expiring FN=2654348 but previous FN=2654301 is still reserved! @@ -1797,7 +1790,6 @@ PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=1, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654353 Rx UL DATA from unexpected TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) UL DATA TFI=1 received (V(Q)=0 .. V(R)=0) -TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654353 TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1809,7 +1801,13 @@ IMSI 0011223344, old TBF TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED): moving DL TBF to new MS object MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) MS(TLLI=0xf5667788, IMSI=, TA=7, 1/0, UL) Attaching DL TBF: TBF(TFI=0 TLLI=0xf5667788 DIR=DL STATE=FINISHED) -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL) Clearing MS object +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL) UL RSSI: 31 dBm +TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) free +PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 1 TBFs, USFs = 02, TFIs = 00000002. +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0,) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) +********** UL-TBF ends here ********** +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0,) Clearing MS object +MS(TLLI=0xffffffff, IMSI=, TA=7, 1/0,) Destroying MS object Modifying MS object, TLLI: 0xf5667788 confirmed TBF(TFI=0 TLLI=0xf5667788 DIR=DL STATE=FINISHED) appending 4 bytes New MS: TLLI = 0xf5667788, TA = 7, IMSI = 0011223344, LLC = 1 @@ -1844,7 +1842,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: CS-1 -> CS-2 @@ -1866,7 +1863,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: CS-2 -> CS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1902,7 +1898,6 @@ Old MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) UL RSSI: 31 dBm TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) free -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) stopping timer T3169 [freeing TBF] PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) ********** UL-TBF ends here ********** @@ -1931,7 +1926,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, DL) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654327 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654327 + 13 = 2654340 @@ -1951,7 +1945,6 @@ PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654331 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654331 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1990,7 +1983,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: CS-1 -> CS-2 @@ -2012,7 +2004,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: CS-2 -> CS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -2048,7 +2039,6 @@ Old MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) UL RSSI: 31 dBm TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) free -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) stopping timer T3169 [freeing TBF] PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) ********** UL-TBF ends here ********** @@ -2073,13 +2063,11 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654275 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xffffffff, IMSI=, TA=7, 0/0, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: CS-1 -> CS-2 -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=0, BSN=0, SPB=0, PI=0, E=1, TI=1, bitoffs=24 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) data_length=20, data=f1 22 33 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -2137,7 +2125,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: CS-1 -> CS-2 @@ -2159,7 +2146,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: CS-2 -> CS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -2859,6 +2845,7 @@ PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654318): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 exceeded MAX (10) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) changes state from FLOW to RELEASING +TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) starting timer T3169 [MAX N3101 reached] with 5 sec. 0 microsec, cur_fn=2654379 PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654322 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654322): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 10 => 11 (< MAX 10) @@ -3266,7 +3253,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -3288,7 +3274,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -3358,7 +3343,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -3380,7 +3364,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -3390,7 +3373,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=1, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 1 storing in window (1..64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (1), TFI(0). @@ -3398,7 +3380,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=1, SPB=3, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 1 storing in window (1..64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(3) cs(MCS-3) data block with BSN (1), TFI(0). @@ -3413,7 +3394,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=2 .. V(R)=2) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=2, SPB=3, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 2 storing in window (2..65) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(3) cs(MCS-3) data block with BSN (2), TFI(0). @@ -3421,7 +3401,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=2 .. V(R)=2) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=2, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 2 storing in window (2..65) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (2), TFI(0). @@ -3436,7 +3415,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=3 .. V(R)=3) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=3, SPB=1, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 3 storing in window (3..66) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(1) cs(MCS-3) data block with BSN (3), TFI(0). @@ -3444,7 +3422,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=3 .. V(R)=3) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=3, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 3 storing in window (3..66) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (3), TFI(0). @@ -3452,7 +3429,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=3 .. V(R)=3) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=3, SPB=3, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 3 storing in window (3..66) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(3) cs(MCS-3) data block with BSN (3), TFI(0). @@ -3467,7 +3443,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=4 .. V(R)=4) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=4, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (4..67) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (4), TFI(0). @@ -3475,14 +3450,12 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=4 .. V(R)=4) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=4, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (4..67) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (4), TFI(0). PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=4 .. V(R)=4) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=4, SPB=3, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (4..67) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(3) cs(MCS-3) data block with BSN (4), TFI(0). @@ -3497,7 +3470,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=5 .. V(R)=5) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=5, SPB=3, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 5 storing in window (5..68) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(3) cs(MCS-3) data block with BSN (5), TFI(0). @@ -3505,7 +3477,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=5 .. V(R)=5) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=5, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 5 storing in window (5..68) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (5), TFI(0). @@ -5953,7 +5924,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -5975,7 +5945,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -5985,7 +5954,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=0, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=1, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 1 storing in window (1..64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=37, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -5996,7 +5964,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=0, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=2 .. V(R)=2) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=4, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (2..65) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=37, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -6118,7 +6085,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -6140,7 +6106,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=7, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -6150,7 +6115,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=1, SI=0, TFI=0, CPS=5, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=7, BSN=1, SPB=0, PI=0, E=0, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 1 storing in window (1..64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -6249,7 +6213,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 MS requests Uplink resource on CCCH/RACH: ra=0x79 (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6271,7 +6234,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=1 USF=1 MS requests Uplink resource on CCCH/RACH: ra=0x7a (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6293,7 +6255,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=2 USF=2 MS requests Uplink resource on CCCH/RACH: ra=0x7b (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6315,7 +6276,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=3 USF=3 MS requests Uplink resource on CCCH/RACH: ra=0x7c (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6337,7 +6297,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=4 USF=4 MS requests Uplink resource on CCCH/RACH: ra=0x7d (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6359,7 +6318,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=5 USF=5 MS requests Uplink resource on CCCH/RACH: ra=0x7e (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6381,7 +6339,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=6 USF=6 MS requests Uplink resource on CCCH/RACH: ra=0x7f (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6443,7 +6400,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 192, base(128) slots(1) ws_pdch(64) ws(192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -6465,7 +6421,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -6475,133 +6430,114 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=2, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 2 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=3) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=4, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=5) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=6, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 6 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=7) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=8, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 8 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=9) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=10, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 10 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=11) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=12, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 12 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=13) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=14, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 14 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=15) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=16, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 16 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=17) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=18, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 18 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=19) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=20, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 20 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=21) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=22, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 22 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=23) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=24, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 24 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=25) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=26, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 26 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=27) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=28, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 28 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=29) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=30, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 30 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=31) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=32, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 32 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=33) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=34, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 34 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=35) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=36, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 36 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=37) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=38, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 38 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -6610,140 +6546,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=39) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=40, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 40 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=41) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=42, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 42 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=43) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=44, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 44 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=45) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=46, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 46 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=47) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=48, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 48 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=49) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=50, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 50 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=51) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=52, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 52 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=53) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=54, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 54 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=55) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=56, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 56 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=57) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=58, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 58 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=59) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=60, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 60 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=61) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=62, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 62 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=63) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=64, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 64 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=65) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=66, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 66 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=67) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=68, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 68 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=69) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=70, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 70 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=71) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=72, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 72 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=73) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=74, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 74 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=75) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=76, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 76 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=77) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=78, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 78 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -6752,140 +6668,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=79) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=80, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 80 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=81) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=82, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 82 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=83) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=84, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 84 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=85) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=86, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 86 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=87) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=88, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 88 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=89) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=90, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 90 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=91) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=92, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 92 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=93) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=94, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 94 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=95) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=96, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 96 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=97) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=98, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 98 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=99) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=100, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 100 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=101) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=102, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 102 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=103) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=104, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 104 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=105) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=106, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 106 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=107) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=108, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 108 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=109) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=110, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 110 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=111) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=112, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 112 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=113) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=114, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 114 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=115) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=116, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 116 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=117) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=118, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 118 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -6894,140 +6790,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=119) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=120, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 120 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=121) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=122, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 122 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=123) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=124, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 124 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=125) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=126, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 126 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=127) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=128, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 128 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=129) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=130, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 130 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=131) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=132, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 132 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=133) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=134, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 134 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=135) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=136, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 136 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=137) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=138, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 138 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=139) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=140, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 140 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=141) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=142, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 142 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=143) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=144, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 144 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=145) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=146, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 146 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=147) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=148, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 148 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=149) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=150, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 150 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=151) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=152, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 152 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=153) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=154, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 154 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=155) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=156, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 156 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=157) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=158, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 158 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7037,7 +6913,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=159) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=0, BSN=64, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 64 already received Received RTS for PDCH: TRX=0 TS=7 FN=2654275 block_nr=9 scheduling USF=0 for required uplink resource of UL TFI=0 @@ -7071,7 +6946,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7081,126 +6955,108 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=2, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 2 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=3) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=4, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=5) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=6, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 6 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=7) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=8, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 8 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=9) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=10, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 10 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=11) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=12, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 12 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=13) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=14, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 14 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=15) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=16, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 16 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=17) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=18, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 18 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=19) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=20, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 20 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=21) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=22, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 22 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=23) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=24, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 24 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=25) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=26, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 26 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=27) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=28, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 28 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=29) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=30, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 30 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=31) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=32, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 32 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=33) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=34, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 34 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=35) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=36, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 36 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7209,7 +7065,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=37) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=38, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 38 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7217,7 +7072,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=39) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=0, BSN=64, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 64 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7236,126 +7090,108 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=80, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 80 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=81) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=81, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 81 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=82) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=82, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 82 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=83) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=83, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 83 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=84) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=84, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 84 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=85) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=85, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 85 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=86) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=86, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 86 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=87) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=87, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 87 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=88) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=88, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 88 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=89) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=89, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 89 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=90) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=90, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 90 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=91) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=91, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 91 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=92) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=92, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 92 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=93) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=93, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 93 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=94) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=94, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 94 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=95) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=95, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 95 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=96) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=96, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 96 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=97) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=97, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 97 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7364,140 +7200,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=98) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=98, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 98 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=99) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=99, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 99 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=100) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=100, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 100 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=101) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=101, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 101 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=102) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=102, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 102 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=103) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=103, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 103 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=104) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=104, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 104 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=105) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=105, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 105 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=106) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=106, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 106 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=107) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=107, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 107 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=108) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=108, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 108 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=109) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=109, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 109 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=110) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=110, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 110 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=111) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=111, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 111 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=112) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=112, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 112 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=113) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=113, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 113 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=114) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=114, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 114 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=115) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=115, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 115 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=116) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=116, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 116 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=117) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=117, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 117 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7506,140 +7322,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=118) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=118, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 118 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=119) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=119, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 119 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=120) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=120, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 120 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=121) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=121, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 121 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=122) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=122, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 122 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=123) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=123, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 123 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=124) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=124, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 124 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=125) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=125, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 125 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=126) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=126, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 126 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=127) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=127, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 127 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=128) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=128, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 128 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=129) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=129, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 129 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=130) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=130, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 130 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=131) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=131, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 131 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=132) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=132, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 132 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=133) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=133, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 133 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=134) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=134, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 134 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=135) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=135, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 135 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=136) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=136, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 136 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=137) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=137, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 137 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7648,140 +7444,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=138) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=138, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 138 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=139) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=139, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 139 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=140) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=140, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 140 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=141) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=141, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 141 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=142) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=142, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 142 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=143) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=143, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 143 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=144) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=144, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 144 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=145) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=145, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 145 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=146) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=146, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 146 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=147) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=147, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 147 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=148) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=148, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 148 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=149) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=149, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 149 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=150) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=150, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 150 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=151) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=151, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 151 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=152) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=152, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 152 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=153) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=153, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 153 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=154) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=154, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 154 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=155) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=155, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 155 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=156) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=156, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 156 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=157) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=157, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 157 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7790,14 +7566,12 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=158) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=158, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 158 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=159) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=159, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 159 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7805,7 +7579,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=160) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=0, BSN=64, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 64 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7905,7 +7678,6 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=52 TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -7942,7 +7714,6 @@ TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=56 TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -7984,7 +7755,6 @@ TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=60 TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -8026,7 +7796,6 @@ TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=65 TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -8068,7 +7837,6 @@ TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=69 TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -8110,7 +7878,6 @@ TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=73 TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -8152,7 +7919,6 @@ TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=78 TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2cec531e2633281b88f69ba065c0105580c81076 Gerrit-Change-Number: 23872 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 Apr 22 20:30:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 20:30:08 +0000 Subject: Change in osmo-bts[master]: Abis manual: add Get Attributes, add BTS features In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23847 ) Change subject: Abis manual: add Get Attributes, add BTS features ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99631272334537ab49ba8c530240aaeb67dde9d7 Gerrit-Change-Number: 23847 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 20:30:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 20:30:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 20:30:24 +0000 Subject: Change in osmo-bts[master]: Abis manual: add VAMOS to BTS features In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23848 ) Change subject: Abis manual: add VAMOS to BTS features ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f Gerrit-Change-Number: 23848 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 20: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 Thu Apr 22 20:30:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 20:30:50 +0000 Subject: Change in osmo-bts[master]: omldummy: introduce using getopt_long In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23588 ) Change subject: omldummy: introduce using getopt_long ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc Gerrit-Change-Number: 23588 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 20:30:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 22 20:31:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 20:31:30 +0000 Subject: Change in osmo-bts[master]: omldummy: add cmdline arg --features In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23589 ) Change subject: omldummy: add cmdline arg --features ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae Gerrit-Change-Number: 23589 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 22 Apr 2021 20:31: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 Apr 22 20:31:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 22 Apr 2021 20:31:50 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 22 Apr 2021 20: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 Fri Apr 23 09:57:11 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 23 Apr 2021 09:57:11 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... Patch Set 2: Verified+1 Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 09:57:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 10:04:21 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 23 Apr 2021 10:04:21 +0000 Subject: Change in osmo-bts[master]: omldummy: add cmdline arg --features In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23589 ) Change subject: omldummy: add cmdline arg --features ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23589/4/src/osmo-bts-omldummy/main.c File src/osmo-bts-omldummy/main.c: https://gerrit.osmocom.org/c/osmo-bts/+/23589/4/src/osmo-bts-omldummy/main.c at 24 PS4, Line 24: printf(" -f --features FOO,BAR,BAZ BTS features to issue on OML startup.\n" FOO,BAR,BAZ is probably a bit giggly... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae Gerrit-Change-Number: 23589 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 23 Apr 2021 10:04:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 10:09:29 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 23 Apr 2021 10:09:29 +0000 Subject: Change in osmo-bsc[master]: manual: Location Services: clarify BSC side address In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22081 ) Change subject: manual: Location Services: clarify BSC side address ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb Gerrit-Change-Number: 22081 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 10:09: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 Apr 23 10:12:04 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 23 Apr 2021 10:12:04 +0000 Subject: Change in osmo-pcu[master]: sba: Drop unused function find_sba_rts In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23869 ) Change subject: sba: Drop unused function find_sba_rts ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I633676fc3a573acd0dccdd035ffe557c9c71a56e Gerrit-Change-Number: 23869 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 23 Apr 2021 10:12: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 Apr 23 10:15:15 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 23 Apr 2021 10:15:15 +0000 Subject: Change in osmo-ggsn[master]: gtp: Improve logging of failing pdp ctx resolution from TEI/TID In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23862 ) Change subject: gtp: Improve logging of failing pdp ctx resolution from TEI/TID ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I4f2084ec7e3a830e0224dd998ff0fe6654cc23bd Gerrit-Change-Number: 23862 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 23 Apr 2021 10:15:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 10:17:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 23 Apr 2021 10:17:55 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: reduce code nasting in trx_if_send_burst() In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23867 ) Change subject: osmo-bts-trx: reduce code nasting in trx_if_send_burst() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I578bd5a731ad88ebff283c75bb7eb268d9e7e787 Gerrit-Change-Number: 23867 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 23 Apr 2021 10:17: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 Apr 23 10:41:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 10:41:19 +0000 Subject: Change in osmo-ggsn[master]: gtp: Update teic_confirmed only on resp success In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23850 ) Change subject: gtp: Update teic_confirmed only on resp success ...................................................................... gtp: Update teic_confirmed only on resp success Change-Id: I54c54cbb51bfa5d1520855f448fa27511037b396 --- M gtp/gtp.c 1 file changed, 4 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/gtp/gtp.c b/gtp/gtp.c index 25eafdf..701aa36 100644 --- a/gtp/gtp.c +++ b/gtp/gtp.c @@ -1792,9 +1792,6 @@ return EOF; } - /* Register that we have received a valid teic from GGSN */ - pdp->teic_confirmed = 1; - /* Decode information elements */ if (gtpie_decaps(ie, version, pack + hlen, len - hlen)) { gsn->invalid++; @@ -1894,6 +1891,8 @@ gsn->cb_conf(type, EOF, pdp, cbp); return EOF; } + /* Register that we have received a valid teic from GGSN */ + pdp->teic_confirmed = 1; } if (gtpie_gettv4(ie, GTPIE_CHARGING_ID, 0, &pdp->cid)) { @@ -2345,9 +2344,6 @@ goto err_out; } - /* Register that we have received a valid teic from GGSN */ - pdp->teic_confirmed = 1; - /* Decode information elements */ if (gtpie_decaps(ie, version, pack + hlen, len - hlen)) { gsn->invalid++; @@ -2393,6 +2389,8 @@ if (gtpie_gettv4(ie, GTPIE_TEI_C, 0, &pdp->teic_gn)) { goto err_missing; } + /* Register that we have received a valid teic from GGSN */ + pdp->teic_confirmed = 1; } if (gtpie_gettv4(ie, GTPIE_CHARGING_ID, 0, &pdp->cid)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I54c54cbb51bfa5d1520855f448fa27511037b396 Gerrit-Change-Number: 23850 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Fri Apr 23 10:43:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 10:43:55 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23830 ) Change subject: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib3c4a5ad7f16196dc5c591aa0b4d7e0ec3267f05 Gerrit-Change-Number: 23830 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 10: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 Fri Apr 23 10:46:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 10:46:00 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23829 ) Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... Patch Set 4: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23829/4/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23829/4/src/osmo-bts-trx/trx_if.c at 970 PS4, Line 970: OSMO_ASSERT(0); it CAN happen though. Doesn't look like the correct thing to do here, just killing the process. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 10:46: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 Fri Apr 23 10:48:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 10:48:09 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: pass 'struct phy_instance' to TRXD dissectors In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23864 ) Change subject: osmo-bts-trx: pass 'struct phy_instance' to TRXD dissectors ...................................................................... Patch Set 1: Code-Review+1 Not sure this is reall an improvement. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23864 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I626b4392a8bc57a3fe5e8c931aa1ce9dd505676c Gerrit-Change-Number: 23864 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 10:48: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 Apr 23 10:50:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 10:50:13 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: enlarge and share TRXD message buffer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23865 ) Change subject: osmo-bts-trx: enlarge and share TRXD message buffer ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23865/1/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23865/1/src/osmo-bts-trx/trx_if.c at 911 PS1, Line 911: const uint8_t *ptr = &trx_data_buf[0]; Not sure what do we win with changing the name of the variable buf->ptr. Buf is more descriptive to me than "ptr". -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Gerrit-Change-Number: 23865 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 10:50: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 Fri Apr 23 10:50:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 10:50:39 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: assert PDU version in trx_if_send_burst() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23866 ) Change subject: osmo-bts-trx: assert PDU version in trx_if_send_burst() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I301377bcebd5e2bbcfc18b3637253ef261bb5b2e Gerrit-Change-Number: 23866 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 10:50:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 10:51:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 10:51:22 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: generalize checking of TRXD header length In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23863 ) Change subject: osmo-bts-trx: generalize checking of TRXD header length ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7df851c3afb82133f84dc805e0926438a90efe07 Gerrit-Change-Number: 23863 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 10:51:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 10:53:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 10:53:22 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: define TRXC/TRXD message buffer size In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23826 ) Change subject: osmo-bts-trx: define TRXC/TRXD message buffer size ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23826/4/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23826/4/src/osmo-bts-trx/trx_if.c at 98 PS4, Line 98: char buf[TRXC_MSG_BUF_SIZE]; btw, for clock socket, I'm pretty sure this can be a lot lower. I know it's not related to this patch though. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Gerrit-Change-Number: 23826 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 10:53:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 10:56:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 10:56:32 +0000 Subject: Change in osmo-pcu[master]: sba: Drop unused function find_sba_rts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23869 ) Change subject: sba: Drop unused function find_sba_rts ...................................................................... Patch Set 1: Code-Review+2 +2 myself, straight forward patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I633676fc3a573acd0dccdd035ffe557c9c71a56e Gerrit-Change-Number: 23869 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 10:56:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 10:56:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 10:56:35 +0000 Subject: Change in osmo-pcu[master]: sba: Drop unused function find_sba_rts In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23869 ) Change subject: sba: Drop unused function find_sba_rts ...................................................................... sba: Drop unused function find_sba_rts This function is not longer used since commit below, let's drop it. Change-Id: I633676fc3a573acd0dccdd035ffe557c9c71a56e Fixes: fd1fbdb8db4d76c2f50ccef01f99df0ef8bd8c74 --- M src/sba.c M src/sba.h 2 files changed, 0 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/sba.c b/src/sba.c index ce44fa5..d293784 100644 --- a/src/sba.c +++ b/src/sba.c @@ -95,15 +95,3 @@ /* Upon timeout, the UL Controller node is already released */ sba_free_norelease(sba); } - -uint32_t find_sba_rts(struct gprs_rlcmac_pdch *pdch, uint32_t fn, uint8_t block_nr) -{ - uint32_t sba_fn = rts_next_fn(fn, block_nr); - struct gprs_rlcmac_sba *sba; - - sba = pdch_ulc_get_sba(pdch->ulc, sba_fn); - if (sba) - return sba_fn; - - return 0xffffffff; -} diff --git a/src/sba.h b/src/sba.h index 0f2fdc6..3962576 100644 --- a/src/sba.h +++ b/src/sba.h @@ -43,8 +43,6 @@ void sba_free(struct gprs_rlcmac_sba *sba); void sba_timeout(struct gprs_rlcmac_sba *sba); -uint32_t find_sba_rts(struct gprs_rlcmac_pdch *pdch, uint32_t fn, uint8_t block_nr); - #ifdef __cplusplus } #endif -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I633676fc3a573acd0dccdd035ffe557c9c71a56e Gerrit-Change-Number: 23869 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 11:29:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 23 Apr 2021 11:29:01 +0000 Subject: Change in osmo-pcap[master]: use osmo_wqueue_enqueue_quiet() as we log anyway References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23873 ) Change subject: use osmo_wqueue_enqueue_quiet() as we log anyway ...................................................................... use osmo_wqueue_enqueue_quiet() as we log anyway There's no need in both libosmocore and osmo-pcap-client logging the same queue overflow twice. Change-Id: I43881f2bd0b0870a51f9ca5dad2d8cba40d1e54b --- M src/osmo_client_network.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/73/23873/1 diff --git a/src/osmo_client_network.c b/src/osmo_client_network.c index 32d450f..c6de579 100644 --- a/src/osmo_client_network.c +++ b/src/osmo_client_network.c @@ -58,7 +58,7 @@ static void write_data(struct osmo_pcap_client_conn *conn, struct msgb *msg) { - if (osmo_wqueue_enqueue(&conn->wqueue, msg) != 0) { + if (osmo_wqueue_enqueue_quiet(&conn->wqueue, msg) != 0) { LOGP(DCLIENT, LOGL_ERROR, "Failed to enqueue conn=%s\n", conn->name); rate_ctr_inc(&conn->client->ctrg->ctr[CLIENT_CTR_QERR]); msgb_free(msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I43881f2bd0b0870a51f9ca5dad2d8cba40d1e54b Gerrit-Change-Number: 23873 Gerrit-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 Apr 23 11:29:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 23 Apr 2021 11:29:01 +0000 Subject: Change in osmo-pcap[master]: client: Ensure the "file" header is sent on connect References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23874 ) Change subject: client: Ensure the "file" header is sent on connect ...................................................................... client: Ensure the "file" header is sent on connect A non-blocking STREAM socket connect() will mark the socket as write-able once the connection succeeds. However, as we first call osmo_fd_setup() and then osmo_sock_init2_ofd(), the latter will force the 'when' to OSMO_FD_READ and hence the write callback will not be called. Change-Id: I44c484b48966a985a9b85fb16122a17df5666bc1 --- M src/osmo_client_network.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/74/23874/1 diff --git a/src/osmo_client_network.c b/src/osmo_client_network.c index c6de579..50b8520 100644 --- a/src/osmo_client_network.c +++ b/src/osmo_client_network.c @@ -304,6 +304,8 @@ lost_connection(conn); return; } + /* osmo_sock_init2_ofd() above will re-set 'when' to OSMO_FD_READ :( */ + osmo_fd_update_when(&conn->wqueue.bfd, 0, when); rate_ctr_inc(&conn->client->ctrg->ctr[CLIENT_CTR_CONNECT]); } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I44c484b48966a985a9b85fb16122a17df5666bc1 Gerrit-Change-Number: 23874 Gerrit-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 Apr 23 11:40:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 11:40:06 +0000 Subject: Change in osmo-bsc[master]: Revert "update neighbor ARFCNs on startup and config changes" References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23875 ) Change subject: Revert "update neighbor ARFCNs on startup and config changes" ...................................................................... Revert "update neighbor ARFCNs on startup and config changes" This patch caused major breakage in my setup, with BSC printing at startup: "(bts=0,trx=0) Failed to generate System Information". And bts-trx printing all the time: "sysinfo.c:162 PH-RTS-IND: Unable to determine actual BS_AG_BLKS_RES value as SI3 is not available yet, fallback to 1" This reverts commit c1a5310a3ed75ff24dc2d6a48c09d8dfc89d944c. Change-Id: I5da365c93aedc6668a77b82ee9b68cbec64967e3 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_trx.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c 7 files changed, 3 insertions(+), 48 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/75/23875/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 58ca104..bcc215d 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -671,7 +671,6 @@ int bts_count_free_ts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan); int gsm_bts_set_system_infos(struct gsm_bts *bts); -int gsm_net_set_system_infos(void); int gsm_bts_model_register(struct gsm_bts_model *model); struct gsm_bts_model *bts_model_find(enum gsm_bts_type type); diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c index cd97695..b572f27 100644 --- a/src/osmo-bsc/bsc_init.c +++ b/src/osmo-bsc/bsc_init.c @@ -168,15 +168,3 @@ return bts; } - -int gsm_net_set_system_infos(void) -{ - struct gsm_bts *bts; - int ret = 0; - llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { - int rc = gsm_bts_set_system_infos(bts); - if (rc) - ret = rc; - } - return ret; -} diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 1a6cf0a..3c60f5f 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2448,11 +2448,6 @@ } bts->cell_identity = ci; - /* Changing the CI of a BTS may affect the neighbor relations between cells, when other cells indicate a - * neighbor cell by CI. Update the neighbors list in System Information. */ - if (vty->type != VTY_FILE) - gsm_net_set_system_infos(); - return CMD_SUCCESS; } @@ -2479,11 +2474,6 @@ bts->location_area_code = lac; - /* Changing the LAC of a BTS may affect the neighbor relations between cells, when other cells indicate a - * neighbor cell by LAC. Update the neighbors list in System Information. */ - if (vty->type != VTY_FILE) - gsm_net_set_system_infos(); - return CMD_SUCCESS; } @@ -2514,9 +2504,6 @@ } bts->bsic = bsic; - if (vty->type != VTY_FILE) - gsm_net_set_system_infos(); - return CMD_SUCCESS; } @@ -5360,9 +5347,7 @@ return CMD_WARNING; } - if (vty->type != VTY_FILE) - gsm_net_set_system_infos(); - + /* FIXME: patch ARFCN into SYSTEM INFORMATION */ /* FIXME: use OML layer to update the ARFCN */ /* FIXME: use RSL layer to update SYSTEM INFORMATION */ diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 08587d7..2192c56 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -722,7 +722,6 @@ int gsm_bts_set_system_infos(struct gsm_bts *bts) { struct gsm_bts_trx *trx; - int ret = 0; /* Generate a new ID */ bts->bcch_change_mark += 1; @@ -733,10 +732,10 @@ rc = gsm_bts_trx_set_system_infos(trx); if (rc != 0) - ret = rc; + return rc; } - return ret; + return 0; } const struct rate_ctr_desc bts_ctr_description[] = { diff --git a/src/osmo-bsc/bts_trx.c b/src/osmo-bsc/bts_trx.c index d67c9a1..6d98929 100644 --- a/src/osmo-bsc/bts_trx.c +++ b/src/osmo-bsc/bts_trx.c @@ -429,10 +429,6 @@ /* Third, we send the selected SI via RSL */ - /* If the BTS is not up and running yet, don't send anything. */ - if (!trx_is_usable(trx)) - return -1; - for (n = 0; n < n_si; n++) { i = gen_si[n]; /* 3GPP TS 08.58 ?8.5.1 BCCH INFORMATION. If we don't currently diff --git a/src/osmo-bsc/neighbor_ident_vty.c b/src/osmo-bsc/neighbor_ident_vty.c index 12aca9d..b9160ec 100644 --- a/src/osmo-bsc/neighbor_ident_vty.c +++ b/src/osmo-bsc/neighbor_ident_vty.c @@ -183,10 +183,6 @@ neighbor = talloc_zero(bts, struct neighbor); *neighbor = *n; llist_add_tail(&neighbor->entry, &bts->neighbors); - - if (vty->type != VTY_FILE) - gsm_bts_set_system_infos(bts); - return CMD_SUCCESS; } @@ -217,10 +213,6 @@ llist_del(&neighbor->entry); talloc_free(neighbor); - - if (vty->type != VTY_FILE) - gsm_bts_set_system_infos(bts); - return CMD_SUCCESS; } diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index fd41b74..3069cc0 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -942,10 +942,6 @@ exit(1); } - /* Make the 'show bts' information list the neighbor ARFCNs by updating the - * system_information.si_common.neigh_list. */ - gsm_net_set_system_infos(); - /* start control interface after reading config for * ctrl_vty_get_bind_addr() */ bsc_gsmnet->ctrl = bsc_controlif_setup(bsc_gsmnet, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5da365c93aedc6668a77b82ee9b68cbec64967e3 Gerrit-Change-Number: 23875 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 Apr 23 11:50:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 11:50:46 +0000 Subject: Change in osmo-pcap[master]: use osmo_wqueue_enqueue_quiet() as we log anyway In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23873 ) Change subject: use osmo_wqueue_enqueue_quiet() as we log anyway ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I43881f2bd0b0870a51f9ca5dad2d8cba40d1e54b Gerrit-Change-Number: 23873 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 11:50:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 11:55:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 11:55:10 +0000 Subject: Change in osmo-bsc[master]: Revert "update neighbor ARFCNs on startup and config changes" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23875 ) Change subject: Revert "update neighbor ARFCNs on startup and config changes" ...................................................................... Patch Set 1: I think the problem is in this code you added here: """ /* If the BTS is not up and running yet, don't send anything. */ if (!trx_is_usable(trx)) return -1; """ It may happen that the BTS is not usable until it receives the SIs? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5da365c93aedc6668a77b82ee9b68cbec64967e3 Gerrit-Change-Number: 23875 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: neels Gerrit-Comment-Date: Fri, 23 Apr 2021 11:55: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 Apr 23 12:02:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 23 Apr 2021 12:02:26 +0000 Subject: Change in osmo-pcap[master]: client: Ensure the "file" header is sent on connect 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-pcap/+/23874 to look at the new patch set (#2). Change subject: client: Ensure the "file" header is sent on connect ...................................................................... client: Ensure the "file" header is sent on connect A non-blocking STREAM socket connect() will mark the socket as write-able once the connection succeeds. However, as we first call osmo_fd_setup() and then osmo_sock_init2_ofd(), the latter will force the 'when' to OSMO_FD_READ and hence the write callback will not be called. Change-Id: I44c484b48966a985a9b85fb16122a17df5666bc1 --- M src/osmo_client_network.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/74/23874/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I44c484b48966a985a9b85fb16122a17df5666bc1 Gerrit-Change-Number: 23874 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 Fri Apr 23 12:06:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 12:06:29 +0000 Subject: Change in osmo-pcap[master]: client: Ensure the "file" header is sent on connect In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23874 ) Change subject: client: Ensure the "file" header is sent on connect ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I44c484b48966a985a9b85fb16122a17df5666bc1 Gerrit-Change-Number: 23874 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 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 Fri Apr 23 12:07:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 12:07:45 +0000 Subject: Change in osmo-bsc[master]: Revert "update neighbor ARFCNs on startup and config changes" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23875 ) Change subject: Revert "update neighbor ARFCNs on startup and config changes" ...................................................................... Patch Set 1: Code-Review+2 I was asked to +2 it by Neels -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5da365c93aedc6668a77b82ee9b68cbec64967e3 Gerrit-Change-Number: 23875 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Fri, 23 Apr 2021 12:07:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 12:07:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 12:07:47 +0000 Subject: Change in osmo-bsc[master]: Revert "update neighbor ARFCNs on startup and config changes" In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23875 ) Change subject: Revert "update neighbor ARFCNs on startup and config changes" ...................................................................... Revert "update neighbor ARFCNs on startup and config changes" This patch caused major breakage in my setup, with BSC printing at startup: "(bts=0,trx=0) Failed to generate System Information". And bts-trx printing all the time: "sysinfo.c:162 PH-RTS-IND: Unable to determine actual BS_AG_BLKS_RES value as SI3 is not available yet, fallback to 1" This reverts commit c1a5310a3ed75ff24dc2d6a48c09d8dfc89d944c. Change-Id: I5da365c93aedc6668a77b82ee9b68cbec64967e3 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_trx.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c 7 files changed, 3 insertions(+), 48 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 58ca104..bcc215d 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -671,7 +671,6 @@ int bts_count_free_ts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan); int gsm_bts_set_system_infos(struct gsm_bts *bts); -int gsm_net_set_system_infos(void); int gsm_bts_model_register(struct gsm_bts_model *model); struct gsm_bts_model *bts_model_find(enum gsm_bts_type type); diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c index cd97695..b572f27 100644 --- a/src/osmo-bsc/bsc_init.c +++ b/src/osmo-bsc/bsc_init.c @@ -168,15 +168,3 @@ return bts; } - -int gsm_net_set_system_infos(void) -{ - struct gsm_bts *bts; - int ret = 0; - llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { - int rc = gsm_bts_set_system_infos(bts); - if (rc) - ret = rc; - } - return ret; -} diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 1a6cf0a..3c60f5f 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2448,11 +2448,6 @@ } bts->cell_identity = ci; - /* Changing the CI of a BTS may affect the neighbor relations between cells, when other cells indicate a - * neighbor cell by CI. Update the neighbors list in System Information. */ - if (vty->type != VTY_FILE) - gsm_net_set_system_infos(); - return CMD_SUCCESS; } @@ -2479,11 +2474,6 @@ bts->location_area_code = lac; - /* Changing the LAC of a BTS may affect the neighbor relations between cells, when other cells indicate a - * neighbor cell by LAC. Update the neighbors list in System Information. */ - if (vty->type != VTY_FILE) - gsm_net_set_system_infos(); - return CMD_SUCCESS; } @@ -2514,9 +2504,6 @@ } bts->bsic = bsic; - if (vty->type != VTY_FILE) - gsm_net_set_system_infos(); - return CMD_SUCCESS; } @@ -5360,9 +5347,7 @@ return CMD_WARNING; } - if (vty->type != VTY_FILE) - gsm_net_set_system_infos(); - + /* FIXME: patch ARFCN into SYSTEM INFORMATION */ /* FIXME: use OML layer to update the ARFCN */ /* FIXME: use RSL layer to update SYSTEM INFORMATION */ diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 08587d7..2192c56 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -722,7 +722,6 @@ int gsm_bts_set_system_infos(struct gsm_bts *bts) { struct gsm_bts_trx *trx; - int ret = 0; /* Generate a new ID */ bts->bcch_change_mark += 1; @@ -733,10 +732,10 @@ rc = gsm_bts_trx_set_system_infos(trx); if (rc != 0) - ret = rc; + return rc; } - return ret; + return 0; } const struct rate_ctr_desc bts_ctr_description[] = { diff --git a/src/osmo-bsc/bts_trx.c b/src/osmo-bsc/bts_trx.c index d67c9a1..6d98929 100644 --- a/src/osmo-bsc/bts_trx.c +++ b/src/osmo-bsc/bts_trx.c @@ -429,10 +429,6 @@ /* Third, we send the selected SI via RSL */ - /* If the BTS is not up and running yet, don't send anything. */ - if (!trx_is_usable(trx)) - return -1; - for (n = 0; n < n_si; n++) { i = gen_si[n]; /* 3GPP TS 08.58 ?8.5.1 BCCH INFORMATION. If we don't currently diff --git a/src/osmo-bsc/neighbor_ident_vty.c b/src/osmo-bsc/neighbor_ident_vty.c index 12aca9d..b9160ec 100644 --- a/src/osmo-bsc/neighbor_ident_vty.c +++ b/src/osmo-bsc/neighbor_ident_vty.c @@ -183,10 +183,6 @@ neighbor = talloc_zero(bts, struct neighbor); *neighbor = *n; llist_add_tail(&neighbor->entry, &bts->neighbors); - - if (vty->type != VTY_FILE) - gsm_bts_set_system_infos(bts); - return CMD_SUCCESS; } @@ -217,10 +213,6 @@ llist_del(&neighbor->entry); talloc_free(neighbor); - - if (vty->type != VTY_FILE) - gsm_bts_set_system_infos(bts); - return CMD_SUCCESS; } diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index fd41b74..3069cc0 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -942,10 +942,6 @@ exit(1); } - /* Make the 'show bts' information list the neighbor ARFCNs by updating the - * system_information.si_common.neigh_list. */ - gsm_net_set_system_infos(); - /* start control interface after reading config for * ctrl_vty_get_bind_addr() */ bsc_gsmnet->ctrl = bsc_controlif_setup(bsc_gsmnet, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5da365c93aedc6668a77b82ee9b68cbec64967e3 Gerrit-Change-Number: 23875 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder 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 Fri Apr 23 13:53:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 23 Apr 2021 13:53:09 +0000 Subject: Change in pysim[master]: utils: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23819 to look at the new patch set (#3). Change subject: utils: fix encoding of EF.MSISDN ...................................................................... utils: fix encoding of EF.MSISDN The encoding of EF.MSISDN is a bit unstrutured. The encoder function does not return a valid result since it lacks the parameters Capability/Configuration2 Record Identifier and Extension5 Record Identifier, which are mandatory but can be set to 0xFF. Also the encoder gets its input from pySim-shell, so it should have some more input validation, especially when the user encodes an empty string. The encoder and decoder function also do not have unit-tests. Since the encoder now adds the missing two bytes by isself this does not have to be done manually anymore, so cards.py needs to be re-aligned. For pySim-shell.py the encoder is used from ts_51_011.py. Unfortunately it is used wrongly there. The optional Alpha Identifier is required here as well. Related: OS#4963 Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b --- M pySim/cards.py M pySim/ts_51_011.py M pySim/utils.py M tests/test_utils.py 4 files changed, 46 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/19/23819/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b Gerrit-Change-Number: 23819 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 13:53:29 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 23 Apr 2021 13:53:29 +0000 Subject: Change in pysim[master]: utils: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23819 ) Change subject: utils: fix encoding of EF.MSISDN ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23819/2/pySim/utils.py File pySim/utils.py: https://gerrit.osmocom.org/c/pysim/+/23819/2/pySim/utils.py at 420 PS2, Line 420: Truncate > Now this comment becomes false... Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b Gerrit-Change-Number: 23819 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 23 Apr 2021 13:53: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 Fri Apr 23 14:54:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 23 Apr 2021 14:54:08 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Forward Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23761 ) Change subject: SRVCC: Forward Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6cf54f9a16d598f98dc56b25f0fef56225a25a28 Gerrit-Change-Number: 23761 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 23 Apr 2021 14:54: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 Apr 23 14:55:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 23 Apr 2021 14:55:28 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23753 ) Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 23 Apr 2021 14:55: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 Apr 23 15:00:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 23 Apr 2021 15:00:54 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23829 ) Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23829/4/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23829/4/src/osmo-bts-trx/trx_if.c at 970 PS4, Line 970: OSMO_ASSERT(0); > it CAN happen though. Doesn't look like the correct thing to do here, just killing the process. This may only happen if 'l1h->config.trxd_pdu_ver_use' contains an unknown version. And this would be a serious bug: if you negotiate an unknown version, there is no point to continue running - you won't be able to decode even a single burst anyway. So why should we tolerate this? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 15:00:54 +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 Apr 23 15:05:06 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 23 Apr 2021 15:05:06 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: enlarge and share TRXD message buffer In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23865 ) Change subject: osmo-bts-trx: enlarge and share TRXD message buffer ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23865/1/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23865/1/src/osmo-bts-trx/trx_if.c at 911 PS1, Line 911: const uint8_t *ptr = &trx_data_buf[0]; > Not sure what do we win with changing the name of the variable buf->ptr. [?] It sounds more logical to move a 'pointer' forward while adding more stuff rather then moving a 'buffer', which sounds odd to me. I can revert it back if you insist. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Gerrit-Change-Number: 23865 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 15:05:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 23 18:01:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 18:01:21 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23829 ) Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23829/4/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23829/4/src/osmo-bts-trx/trx_if.c at 970 PS4, Line 970: OSMO_ASSERT(0); > This may only happen if 'l1h->config.trxd_pdu_ver_use' contains an unknown version. [?] what if someone just sends a crafted packet? do we kill the entire BTS? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 18:01:21 +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 Apr 23 18:02:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 18:02:51 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: enlarge and share TRXD message buffer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23865 ) Change subject: osmo-bts-trx: enlarge and share TRXD message buffer ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23865/1/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23865/1/src/osmo-bts-trx/trx_if.c at 911 PS1, Line 911: const uint8_t *ptr = &trx_data_buf[0]; > It sounds more logical to move a 'pointer' forward while adding more stuff rather then moving a 'buf [?] "buf" of course is a buffer pointer, which is already more explanatory than a "ptr". So yes, it makes more sense to mover the pointer in a "buffer" at will while filling it. Simply leave the old naming, then this patch turns 4 lines instead of 20. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Gerrit-Change-Number: 23865 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 18:02:51 +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 Apr 23 18:03:00 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 23 Apr 2021 18:03:00 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23829 ) Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23829/4/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23829/4/src/osmo-bts-trx/trx_if.c at 970 PS4, Line 970: OSMO_ASSERT(0); > what if someone just sends a crafted packet? do we kill the entire BTS? Then it will be dropped by the condition above and we wouldn't even reach this part. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 18:03:00 +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 Apr 23 18:04:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 18:04:31 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23829 ) Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23829/4/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23829/4/src/osmo-bts-trx/trx_if.c at 970 PS4, Line 970: OSMO_ASSERT(0); > Then it will be dropped by the condition above and we wouldn't even reach this part. ACK, good point :) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 23 Apr 2021 18:04:31 +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 Fri Apr 23 20:35:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 20:35:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GSM_RR_Types: introduce record TbfStartingTime References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23876 ) Change subject: GSM_RR_Types: introduce record TbfStartingTime ...................................................................... GSM_RR_Types: introduce record TbfStartingTime Change-Id: Id2e61652418571cf72ac17ca46742d9624348691 --- M library/GSM_RR_Types.ttcn 1 file changed, 10 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/76/23876/1 diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn index 8cb824d..78db7a5 100644 --- a/library/GSM_RR_Types.ttcn +++ b/library/GSM_RR_Types.ttcn @@ -466,6 +466,11 @@ } with { variant (pa) "CROSSTAG(spa, pa_disc = '1'B; uldl, pa_disc = '0'B)" }; + type record TbfStartingTime { + uint5_t t1, + uint6_t t3, + uint5_t t2 + }; type record PacketUlAssignDyn { uint5_t tfi_assignment, BIT1 polling, @@ -483,7 +488,7 @@ BIT1 ta_index_present, uint4_t ta_index optional, BIT1 tbf_starting_time_present, - uint16_t tbf_starting_time optional + TbfStartingTime tbf_starting_time optional } with { variant (p0) "PRESENCE(p0_present = '1'B)" variant (pr_mode) "PRESENCE(p0_present = '1'B)" @@ -496,7 +501,7 @@ uint4_t alpha optional, uint5_t gamma, BIT2 padding ('01'B), - uint16_t tbf_starting_time + TbfStartingTime tbf_starting_time /* TODO: P0 / PR_MODE */ } with { variant (alpha) "PRESENCE(alpha_present = '1'B)" @@ -526,7 +531,7 @@ BIT1 ta_index_present, uint4_t ta_index optional, BIT1 tbf_starting_time_present, - uint16_t tbf_starting_time optional, + TbfStartingTime tbf_starting_time optional, BIT1 p0_present, uint4_t p0 optional, BIT1 pr_mode optional @@ -564,7 +569,7 @@ BIT1 ta_index_present, uint4_t ta_index optional, BIT1 tbf_starting_time_present, - uint16_t tbf_starting_time optional + TbfStartingTime tbf_starting_time optional /* TODO: Additions for Rel-7 */ } with { variant (p0) "PRESENCE(p0_present = '1'B)" @@ -578,7 +583,7 @@ BIT1 alpha_present, uint4_t alpha optional, uint5_t gamma, - uint16_t tbf_starting_time, + TbfStartingTime tbf_starting_time, BIT2 nr_radio_blocks_allocated, BIT1 p0_present, uint4_t p0 optional, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id2e61652418571cf72ac17ca46742d9624348691 Gerrit-Change-Number: 23876 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 Apr 23 20:35:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 20:35:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Take into account TbfStartingTime References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 ) Change subject: pcu: Take into account TbfStartingTime ...................................................................... pcu: Take into account TbfStartingTime New versions of osmo-pcu will validate the Pkt Resource Request is sent on the correct FN, so we must send first UL block exactly when requested. Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 50 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/77/23877/1 diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 57cd837..6fe17cb 100644 --- a/pcu/GPRS_Components.ttcn +++ b/pcu/GPRS_Components.ttcn @@ -96,7 +96,8 @@ uint3_t usf[8], boolean is_egprs, uint14_t bsn, - CodingScheme tx_cs_mcs + CodingScheme tx_cs_mcs, + uint32_t start_time_fn }; type record GprsMS { @@ -160,7 +161,8 @@ usf := { USF_UNUSED, USF_UNUSED, USF_UNUSED, USF_UNUSED, USF_UNUSED, USF_UNUSED, USF_UNUSED, USF_UNUSED }, is_egprs := false, bsn := 0, - tx_cs_mcs := CS_1 + tx_cs_mcs := CS_1, + start_time_fn := 0 }; type component MS_BTS_IFACE_CT { @@ -233,6 +235,12 @@ return mp_base_arfcn + trx_nr; } +/* 3GPP TS 44.018 10.5.2.38 Starting Time */ +function f_tbf_starting_time_2_fn_mod_42432(TbfStartingTime st) +runs on MS_BTS_IFACE_CT return uint32_t { + return 51 * ((st.t3 - st.t2) mod 26) + st.t3 + 51 * 26 * st.t1; +} + function f_ultbf_new_from_rr_imm_ass(in GsmRrMessage rr_imm_ass) runs on MS_BTS_IFACE_CT return UlTbf { var UlTbf ul_tbf := valueof(t_UlTbf_def); @@ -254,8 +262,11 @@ ul_tbf.tfi := ul_tbf.ass.ccch.dynamic.tfi_assignment; ul_tbf.tx_cs_mcs := f_rlcmac_block_ChCodingCommand2cs_mcs(ul_tbf.ass.ccch.dynamic.ch_coding_cmd); ul_tbf.usf[tn_allocated] := ul_tbf.ass.ccch.dynamic.usf; + if (ul_tbf.ass.ccch.dynamic.tbf_starting_time_present == '1'B) { + ul_tbf.start_time_fn := f_tbf_starting_time_2_fn_mod_42432(ul_tbf.ass.ccch.dynamic.tbf_starting_time); + } } else if (match(ul_tbf.ass.ccch, tr_PacketUlSglAssign)) { - /* Nothing to do here yet */ + ul_tbf.start_time_fn := f_tbf_starting_time_2_fn_mod_42432(ul_tbf.ass.ccch.single.tbf_starting_time); } } else if (match(rr_imm_ass, tr_IMM_TBF_ASS(dl := false, rest := tr_IaRestOctets_EGPRSULAss(?)))) { ul_tbf.ass.ccch_egprs := rr_imm_ass.payload.imm_ass.rest_octets.lh.egprs_ul; @@ -265,8 +276,13 @@ ul_tbf.tfi := ul_tbf.ass.ccch_egprs.dynamic.tfi_assignment; ul_tbf.tx_cs_mcs := f_rlcmac_block_EgprsChCodingCommand2cs_mcs(ul_tbf.ass.ccch_egprs.dynamic.egprs_ch_coding_cmd); ul_tbf.usf[tn_allocated] := ul_tbf.ass.ccch_egprs.dynamic.usf; + if (ul_tbf.ass.ccch_egprs.dynamic.tbf_starting_time_present == '1'B) { + ul_tbf.start_time_fn := f_tbf_starting_time_2_fn_mod_42432(ul_tbf.ass.ccch_egprs.dynamic.tbf_starting_time); + } } else if (match(ul_tbf.ass.ccch_egprs, tr_EgprsUlAssMultiblock)) { + ul_tbf.start_time_fn := f_tbf_starting_time_2_fn_mod_42432(ul_tbf.ass.ccch_egprs.multiblock.tbf_starting_time); /* Nothing to do here yet */ + /*TODO:*/ } } else { setverdict(fail, "Failed to match UL TBF Assignment: ", rr_imm_ass); @@ -661,7 +677,7 @@ /* Send random payload for last "num_blocks" blocks in Ul TBF (ending with CV=0). */ function f_ms_tx_ul_data_block_multi(inout GprsMS ms, integer num_blocks := 1, boolean with_tlli := false, - template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum) + uint32_t fn := 0, template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum) runs on MS_BTS_IFACE_CT return octetstring { var octetstring total_payload := ''O; var uint32_t payload_fill_len := f_ultbf_payload_fill_length(ms.ul_tbf, with_tlli, 0); @@ -673,7 +689,12 @@ if (cv > g_bs_cv_max) { cv := 15; } - f_ms_tx_ul_data_block(ms, payload, cv := cv, with_tlli := with_tlli, nr := nr); + if (i == 1) { + /* We use FN on i=0 to jump to wanted FN time, then simply submit on next + * avaialble frame (fn=0) */ + fn := 0; + } + f_ms_tx_ul_data_block(ms, payload, cv := cv, with_tlli := with_tlli, fn := fn, nr := nr); total_payload := total_payload & payload; } return total_payload; diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index a466732..2509e2b 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -316,7 +316,7 @@ var RlcmacDlBlock dl_block; var uint32_t poll_fn; - f_ms_tx_ul_data_block(g_ms[i], dummy, with_tlli := true, nr := nr); + f_ms_tx_ul_data_block(g_ms[i], dummy, with_tlli := true, fn := g_ms[i].ul_tbf.start_time_fn, nr := nr); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, poll_fn, nr := nr); } } @@ -354,7 +354,7 @@ pkt_res_req := ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, omit); } - f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(valueof(pkt_res_req)), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(valueof(pkt_res_req)), ms.ul_tbf.start_time_fn, nr := f_ms_tx_TsTrxBtsNum(ms)); /* Store 1st UlTBF context before receiving next one, will * overwrite the TS allocation on MS with info from new UL TBF: */ @@ -420,7 +420,7 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -765,7 +765,7 @@ contention resoultion) and make sure it is ACKED fine. */ /* 16 bytes fills the llc block (because TLLI takes 4 bytes) */ /* Set CV = 15 to signal there's still more than BS_CV_MAX blocks to be sent */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true) + f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true, fn := ms.ul_tbf.start_time_fn) f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -849,7 +849,7 @@ contention resoultion) and make sure it is ACKED fine. */ /* 16 bytes fills the llc block (because TLLI takes 4 bytes) */ /* Set CV = 15 to signal there's still more than BS_CV_MAX blocks to be sent */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true) + f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true, fn := ms.ul_tbf.start_time_fn) f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -921,7 +921,7 @@ contention resoultion) and make sure it is ACKED fine. */ /* 16 bytes fills the llc block (because TLLI takes 4 bytes) */ /* Set CV = 15 to signal there's still more than BS_CV_MAX blocks to be sent */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true) + f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true, fn := ms.ul_tbf.start_time_fn) f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -1299,7 +1299,7 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(10), cv := 1, with_tlli := true) + f_ms_tx_ul_data_block(ms, f_rnd_octstring(10), cv := 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn) f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn); /* UL block should NOT be received in SGSN, since we didn't get CV=0 */ @@ -1905,7 +1905,7 @@ contention resoultion) and make sure it is ACKED fine. */ total_payload := f_rnd_octstring(f_ultbf_payload_fill_length(ms.ul_tbf, true)); /* Set CV = 15 to signal there's still more than BS_CV_MAX blocks to be sent */ - f_ms_tx_ul_data_block(ms, total_payload, cv := 15, with_tlli := true) + f_ms_tx_ul_data_block(ms, total_payload, cv := 15, with_tlli := true, fn := ms.ul_tbf.start_time_fn) f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -1966,7 +1966,7 @@ blocks := blocks, tlli := ms.tlli); f_ultbf_inc_bsn(ms.ul_tbf); - f_ms_tx_ul_block(ms, ul_data); + f_ms_tx_ul_block(ms, ul_data, ms.ul_tbf.start_time_fn); /* ACK and check it was received fine */ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); @@ -2122,7 +2122,7 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -2349,7 +2349,7 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine. */ payload := f_rnd_octstring(f_ultbf_payload_fill_length(ms.ul_tbf, true)); /* 16 bytes fills the llc block (because TLLI takes 4 bytes) */ - f_ms_tx_ul_data_block(ms, payload, cv := 15, with_tlli := true); + f_ms_tx_ul_data_block(ms, payload, cv := 15, with_tlli := true, fn := ms.ul_tbf.start_time_fn); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ @@ -2580,7 +2580,7 @@ * RLCMAC block being sent. */ ul_data.data.mac_hdr.e := true; f_ultbf_inc_bsn(ms.ul_tbf); - f_ms_tx_ul_block(ms, ul_data); + f_ms_tx_ul_block(ms, ul_data, ms.ul_tbf.start_time_fn); /* UL RlcDataBlock(dataA finished, dataB starts) [BSN=1, CV=2] */ ul_data := t_RLCMAC_UL_DATA_TLLI(cs := CS_1, @@ -2765,7 +2765,8 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block(ms, data, with_tlli := true, nr := f_ms_tx_TsTrxBtsNum(ms)); + f_ms_tx_ul_data_block(ms, data, ms.ul_tbf.start_time_fn, with_tlli := true, + fn := ms.ul_tbf.start_time_fn, nr := f_ms_tx_TsTrxBtsNum(ms)); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, poll_fn, nr := f_ms_tx_TsTrxBtsNum(ms)); @@ -2908,7 +2909,7 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn); /* UL block should be received in SGSN */ BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id)); @@ -3128,7 +3129,7 @@ f_ms_establish_ul_tbf(ms); /* Fake GMM GPRS Attach or similar, PCU doesn't care about upper layers here */ - f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -3187,7 +3188,7 @@ f_ms_establish_ul_tbf(ms); /* Fake GMM GPRS Attach or similar, PCU doesn't care about upper layers here */ - f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -3676,11 +3677,16 @@ /* Initialize the PCU interface abstraction */ f_init_raw(testcasename(), info_ind); + /* Single block (two phase) packet access */ + var uint16_t ra := bit2int(chan_req_sb); + f_ms_use_ra(ms, ra, ra_is_11bit := 0); + /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); /* Send Packet Resource Request, so the network will allocate an Uplink resource */ - f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, omit))); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, omit)), + fn := ms.ul_tbf.start_time_fn); /* Expect an RLC/MAC block with Packet Uplink Assignment on PACCH (see 11.2.29) */ f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_UL_PACKET_ASS); @@ -3729,7 +3735,7 @@ f_ms_establish_ul_tbf(ms); /* Send an Uplink block, so this TBF becomes "active" */ - f_ms_tx_ul_data_block(ms, data, with_tlli := true); + f_ms_tx_ul_data_block(ms, data, with_tlli := true, fn := ms.ul_tbf.start_time_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, poll_fn); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced Gerrit-Change-Number: 23877 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 Apr 23 20:36:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 23 Apr 2021 20:36:18 +0000 Subject: Change in osmo-pcu[master]: pdch: rcv_resource_request: Improve robustness In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23870 ) Change subject: pdch: rcv_resource_request: Improve robustness ...................................................................... Patch Set 1: Can be merged once https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23876 is already merged, to avoid breaking PCU_Tests. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I157e72160317340ee7742c78c62a25d3d98fc01e Gerrit-Change-Number: 23870 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 23 Apr 2021 20:36: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 Apr 24 00:54:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 24 Apr 2021 00:54:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GSM_RR_Types: introduce record TbfStartingTime In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23876 ) Change subject: GSM_RR_Types: introduce record TbfStartingTime ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id2e61652418571cf72ac17ca46742d9624348691 Gerrit-Change-Number: 23876 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 24 Apr 2021 00:54:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 01:15:02 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 24 Apr 2021 01:15:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Take into account TbfStartingTime In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 ) Change subject: pcu: Take into account TbfStartingTime ...................................................................... Patch Set 1: (4 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/1/pcu/GPRS_Components.ttcn File pcu/GPRS_Components.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/1/pcu/GPRS_Components.ttcn at 100 PS1, Line 100: uint32_t GsmFrameNumber https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/1/pcu/GPRS_Components.ttcn at 240 PS1, Line 240: uint32_t GsmFrameNumber https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/1/pcu/GPRS_Components.ttcn at 285 PS1, Line 285: TODO What exactly is to be done here? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/1/pcu/PCU_Tests.ttcn at 3738 PS1, Line 3738: fn := ms.ul_tbf.start_time_fn Now we have a lot of code duplication with this optional argument. Can't we just do this in f_ms_tx_ul_data_block(), so it would just take fn from 'ms.ul_tbf' itself? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced Gerrit-Change-Number: 23877 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Sat, 24 Apr 2021 01:15: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 Apr 24 08:42:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:42:13 +0000 Subject: Change in osmo-pcap[master]: use osmo_wqueue_enqueue_quiet() as we log anyway In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23873 ) Change subject: use osmo_wqueue_enqueue_quiet() as we log anyway ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I43881f2bd0b0870a51f9ca5dad2d8cba40d1e54b Gerrit-Change-Number: 23873 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 24 Apr 2021 08:42: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 Apr 24 08:42:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:42:17 +0000 Subject: Change in osmo-pcap[master]: use osmo_wqueue_enqueue_quiet() as we log anyway In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23873 ) Change subject: use osmo_wqueue_enqueue_quiet() as we log anyway ...................................................................... use osmo_wqueue_enqueue_quiet() as we log anyway There's no need in both libosmocore and osmo-pcap-client logging the same queue overflow twice. Change-Id: I43881f2bd0b0870a51f9ca5dad2d8cba40d1e54b --- M src/osmo_client_network.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/src/osmo_client_network.c b/src/osmo_client_network.c index 32d450f..c6de579 100644 --- a/src/osmo_client_network.c +++ b/src/osmo_client_network.c @@ -58,7 +58,7 @@ static void write_data(struct osmo_pcap_client_conn *conn, struct msgb *msg) { - if (osmo_wqueue_enqueue(&conn->wqueue, msg) != 0) { + if (osmo_wqueue_enqueue_quiet(&conn->wqueue, msg) != 0) { LOGP(DCLIENT, LOGL_ERROR, "Failed to enqueue conn=%s\n", conn->name); rate_ctr_inc(&conn->client->ctrg->ctr[CLIENT_CTR_QERR]); msgb_free(msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I43881f2bd0b0870a51f9ca5dad2d8cba40d1e54b Gerrit-Change-Number: 23873 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 Sat Apr 24 08:42:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:42:17 +0000 Subject: Change in osmo-pcap[master]: client: Ensure the "file" header is sent on connect In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23874 ) Change subject: client: Ensure the "file" header is sent on connect ...................................................................... client: Ensure the "file" header is sent on connect A non-blocking STREAM socket connect() will mark the socket as write-able once the connection succeeds. However, as we first call osmo_fd_setup() and then osmo_sock_init2_ofd(), the latter will force the 'when' to OSMO_FD_READ and hence the write callback will not be called. Change-Id: I44c484b48966a985a9b85fb16122a17df5666bc1 --- M src/osmo_client_network.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_client_network.c b/src/osmo_client_network.c index c6de579..e5616af 100644 --- a/src/osmo_client_network.c +++ b/src/osmo_client_network.c @@ -293,10 +293,8 @@ break; } - osmo_fd_setup(&conn->wqueue.bfd, -1, when, conn_cb, conn, 0); - rc = osmo_sock_init2_ofd(&conn->wqueue.bfd, AF_INET, sock_type, sock_proto, - conn->source_ip, 0, conn->srv_ip, srv_port, - OSMO_SOCK_F_BIND | OSMO_SOCK_F_CONNECT | OSMO_SOCK_F_NONBLOCK); + rc = osmo_sock_init2(AF_INET, sock_type, sock_proto, conn->source_ip, 0, conn->srv_ip, srv_port, + OSMO_SOCK_F_BIND | OSMO_SOCK_F_CONNECT | OSMO_SOCK_F_NONBLOCK); if (rc < 0) { LOGP(DCLIENT, LOGL_ERROR, "Failed to connect conn=%s to %s:%d\n", @@ -304,6 +302,8 @@ lost_connection(conn); return; } + osmo_fd_setup(&conn->wqueue.bfd, rc, when, conn_cb, conn, 0); + osmo_fd_register(&conn->wqueue.bfd); rate_ctr_inc(&conn->client->ctrg->ctr[CLIENT_CTR_CONNECT]); } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I44c484b48966a985a9b85fb16122a17df5666bc1 Gerrit-Change-Number: 23874 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 Sat Apr 24 08:43:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:43:21 +0000 Subject: Change in pysim[master]: utils: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23819 ) Change subject: utils: fix encoding of EF.MSISDN ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b Gerrit-Change-Number: 23819 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Sat, 24 Apr 2021 08: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 Sat Apr 24 08:43:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:43:25 +0000 Subject: Change in pysim[master]: utils: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23819 ) Change subject: utils: fix encoding of EF.MSISDN ...................................................................... utils: fix encoding of EF.MSISDN The encoding of EF.MSISDN is a bit unstrutured. The encoder function does not return a valid result since it lacks the parameters Capability/Configuration2 Record Identifier and Extension5 Record Identifier, which are mandatory but can be set to 0xFF. Also the encoder gets its input from pySim-shell, so it should have some more input validation, especially when the user encodes an empty string. The encoder and decoder function also do not have unit-tests. Since the encoder now adds the missing two bytes by isself this does not have to be done manually anymore, so cards.py needs to be re-aligned. For pySim-shell.py the encoder is used from ts_51_011.py. Unfortunately it is used wrongly there. The optional Alpha Identifier is required here as well. Related: OS#4963 Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b --- M pySim/cards.py M pySim/ts_51_011.py M pySim/utils.py M tests/test_utils.py 4 files changed, 46 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/cards.py b/pySim/cards.py index 9a19eed..719bf0c 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -963,7 +963,7 @@ # TODO: Extension1 Record Identifier if p.get('msisdn') is not None: msisdn = enc_msisdn(p['msisdn']) - data = 'ff' * 20 + msisdn + 'ff' * 2 + data = 'ff' * 20 + msisdn r = self._scc.select_path(['3f00', '7f10']) data, sw = self._scc.update_record('6F40', 1, data, force_len=True) @@ -1356,7 +1356,7 @@ # TODO: Extension1 Record Identifier if p.get('msisdn') is not None: msisdn = enc_msisdn(p['msisdn']) - content = 'ff' * 20 + msisdn + 'ff' * 2 + content = 'ff' * 20 + msisdn r = self._scc.select_path(['3f00', '7f10']) data, sw = self._scc.update_record('6F40', 1, content, force_len=True) diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 48649cd..9123330 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -377,11 +377,13 @@ # TS 51.011 Section 10.5.5 class EF_MSISDN(LinFixedEF): def __init__(self, fid='6f40', sfid=None, name='EF.MSISDN', desc='MSISDN'): - super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={15, None}) + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={15, 34}) def _decode_record_hex(self, raw_hex_data): return {'msisdn': dec_msisdn(raw_hex_data)} def _encode_record_hex(self, abstract): - return enc_msisdn(abstract['msisdn']) + encoded_msisdn = enc_msisdn(abstract['msisdn']) + alpha_identifier = (list(self.rec_len)[0] - len(encoded_msisdn) // 2) * "ff" + return alpha_identifier + encoded_msisdn # TS 51.011 Section 10.5.6 class EF_SMSP(LinFixedEF): diff --git a/pySim/utils.py b/pySim/utils.py index 2da93a5..a177c56 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -400,18 +400,27 @@ def enc_msisdn(msisdn:str, npi:int=0x01, ton:int=0x03) -> Hexstr: """ Encode MSISDN as LHV so it can be stored to EF.MSISDN. - See 3GPP TS 31.102, section 4.2.26 and 4.4.2.3. + See 3GPP TS 31.102, section 4.2.26 and 4.4.2.3. (The result + will not contain the optional Alpha Identifier at the beginning.) Default NPI / ToN values: - NPI: ISDN / telephony numbering plan (E.164 / E.163), - ToN: network specific or international number (if starts with '+'). """ + # If no MSISDN is supplied then encode the file contents as all "ff" + if msisdn == "" or msisdn == "+": + return "ff" * 14 + # Leading '+' indicates International Number if msisdn[0] == '+': msisdn = msisdn[1:] ton = 0x01 + # An MSISDN must not exceed 20 digits + if len(msisdn) > 20: + raise ValueError("msisdn must not be longer than 20 digits") + # Append 'f' padding if number of digits is odd if len(msisdn) % 2 > 0: msisdn += 'f' @@ -421,7 +430,8 @@ npi_ton = (npi & 0x0f) | ((ton & 0x07) << 4) | 0x80 bcd = rpad(swap_nibbles(msisdn), 10 * 2) # pad to 10 octets - return ('%02x' % bcd_len) + ('%02x' % npi_ton) + bcd + return ('%02x' % bcd_len) + ('%02x' % npi_ton) + bcd + ("ff" * 2) + def dec_st(st, table="sim") -> str: """ diff --git a/tests/test_utils.py b/tests/test_utils.py index badde55..71c0eb0 100755 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -109,5 +109,33 @@ encoded = suci_calc_info._encode_hex(self.decoded_testfile_suci) self.assertEqual(encoded.lower(), self.testfile_suci_calc_info.lower()) + def testEnc_msisdn(self): + msisdn_encoded = utils.enc_msisdn("+4916012345678", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "0891946110325476f8ffffffffff") + msisdn_encoded = utils.enc_msisdn("123456", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "04b1214365ffffffffffffffffff") + msisdn_encoded = utils.enc_msisdn("12345678901234567890", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "0bb121436587092143658709ffff") + msisdn_encoded = utils.enc_msisdn("+12345678901234567890", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "0b9121436587092143658709ffff") + msisdn_encoded = utils.enc_msisdn("", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "ffffffffffffffffffffffffffff") + msisdn_encoded = utils.enc_msisdn("+", npi=0x01, ton=0x03) + self.assertEqual(msisdn_encoded, "ffffffffffffffffffffffffffff") + + def testDec_msisdn(self): + msisdn_decoded = utils.dec_msisdn("0891946110325476f8ffffffffff") + self.assertEqual(msisdn_decoded, (1, 1, "+4916012345678")) + msisdn_decoded = utils.dec_msisdn("04b1214365ffffffffffffffffff") + self.assertEqual(msisdn_decoded, (1, 3, "123456")) + msisdn_decoded = utils.dec_msisdn("0bb121436587092143658709ffff") + self.assertEqual(msisdn_decoded, (1, 3, "12345678901234567890")) + msisdn_decoded = utils.dec_msisdn("ffffffffffffffffffffffffffff") + self.assertEqual(msisdn_decoded, None) + msisdn_decoded = utils.dec_msisdn("00112233445566778899AABBCCDDEEFF001122330bb121436587092143658709ffff") + self.assertEqual(msisdn_decoded, (1, 3, "12345678901234567890")) + msisdn_decoded = utils.dec_msisdn("ffffffffffffffffffffffffffffffffffffffff0bb121436587092143658709ffff") + self.assertEqual(msisdn_decoded, (1, 3, "12345678901234567890")) + if __name__ == "__main__": unittest.main() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iee5369b3e3ba7fa1155facc8fa824bc60e33b55b Gerrit-Change-Number: 23819 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 08:44:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:44:50 +0000 Subject: Change in osmo-bts[master]: Abis manual: add Get Attributes, add BTS features In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23847 ) Change subject: Abis manual: add Get Attributes, add BTS features ...................................................................... Abis manual: add Get Attributes, add BTS features Change-Id: I99631272334537ab49ba8c530240aaeb67dde9d7 --- M doc/manuals/abis/oml.adoc 1 file changed, 107 insertions(+), 5 deletions(-) Approvals: neels: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/abis/oml.adoc b/doc/manuals/abis/oml.adoc index 0fbd321..f6fd236 100644 --- a/doc/manuals/abis/oml.adoc +++ b/doc/manuals/abis/oml.adoc @@ -35,6 +35,10 @@ .3+.| 8.9.2 | 0x74 .3+.| <> | Opstart | <- | Received | 0x75 | Opstart Ack | -> | Sent | 0x76 | Opstart Nack | -> | Sent +6+<| *Other Messages:* +.3+.| 8.11.1 | 0x81 | <> | Get Attributes | <- | Received + | 8.11.3 | 0x82 | <> | Get Attribute Response | -> | Sent + | 8.11.1 | 0x83 | | Get Attributes Nack | -> | Sent |=== @@ -137,9 +141,6 @@ | 8.10.3 | 0x8C | Stop Measurement | 8.10.4 | 0x8D | Start Measurement 3+<| *Other Messages:* - | 8.11.1 | 0x81 | Get Attributes - | 8.11.3 | 0x82 | Get Attribute(s) Response - | 8.11.1 | 0x83 | Get Attributes Nack .3+.| 8.11.2 | 0x84 | Set Alarm Threshold | 0x85 | Set Alarm Threshold Ack | 0x86 | Set Alarm Threshold Nack @@ -236,6 +237,26 @@ Object Classes defined in 3GPP TS 52.021 ? 9.2 as well as <>. +[[get_attributes]] +==== Get Attributes + +This message is compliant with 3GPP TS 52.021 ? 8.11.1. + +For a list of supported attributes, see <>. + +[[get_attr_resp]] +==== Get Attribute Response + +This message is compliant with 3GPP TS 52.021 ? 8.11.3. + +The following attributes are provided by OsmoBTS: + +[options="header"] +|=== +| 3GPP TS 52.021 chapter | description | see +| 9.4.61 | SW Configuration | <> +| 9.4.30 | Manufacturer Id | <> +|=== === Details on OsmoBTS Specific Messages @@ -406,9 +427,9 @@ | 0x38 | 9.4.58 | VSWR Thresholds | | _ignored_ | 0x39 | 9.4.59 | Window Size | | _ignored_ | 0x40 | 9.4.60 | TSC | <- | Received, with limitations: see <> -| 0x41 | 9.4.61 | SW Configuration | | _ignored_ +| 0x41 | 9.4.61 | SW Configuration | -> | Sent, see <> | 0x43 | 9.4.63 | Perceived Severity | | _ignored_ -| 0x44 | 9.4.64 | Get Attribute Response Info | | _ignored_ +| 0x44 | 9.4.64 | Get Attribute Response Info | -> | Sent, see <> | 0x45 | 9.4.65 | Outstanding Alarm Sequence | | _ignored_ | 0x46 | 9.4.66 | HW Conf Change Info | | _ignored_ | 0x47 | 9.4.32 | Measurement Result | | _ignored_ @@ -784,6 +805,87 @@ This attribute is not used by OsmoBTS, but simply passed to OsmoPCU connected to the PCU socket. +[[NM_ATT_SW_CONFIG]] +==== SW Configuration + +The SW Configuration IE is compliant with 3GPP TS 52.021 9.4.61: it contains a +number of SW Description IEs (9.4.62). + + +.Coding of SW Configuration IE +[options="header",cols="20%,80%"] +|=== +| octet | value +| 1 | NM_ATT_SW_CONFIG IEI (0x41) +| 2-3 | length of value part +| 4 | NM_ATT_SW_DESCR IEI (0x42) +| 5 | NM_ATT_FILE_ID IEI (0x12) +| 6-7 | length of file name +| 8-N | ASCII coded file name (without terminating nul) +| N+1 | NM_ATT_FILE_VERSION IEI (0x13) +| N+2 - N+3 | length of file content +| N+4 - M | file content +| M+1 | NM_ATT_SW_DESCR IEI (0x42) +| M+2 | NM_ATT_FILE_ID IEI (0x12) +2+| ... +|=== + +.File names and content sent in the SW Configuration IE +[options="header",cols="20%,80%"] +|=== +| file name | content +| 'osmobts' | ASCII coded OsmoBTS version number like "1.2.3" or "1.2.3.4-abcd" +| 'BTS_TYPE_VARIANT' | one of "osmo-bts-lc15", "osmo-bts-oc2g", "osmo-bts-octphy", + "osmo-bts-omldummy", "osmo-bts-sysmo", "osmo-bts-trx", "osmo-bts-virtual" +| 'BTS_SUB_MODEL' | This file may be omitted; if present, may contain an ASCII + coded model number like "sysmoBTS 1002" +|=== + + +[[NM_ATT_MANUF_ID]] +==== Manufacturer Id + +The coding of the Manufacturer Id attribute is a sequence of bit flags (a bit +vector), where a zero flag indicates absence and a set flag indicates presence +of a specific BTS feature. + +The number of flags transmitted depends on the software version of OsmoBTS and +the BTS backend in use. More flags may be added in the future. The flag bits +transmitted are followed by zero bits up to the next full octet boundary. + +These features are currently defined: + +.coding of BTS feature flags sent in the Manufacturer Id attribute +[options="header",cols="5%,5%,30%,60%"] +|=== +| octet | bit | feature name | description +.8+.| 0 | 7 | HSCSD | High-Speed Circuit-Switched Data + | 6 | GPRS | General Packet Radio Service + | 5 | EGPRS | Enhanced GPRS (EDGE) + | 4 | ECSD | Enhanced Circuit-Switched Data + | 3 | HOPPING | Frequency Hopping + | 2 | MULTI_TSC | Multi-TSC + | 1 | OML_ALERTS | OML Alerts + | 0 | AGCH_PCH_PROP | AGCH/PCH proportional allocation +.8+.| 1 | 7 | CBCH | Cell Broadcast Channel + | 6 | SPEECH_F_V1 | Fullrate speech V1 + | 5 | SPEECH_H_V1 | Halfrate speech V1 + | 4 | SPEECH_F_EFR | Fullrate speech EFR + | 3 | SPEECH_F_AMR | Fullrate speech AMR + | 2 | SPEECH_H_AMR | Halfrate speech AMR + | 1 | ETWS_PN | ETWS Primary Notification via PCH + | 0 | PAGING_COORDINATION | BSS Paging Coordination +.8+.| 2 | 7 | IPV6_NSVC | NSVC IPv6 + | 6 | ACCH_REP | FACCH/SACCH Repetition + | 5 | CCN | Cell Change Notification + | 4 2.5+.| reserved for future use, sent as zero + | 3 + | 2 + | 1 + | 0 +|=== + + === A-bis OML Initialization / BTS bring-up At the time an Abis/IP BTS connects to via OML to the BSC, it is -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99631272334537ab49ba8c530240aaeb67dde9d7 Gerrit-Change-Number: 23847 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Sat Apr 24 08:44:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:44:51 +0000 Subject: Change in osmo-bts[master]: Abis manual: add VAMOS to BTS features In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23848 ) Change subject: Abis manual: add VAMOS to BTS features ...................................................................... Abis manual: add VAMOS to BTS features Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f --- M doc/manuals/abis/oml.adoc 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: neels: Looks good to me, approved fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/abis/oml.adoc b/doc/manuals/abis/oml.adoc index f6fd236..984ab8c 100644 --- a/doc/manuals/abis/oml.adoc +++ b/doc/manuals/abis/oml.adoc @@ -878,8 +878,8 @@ .8+.| 2 | 7 | IPV6_NSVC | NSVC IPv6 | 6 | ACCH_REP | FACCH/SACCH Repetition | 5 | CCN | Cell Change Notification - | 4 2.5+.| reserved for future use, sent as zero - | 3 + | 4 | VAMOS | Voice services over Adaptive Multi-user channels on One Slot + | 3 2.4+.| reserved for future use, sent as zero | 2 | 1 | 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I108e3300e96087f4be47bd9ea237a9d28982839f Gerrit-Change-Number: 23848 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Sat Apr 24 08:44:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:44:52 +0000 Subject: Change in osmo-bts[master]: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23849 ) Change subject: Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE ...................................................................... Abis manual: add RSL_IE_OSMO_TRAINING_SEQUENCE Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 --- M doc/manuals/abis/rsl.adoc 1 file changed, 74 insertions(+), 0 deletions(-) Approvals: neels: Looks good to me, approved laforge: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/abis/rsl.adoc b/doc/manuals/abis/rsl.adoc index 35fda31..7b45acf 100644 --- a/doc/manuals/abis/rsl.adoc +++ b/doc/manuals/abis/rsl.adoc @@ -843,6 +843,7 @@ | IEI | Name | This document ? | 0x01 | RSL_IE_CHAN_NR | <> | 0x60 | RSL_IE_OSMO_REP_ACCH_CAP | <> +| 0x61 | RSL_IE_OSMO_TRAINING_SEQUENCE | <> | 0xf0 | RSL_IE_IPAC_REMOTE_IP | <> | 0xf1 | RSL_IE_IPAC_REMOTE_PORT | <> | 0xf3 | RSL_IE_IPAC_LOCAL_PORT | <> @@ -979,6 +980,79 @@ (Bits 7 is reserved for future use and must be set to zero.) +[[RSL_IE_OSMO_TRAINING_SEQUENCE]] +==== RSL_IE_OSMO_TRAINING_SEQUENCE + +This TLV IE instructs the BTS to use a specific training sequence set and +training sequence code for a given lchan. It is sent by OsmoBSC in RSL CHANNEL +ACTIVATION and MODE MODIFY messages to the BTS, iff the BTS is VAMOS-capable, +i.e. if an Abis-over-IP connected BTS indicated BTS_FEAT_VAMOS in the OML BTS +features (Manufacturer Id information element, see <>). + +If this information element is present, the receiver shall ignore any other +training sequence set and training sequence code bits from other information +elements of the same RSL message. + +This is an Osmocom-specific extension of the RSL layer, which was added to +express more than two TSC sets. For VAMOS operation, OsmoBSC selects from one +of four separate training sequence codings per modulation scheme, while usual +RSL IEs are only able to express a single-bit TSC set number. For clarity, this +IE contains both the TSC set and the TSC in one IE, and is defined as +overruling any other IEs containing TSC or TSC set numbers. + +The first value octet indicates the training sequence set, and the second octet +indicates the training sequence code to be used. Receiving values from a +reserved value range should be considered an error condition. + +.RSL_IE_OSMO_TRAINING_SEQUENCE +[options="header",width="80%",cols="20%,80%"] +|=== +| IE octet | value +| octet 1 | RSL_IE_OSMO_TRAINING_SEQUENCE IEI (0x61) +| octet 2 | length of the value part (2) +| octet 3 | TSC set +| octet 4 | TSC +|=== + +The training sequence set (TSC set) is coded like the 'CS Domain TSC Set' bits, +as defined in the 'Extended TSC Set' IE in 3GPP TS 44.018 10.5.2.82 +<<3gpp-ts-44-018>>, and corresponds to the 'TSC Set' as defined in 3GPP TS +45.002 <<3gpp-ts-45-002>>. The encoded training sequence set number ranges from +0 to 3, any other values are reserved for future use. The encoded 0 corresponds +to TSC Set 1, see <>. + +[[RSL_IE_OSMO_TRAINING_SEQUENCE__TSC_set_coding]] +.TSC set (octet 3) coding +[options="header",width="80%",cols="20%,80%"] +|=== +| octet 3 value | interpretation +| 0 | 'TSC Set 1' as in 3GPP TS 45.002 +| 1 | 'TSC Set 2' +| 2 | 'TSC Set 3' +| 3 | 'TSC Set 4' +| 4..255 | reserved values +|=== + +The training sequence code (TSC) corresponds to the 'TSC' bits as defined in +the 'Channel Description 2' IE in 3GPP TS 44.018 10.5.2.5a <<3gpp-ts-44-018>>. +The training sequence code ranges from 0 to 7, any other values are reserved +for future use. + +.TSC (octet 4) coding +[options="header",width="80%",cols="20%,80%"] +|=== +| octet 4 value | interpretation +| 0 | 'Training Sequence Code (TSC) 0' as in 3GPP TS 45.002 +| 1 | 'Training Sequence Code (TSC) 1' +| 2 | 'Training Sequence Code (TSC) 2' +| 3 | 'Training Sequence Code (TSC) 3' +| 4 | 'Training Sequence Code (TSC) 4' +| 5 | 'Training Sequence Code (TSC) 5' +| 6 | 'Training Sequence Code (TSC) 6' +| 7 | 'Training Sequence Code (TSC) 7' +| 8..255 | reserved values +|=== + === A-bis RSL Initialization / BTS bring-up Upon receiving the 'IPA RSL CONNECT' OML message by the respective -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie583bd5969fdb45f772af198033e58d7c4077306 Gerrit-Change-Number: 23849 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 08:44:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:44:52 +0000 Subject: Change in osmo-bts[master]: omldummy: introduce using getopt_long In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23588 ) Change subject: omldummy: introduce using getopt_long ...................................................................... omldummy: introduce using getopt_long Prepare for adding the --features cmdline arg following in a subsequent patch. Related: SYS#4895 Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc --- M src/osmo-bts-omldummy/main.c 1 file changed, 68 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve neels: Looks good to me, approved diff --git a/src/osmo-bts-omldummy/main.c b/src/osmo-bts-omldummy/main.c index 22d8758..183a5e5 100644 --- a/src/osmo-bts-omldummy/main.c +++ b/src/osmo-bts-omldummy/main.c @@ -1,3 +1,9 @@ +#include +#include +#include + +#define _GNU_SOURCE +#include #include #include @@ -6,6 +12,64 @@ #include #include +static void print_usage(const char *prog_name) +{ + printf("Usage: %s [-h] dst_host site_id [trx_num]\n", prog_name); +} + +static void print_help(const char *prog_name) +{ + print_usage(prog_name); + printf(" -h --help This text.\n"); +} + +struct { + char *dst_host; + int site_id; + int trx_num; +} cmdline = { + .trx_num = 8, +}; + +void parse_cmdline(int argc, char **argv) +{ + while (1) { + int option_index = 0, c; + static struct option long_options[] = { + {"help", 0, 0, 'h'}, + {0} + }; + + c = getopt_long(argc, argv, "h", long_options, &option_index); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(argv[0]); + exit(0); + default: + /* catch unknown options *as well as* missing arguments. */ + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } + + if (optind + 2 > argc) { + print_usage(argv[0]); + exit(1); + } + + cmdline.dst_host = argv[optind]; + cmdline.site_id = atoi(argv[optind + 1]); + if (optind + 2 < argc) + cmdline.trx_num = atoi(argv[optind + 2]); + + if (optind + 3 < argc) { + print_usage(argv[0]); + exit(1); + } +} int main(int argc, char **argv) { @@ -14,14 +78,7 @@ struct e1inp_line *line; int i; - if (argc < 3) { - fprintf(stderr, "Usage: %s dst_host site_id [trx_num]\n", argv[0]); - return 1; - } - - char *dst_host = argv[1]; - int site_id = atoi(argv[2]); - int trx_num = argc > 3 ? atoi(argv[3]) : 8; + parse_cmdline(argc, argv); tall_bts_ctx = talloc_named_const(NULL, 1, "OsmoBTS context"); msgb_talloc_ctx_init(tall_bts_ctx, 10*1024); @@ -31,11 +88,11 @@ bts = gsm_bts_alloc(tall_bts_ctx, 0); if (!bts) exit(1); - bts->ip_access.site_id = site_id; + bts->ip_access.site_id = cmdline.site_id; bts->ip_access.bts_id = 0; /* Additional TRXs */ - for (i = 1; i < trx_num; i++) { + for (i = 1; i < cmdline.trx_num; i++) { trx = gsm_bts_trx_alloc(bts); if (!trx) exit(1); @@ -46,8 +103,7 @@ //btsb = bts_role_bts(bts); abis_init(bts); - - line = abis_open(bts, dst_host, "OMLdummy"); + line = abis_open(bts, cmdline.dst_host, "OMLdummy"); if (!line) exit(2); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72ccf65ba894e87ee7b0f6bed879f94728f34ccc Gerrit-Change-Number: 23588 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Sat Apr 24 08:45:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:45:35 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: define TRXC/TRXD message buffer size In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23826 ) Change subject: osmo-bts-trx: define TRXC/TRXD message buffer size ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Gerrit-Change-Number: 23826 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 24 Apr 2021 08:45: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 Apr 24 08:45:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:45:56 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move MTS parser into trx_data_parse_mts() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23828 ) Change subject: osmo-bts-trx: move MTS parser into trx_data_parse_mts() ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2de2cb2d58110452d8dedbcacfef28f85f6d67c1 Gerrit-Change-Number: 23828 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 24 Apr 2021 08:45:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 08:46:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:46:25 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23829 ) Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 24 Apr 2021 08: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 Sat Apr 24 08:47:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:47:00 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: define TRXC/TRXD message buffer size In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23826 ) Change subject: osmo-bts-trx: define TRXC/TRXD message buffer size ...................................................................... osmo-bts-trx: define TRXC/TRXD message buffer size Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 2 files changed, 10 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 495de92..905d3da 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -95,7 +95,7 @@ { struct phy_link *plink = ofd->data; struct phy_instance *pinst = phy_instance_by_num(plink, 0); - char buf[1500]; + char buf[TRXC_MSG_BUF_SIZE]; ssize_t len; uint32_t fn; @@ -148,7 +148,7 @@ static void trx_ctrl_send(struct trx_l1h *l1h) { struct trx_ctrl_msg *tcm; - char buf[1500]; + char buf[TRXC_MSG_BUF_SIZE]; int len; ssize_t snd_len; @@ -634,7 +634,7 @@ { struct trx_l1h *l1h = ofd->data; struct phy_instance *pinst = l1h->phy_inst; - char buf[1500]; + char buf[TRXC_MSG_BUF_SIZE]; struct trx_ctrl_rsp rsp; int len, rc; struct trx_ctrl_msg *tcm; @@ -718,9 +718,6 @@ * TRX burst data socket */ -/* Maximum DATA message length (header + burst) */ -#define TRX_DATA_MSG_MAX_LEN 512 - /* Common header length: 1/2 VER + 1/2 TDMA TN + 4 TDMA FN */ #define TRX_CHDR_LEN (1 + 4) /* Uplink v0 header length: 1 RSSI + 2 ToA256 */ @@ -920,7 +917,7 @@ static int trx_data_read_cb(struct osmo_fd *ofd, unsigned int what) { struct trx_l1h *l1h = ofd->data; - uint8_t buf[TRX_DATA_MSG_MAX_LEN]; + uint8_t buf[TRXD_MSG_BUF_SIZE]; struct trx_ul_burst_ind bi; ssize_t hdr_len, buf_len; uint8_t pdu_ver; @@ -1002,7 +999,7 @@ { ssize_t snd_len; uint8_t pdu_ver = l1h->config.trxd_pdu_ver_use; - uint8_t buf[TRX_DATA_MSG_MAX_LEN]; + uint8_t buf[TRXD_MSG_BUF_SIZE]; if ((br->burst_len != GSM_BURST_LEN) && (br->burst_len != EGPRS_BURST_LEN)) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Tx burst length %zu invalid\n", diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 18ba74f..ca3d51b 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -1,5 +1,10 @@ #pragma once +/* TRXC read/send buffer size */ +#define TRXC_MSG_BUF_SIZE 1500 +/* TRXD read/send buffer size */ +#define TRXD_MSG_BUF_SIZE 512 + struct trx_dl_burst_req; struct trx_l1h; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cb05600fa8af33e1c92e93cc1a86c14f21b9fb2 Gerrit-Change-Number: 23826 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 Sat Apr 24 08:47:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:47:02 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: 'burst type' is actually modulation type In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23827 ) Change subject: osmo-bts-trx: 'burst type' is actually modulation type ...................................................................... osmo-bts-trx: 'burst type' is actually modulation type Burst type and modulation type are actually different things. Change-Id: Ic06c96434ad32dd3770b88cb1fefcbefb2fc3928 Related: SYS#4895, OS#4941, OS#4006 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/sched_lchan_pdtch.c M src/osmo-bts-trx/trx_if.c 3 files changed, 18 insertions(+), 18 deletions(-) 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/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index b1e4294..ad6e5c5 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -63,9 +63,9 @@ #define GPRS_BURST_LEN GSM_BURST_LEN #define EGPRS_BURST_LEN 444 -enum trx_burst_type { - TRX_BURST_GMSK, - TRX_BURST_8PSK, +enum trx_mod_type { + TRX_MOD_T_GMSK, + TRX_MOD_T_8PSK, }; /* A set of measurements belonging to one Uplink burst */ @@ -85,7 +85,7 @@ /* scheduler */ bool active; /* Channel is active */ ubit_t *dl_bursts; /* burst buffer for TX */ - enum trx_burst_type dl_burst_type; /* GMSK or 8PSK burst type */ + enum trx_mod_type dl_mod_type; /* Downlink modulation 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 */ @@ -244,7 +244,7 @@ int8_t rssi; /*!< Received Signal Strength Indication */ /* Optional fields (defined by flags) */ - enum trx_burst_type bt; /*!< Modulation type */ + enum trx_mod_type mod; /*!< Modulation type */ uint8_t tsc_set; /*!< Training Sequence Set */ uint8_t tsc; /*!< Training Sequence Code */ int16_t ci_cb; /*!< Carrier-to-Interference ratio (in centiBels) */ diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c index 5e61a1d..d936f75 100644 --- a/src/osmo-bts-trx/sched_lchan_pdtch.c +++ b/src/osmo-bts-trx/sched_lchan_pdtch.c @@ -156,7 +156,7 @@ struct gsm_bts_trx_ts *ts = &l1t->trx->ts[br->tn]; struct msgb *msg = NULL; /* make GCC happy */ ubit_t *burst, **bursts_p = &l1ts->chan_state[chan].dl_bursts; - enum trx_burst_type *burst_type = &l1ts->chan_state[chan].dl_burst_type; + enum trx_mod_type *mod = &l1ts->chan_state[chan].dl_mod_type; int rc = 0; /* send burst, if we already got a frame */ @@ -205,9 +205,9 @@ msgb_free(msg); goto no_msg; } else if (rc == GSM0503_EGPRS_BURSTS_NBITS) { - *burst_type = TRX_BURST_8PSK; + *mod = TRX_MOD_T_8PSK; } else { - *burst_type = TRX_BURST_GMSK; + *mod = TRX_MOD_T_GMSK; } /* free message */ @@ -215,7 +215,7 @@ send_burst: /* compose burst */ - if (*burst_type == TRX_BURST_8PSK) { + if (*mod == TRX_MOD_T_8PSK) { burst = *bursts_p + bid * 348; memset(br->burst, 1, 9); memcpy(br->burst + 9, burst, 174); diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 905d3da..bfa1514 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -786,11 +786,11 @@ /* Modulation info and TSC set */ mts = (buf[0] >> 3) & 0b1111; if ((mts & 0b1100) == 0x00) { - bi->bt = TRX_BURST_GMSK; + bi->mod = TRX_MOD_T_GMSK; bi->tsc_set = mts & 0b11; bi->flags |= TRX_BI_F_MOD_TYPE; } else if ((mts & 0b0100) == 0b0100) { - bi->bt = TRX_BURST_8PSK; + bi->mod = TRX_MOD_T_8PSK; bi->tsc_set = mts & 0b1; bi->flags |= TRX_BI_F_MOD_TYPE; } else { @@ -854,15 +854,15 @@ { /* Modulation types defined in 3GPP TS 45.002 */ static const size_t bl[] = { - [TRX_BURST_GMSK] = 148, /* 1 bit per symbol */ - [TRX_BURST_8PSK] = 444, /* 3 bits per symbol */ + [TRX_MOD_T_GMSK] = 148, /* 1 bit per symbol */ + [TRX_MOD_T_8PSK] = 444, /* 3 bits per symbol */ }; /* Verify burst length */ - if (bl[bi->bt] != buf_len) { + if (bl[bi->mod] != buf_len) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, "Rx TRXD message with odd burst length %zu, " - "expected %zu\n", buf_len, bl[bi->bt]); + "expected %zu\n", buf_len, bl[bi->mod]); return -EINVAL; } @@ -878,8 +878,8 @@ /* Modulation types defined in 3GPP TS 45.002 */ static const char *mod_names[] = { - [TRX_BURST_GMSK] = "GMSK", - [TRX_BURST_8PSK] = "8-PSK", + [TRX_MOD_T_GMSK] = "GMSK", + [TRX_MOD_T_8PSK] = "8-PSK", }; /* Initialize the string buffer */ @@ -901,7 +901,7 @@ /* Modulation and TSC set */ if (bi->flags & TRX_BI_F_MOD_TYPE) - OSMO_STRBUF_PRINTF(sb, " mod=%s", mod_names[bi->bt]); + OSMO_STRBUF_PRINTF(sb, " mod=%s", mod_names[bi->mod]); /* Training Sequence Code */ if (bi->flags & TRX_BI_F_TS_INFO) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic06c96434ad32dd3770b88cb1fefcbefb2fc3928 Gerrit-Change-Number: 23827 Gerrit-PatchSet: 5 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 Sat Apr 24 08:47:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:47:03 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move MTS parser into trx_data_parse_mts() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23828 ) Change subject: osmo-bts-trx: move MTS parser into trx_data_parse_mts() ...................................................................... osmo-bts-trx: move MTS parser into trx_data_parse_mts() This would allow to re-use this code from the TRXDv2 parser. Change-Id: I2de2cb2d58110452d8dedbcacfef28f85f6d67c1 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 38 insertions(+), 27 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index bfa1514..912ab42 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -752,12 +752,45 @@ return TRX_UL_V0HDR_LEN; } +/* Parser for MTS (Modulation and Training Sequence) */ +static inline int trx_data_parse_mts(struct trx_l1h *l1h, + struct trx_ul_burst_ind *bi, + const uint8_t mts) +{ + if (mts & (1 << 7)) { + bi->flags |= TRX_BI_F_NOPE_IND; + return 0; + } + + /* | 7 6 5 4 3 2 1 0 | Bitmask / description + * | . 0 0 X X . . . | GMSK, 4 TSC sets (0..3) + * | . 0 1 0 X . . . | 8-PSK, 2 TSC sets (0..1) */ + if ((mts >> 5) == 0x00) { + bi->mod = TRX_MOD_T_GMSK; + bi->tsc_set = (mts >> 3) & 0x03; + } else if ((mts >> 4) == 0x02) { + bi->mod = TRX_MOD_T_8PSK; + bi->tsc_set = (mts >> 3) & 0x01; + } else { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Rx TRXD PDU with unknown or not supported " + "modulation (MTS=0x%02x)\n", mts); + return -ENOTSUP; + } + + /* Training Sequence Code */ + bi->tsc = mts & 0x07; + + bi->flags |= (TRX_BI_F_MOD_TYPE | TRX_BI_F_TS_INFO); + + return 0; +} + /* TRXD header dissector for version 0x01 */ static int trx_data_handle_hdr_v1(struct trx_l1h *l1h, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { - uint8_t mts; int rc; /* Make sure we have enough data */ @@ -777,33 +810,11 @@ buf_len -= rc; buf += rc; - /* IDLE / NOPE frame indication */ - if (buf[0] & (1 << 7)) { - bi->flags |= TRX_BI_F_NOPE_IND; - goto skip_mts; - } + /* MTS (Modulation and Training Sequence) */ + rc = trx_data_parse_mts(l1h, bi, buf[0]); + if (rc < 0) + return rc; - /* Modulation info and TSC set */ - mts = (buf[0] >> 3) & 0b1111; - if ((mts & 0b1100) == 0x00) { - bi->mod = TRX_MOD_T_GMSK; - bi->tsc_set = mts & 0b11; - bi->flags |= TRX_BI_F_MOD_TYPE; - } else if ((mts & 0b0100) == 0b0100) { - bi->mod = TRX_MOD_T_8PSK; - bi->tsc_set = mts & 0b1; - bi->flags |= TRX_BI_F_MOD_TYPE; - } else { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Indicated modulation 0x%02x is not supported\n", mts & 0b1110); - return -ENOTSUP; - } - - /* Training Sequence Code */ - bi->tsc = buf[0] & 0b111; - bi->flags |= TRX_BI_F_TS_INFO; - -skip_mts: /* C/I: Carrier-to-Interference ratio (in centiBels) */ bi->ci_cb = (int16_t) osmo_load16be(buf + 1); bi->flags |= TRX_BI_F_CI_CB; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2de2cb2d58110452d8dedbcacfef28f85f6d67c1 Gerrit-Change-Number: 23828 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 Sat Apr 24 08:47:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:47:03 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: discard TRXD PDUs with unexpected version In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23829 ) Change subject: osmo-bts-trx: discard TRXD PDUs with unexpected version ...................................................................... osmo-bts-trx: discard TRXD PDUs with unexpected version Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 13 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/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 912ab42..5ce1889 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -945,8 +945,18 @@ /* Pre-clean (initialize) the flags */ bi.flags = 0x00; - /* Parse header depending on the PDU version */ + /* Parse PDU version first */ pdu_ver = buf[0] >> 4; + + /* Make sure that PDU version matches our expectations */ + if (pdu_ver != l1h->config.trxd_pdu_ver_use) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Rx TRXD PDU with unexpected version %u (expected %u)\n", + pdu_ver, l1h->config.trxd_pdu_ver_use); + return -EIO; + } + + /* Parse header depending on the PDU version */ switch (pdu_ver) { case 0: /* Legacy protocol has no version indicator */ @@ -956,9 +966,8 @@ hdr_len = trx_data_handle_hdr_v1(l1h, &bi, buf, buf_len); break; default: - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "TRXD PDU version %u is not supported\n", pdu_ver); - return -ENOTSUP; + /* Shall not happen */ + OSMO_ASSERT(0); } /* Header parsing error */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icdc3d12a7686428046113f9fa8f21a99569e651a Gerrit-Change-Number: 23829 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 Sat Apr 24 08:47:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:47:03 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23830 ) Change subject: osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() ...................................................................... osmo-bts-trx: move TDMA frame number check to trx_data_read_cb() Change-Id: Ib3c4a5ad7f16196dc5c591aa0b4d7e0ec3267f05 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 7 insertions(+), 6 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 5ce1889..5d18c2c 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -743,12 +743,6 @@ bi->rssi = -(int8_t)buf[5]; bi->toa256 = (int16_t) osmo_load16be(buf + 6); - if (bi->fn >= GSM_TDMA_HYPERFRAME) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Illegal TDMA fn=%u\n", bi->fn); - return -EINVAL; - } - return TRX_UL_V0HDR_LEN; } @@ -974,6 +968,13 @@ if (hdr_len < 0) return hdr_len; + if (bi.fn >= GSM_TDMA_HYPERFRAME) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Rx malformed TRXDv%u PDU: illegal TDMA fn=%u\n", + pdu_ver, bi.fn); + return -EINVAL; + } + if (bi.flags & TRX_BI_F_NOPE_IND) { bi.burst_len = 0; goto skip_burst; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib3c4a5ad7f16196dc5c591aa0b4d7e0ec3267f05 Gerrit-Change-Number: 23830 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 Sat Apr 24 08:47:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:47:04 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: cosmetic: get rid of TRX_CHDR_LEN macro In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23831 ) Change subject: osmo-bts-trx: cosmetic: get rid of TRX_CHDR_LEN macro ...................................................................... osmo-bts-trx: cosmetic: get rid of TRX_CHDR_LEN macro The 'CHDR' stands for 'Common Header', but this does not apply to TRXDv2 because TDMA frame number may not be present in the batched PDUs. Let's avoid potential confusion by removing it. Change-Id: I80495df474c432f4c0a4cfa6f917821d7b35859a --- M src/osmo-bts-trx/trx_if.c 1 file changed, 3 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/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 5d18c2c..0beb941 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -718,11 +718,9 @@ * TRX burst data socket */ -/* Common header length: 1/2 VER + 1/2 TDMA TN + 4 TDMA FN */ -#define TRX_CHDR_LEN (1 + 4) -/* Uplink v0 header length: 1 RSSI + 2 ToA256 */ -#define TRX_UL_V0HDR_LEN (TRX_CHDR_LEN + 1 + 2) -/* Uplink v1 header length: + 1 MTS + 2 C/I */ +/* Uplink TRXDv0 header length: TDMA TN + FN + RSSI + ToA256 */ +#define TRX_UL_V0HDR_LEN (1 + 4 + 1 + 2) +/* Uplink TRXDv1 header length: additional MTS + C/I */ #define TRX_UL_V1HDR_LEN (TRX_UL_V0HDR_LEN + 1 + 2) /* TRXD header dissector for version 0 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I80495df474c432f4c0a4cfa6f917821d7b35859a Gerrit-Change-Number: 23831 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 Sat Apr 24 08:47:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:47:18 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: generalize checking of TRXD header length In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23863 ) Change subject: osmo-bts-trx: generalize checking of TRXD header length ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7df851c3afb82133f84dc805e0926438a90efe07 Gerrit-Change-Number: 23863 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 24 Apr 2021 08:47: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 Apr 24 08:47:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:47:40 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: pass 'struct phy_instance' to TRXD dissectors In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23864 ) Change subject: osmo-bts-trx: pass 'struct phy_instance' to TRXD dissectors ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23864 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I626b4392a8bc57a3fe5e8c931aa1ce9dd505676c Gerrit-Change-Number: 23864 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 24 Apr 2021 08:47: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 Apr 24 08:48:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:48:40 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23753 ) Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 08:48:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 08:49:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:49:05 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Forward Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23761 ) Change subject: SRVCC: Forward Last EUTRAN PLMN Id in Handover Required ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6cf54f9a16d598f98dc56b25f0fef56225a25a28 Gerrit-Change-Number: 23761 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 08:49:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 08:49:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:49:08 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23753 ) Change subject: SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request ...................................................................... SRVCC: Parse Last Used E-UTRAN PLMN Id in Handover Request Whenever SRVCC EUTRAN->GERAN is performed by the CN, it will set the Last Used E-UTRAN PLMN Id in order for the BSS to inform the MS about EUTRAN neighbors once the call is over. The last part (sending EUTRAN neighs) is already implemented, since same thing is done as per CSFB. However, we lacked the first part, where the EUTRAN PLMN Id is recorded for later use. Actually, in both cases, we end up building the list of neighbors without taking into accound the PLMN value (hence no filtering of configured neighs), but it only sends such a list if any PLMN was stored there, which means this patch is still necessary for a quick fallback to 4G after the call is over. Related: SYS#5337 Depends: libosmocore.git Change-Id I0e55e947b6fef6dad0cf1a6c16b781bef4cc76c5 Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e --- M TODO-RELEASE M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/handover_fsm.c 3 files changed, 39 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/TODO-RELEASE b/TODO-RELEASE index 1a72401..de9e62c 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,3 +8,4 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line libosmocore >1.5.1 needs osmo_bts_features_name(), osmo_bts_features_desc() +libosmogsm >1.5.1 enum entry GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 448098b..0bc881b 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -202,6 +202,8 @@ uint16_t msc_assigned_cic; char msc_assigned_rtp_addr[INET6_ADDRSTRLEN]; uint16_t msc_assigned_rtp_port; + bool last_eutran_plmn_valid; + struct osmo_plmn_id last_eutran_plmn; }; struct handover { diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c index f6dad9d..53cafed 100644 --- a/src/osmo-bsc/handover_fsm.c +++ b/src/osmo-bsc/handover_fsm.c @@ -417,6 +417,32 @@ lchan_activate(ho->new_lchan, &info); } +/* 3GPP TS 48.008 ? 3.2.2.58 Old BSS to New BSS Information */ +static void parse_old2new_bss_info(struct gsm_subscriber_connection *conn, + const uint8_t* data, uint16_t len, + struct handover_in_req *req) +{ + /* ? 3.2.2.58: Information contained here shall take precedence over + duplicate information from Information Elements in the HANDOVER + REQUEST as long as the coding is understood by the new BSS */ + /* ? 3.2.2.58: <>. See also 3.1.19.7. */ + struct tlv_parsed tp; + if (tlv_parse(&tp, &gsm0808_old_bss_to_new_bss_info_att_tlvdef, data, len, 0, 0) <= 0) { + LOG_HO(conn, LOGL_NOTICE, "Failed to parse IE \"Old BSS to New BSS information\"\n"); + return; + } + + if (TLVP_VAL(&tp, GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID)) { + req->last_eutran_plmn_valid = true; + osmo_plmn_from_bcd(TLVP_VAL(&tp, GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID), + &req->last_eutran_plmn); + } +} + /* 3GPP TS 48.008 ? 3.2.1.8 Handover Request */ static bool parse_ho_request(struct gsm_subscriber_connection *conn, const struct msgb *msg, struct handover_in_req *req) @@ -557,6 +583,10 @@ return false; } + if ((e = TLVP_GET(tp, GSM0808_IE_OLD_BSS_TO_NEW_BSS_INFORMATION))) { + parse_old2new_bss_info(conn, e->val, e->len, req); + } + /* A lot of IEs remain ignored... */ return true; @@ -691,6 +721,12 @@ info.encr.key_len = req->ei.key_len; } + if (req->last_eutran_plmn_valid) { + conn->last_eutran_plmn_valid = true; + memcpy(&conn->last_eutran_plmn, &req->last_eutran_plmn, + sizeof(conn->last_eutran_plmn)); + } + lchan_activate(ho->new_lchan, &info); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia5008f11a4c36ef8085a2037d4abddd131086e6e Gerrit-Change-Number: 23753 Gerrit-PatchSet: 8 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 Sat Apr 24 08:49:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:49:09 +0000 Subject: Change in osmo-bsc[master]: SRVCC: Forward Last EUTRAN PLMN Id in Handover Required In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23761 ) Change subject: SRVCC: Forward Last EUTRAN PLMN Id in Handover Required ...................................................................... SRVCC: Forward Last EUTRAN PLMN Id in Handover Required """ The old BSS shall inform the new BSS of the MS's last used E-UTRAN PLMN in the "Last used E-UTRAN PLMN ID" information element included in the "Old BSS to New BSS information" Information Element if this information is present. """ Depends: libosmocore.git Change-Id I6280ce1abc283f1491bc6f391b2dd952df33a16b Related: SYS#5337 Change-Id: I6cf54f9a16d598f98dc56b25f0fef56225a25a28 --- M TODO-RELEASE M src/osmo-bsc/osmo_bsc_bssap.c 2 files changed, 12 insertions(+), 4 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 de9e62c..d0e3ff0 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -9,3 +9,4 @@ #library what description / commit summary line libosmocore >1.5.1 needs osmo_bts_features_name(), osmo_bts_features_desc() libosmogsm >1.5.1 enum entry GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID +libosmogsm >1.5.1 introduced struct needed gsm0808_old_bss_to_new_bss_info->last_eutran_plmn_id diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index fc1484e..c3716ce 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -1358,6 +1358,7 @@ { int rc; struct msgb *msg; + struct gsm_subscriber_connection *conn = lchan->conn; struct gsm0808_handover_required params = { .cause = GSM0808_CAUSE_BETTER_CELL, .cil = *target_cells, @@ -1365,6 +1366,12 @@ .current_channel_type_1 = gsm0808_current_channel_type_1(lchan->type), }; + if (conn->last_eutran_plmn_valid) { + params.old_bss_to_new_bss_info_present = true; + params.old_bss_to_new_bss_info.last_eutran_plmn_id_present = true; + params.old_bss_to_new_bss_info.last_eutran_plmn_id = conn->last_eutran_plmn; + } + switch (lchan->type) { case GSM_LCHAN_TCH_F: case GSM_LCHAN_TCH_H: @@ -1383,14 +1390,14 @@ msg = gsm0808_create_handover_required(¶ms); if (!msg) { - LOG_HO(lchan->conn, LOGL_ERROR, "Cannot compose BSSMAP Handover Required message\n"); + LOG_HO(conn, LOGL_ERROR, "Cannot compose BSSMAP Handover Required message\n"); return -EINVAL; } - rate_ctr_inc(&lchan->conn->sccp.msc->msc_ctrs->ctr[MSC_CTR_BSSMAP_TX_DT1_HANDOVER_REQUIRED]); - rc = gscon_sigtran_send(lchan->conn, msg); + rate_ctr_inc(&conn->sccp.msc->msc_ctrs->ctr[MSC_CTR_BSSMAP_TX_DT1_HANDOVER_REQUIRED]); + rc = gscon_sigtran_send(conn, msg); if (rc) { - LOG_HO(lchan->conn, LOGL_ERROR, "Cannot send BSSMAP Handover Required message\n"); + LOG_HO(conn, LOGL_ERROR, "Cannot send BSSMAP Handover Required message\n"); return rc; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6cf54f9a16d598f98dc56b25f0fef56225a25a28 Gerrit-Change-Number: 23761 Gerrit-PatchSet: 9 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 Sat Apr 24 08:50:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:50:54 +0000 Subject: Change in pysim[master]: ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23837 ) Change subject: ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs ...................................................................... Patch Set 2: > Patch Set 2: Code-Review+1 > > Looks good to me. DF.WLAN can be selected without problems. However, at least on my card I am unable to select (almost all) files in that directory. This is probably expected, I just wanted to make you aware of this. > > # MF/ADF.USIM/DF.WLAN/EF.UPLMNWLAN, 6283: Warnings - Selected file invalidated > # MF/ADF.USIM/DF.WLAN/EF.WRI, 6a82: Wrong parameters - File not found > # MF/ADF.USIM/DF.WLAN/EF.HWSIDL, 6a82: Wrong parameters - File not found > # MF/ADF.USIM/DF.WLAN/EF.WEHPLMNPI, 6a82: Wrong parameters - File not found > # MF/ADF.USIM/DF.WLAN/EF.WHPI, 6a82: Wrong parameters - File not found > # MF/ADF.USIM/DF.WLAN/EF.WLRPLMN, 6a82: Wrong parameters - File not found > # MF/ADF.USIM/DF.WLAN/EF.HPLMNDAI, 6a82: Wrong parameters - File not found Yes, most files don't exist on the current SJA2 cards. I am adding them to the updated profile version (sysmoISIM-SJA2 v2) for the upcoming bulk card order. The invalidated file looks odd though, I will have a look. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I2d4662dc021e286a1c3293ab36aaa845b1251388 Gerrit-Change-Number: 23837 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Sat, 24 Apr 2021 08:50: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 Sat Apr 24 08:51:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:51:17 +0000 Subject: Change in pysim[master]: ts_31_102, ts_31_103: Add EF.FromPreferred In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23840 ) Change subject: ts_31_102, ts_31_103: Add EF.FromPreferred ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I7dc989a4ab198f3eaa45ba7060c8087354a544bb Gerrit-Change-Number: 23840 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 08:51:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 08:51:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:51:18 +0000 Subject: Change in pysim[master]: ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23839 ) Change subject: ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I54046375f180017373ab8e06e60ac5a542da706a Gerrit-Change-Number: 23839 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 08: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 Sat Apr 24 08:51:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 08:51:25 +0000 Subject: Change in pysim[master]: filesystem.py: Introduce place-holder for BER-TLV files In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23852 ) Change subject: filesystem.py: Introduce place-holder for BER-TLV files ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie4701d9f72b05c8a5810e287e55a20f6ea86a574 Gerrit-Change-Number: 23852 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 08:51: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 Sat Apr 24 09:38:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 24 Apr 2021 09:38:36 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: generalize checking of TRXD header length In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23863 ) Change subject: osmo-bts-trx: generalize checking of TRXD header length ...................................................................... osmo-bts-trx: generalize checking of TRXD header length Change-Id: I7df851c3afb82133f84dc805e0926438a90efe07 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 14 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/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 0beb941..28b5f2e 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -723,19 +723,17 @@ /* Uplink TRXDv1 header length: additional MTS + C/I */ #define TRX_UL_V1HDR_LEN (TRX_UL_V0HDR_LEN + 1 + 2) +/* Minimum Uplink TRXD header length for all PDU versions */ +static const uint8_t trx_data_rx_hdr_len[] = { + TRX_UL_V0HDR_LEN, /* TRXDv0 */ + TRX_UL_V1HDR_LEN, /* TRXDv1 */ +}; + /* TRXD header dissector for version 0 */ static int trx_data_handle_hdr_v0(struct trx_l1h *l1h, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { - /* Make sure we have enough data */ - if (buf_len < TRX_UL_V0HDR_LEN) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Short read on TRXD, missing version 0 header " - "(len=%zu vs expected %d)\n", buf_len, TRX_UL_V0HDR_LEN); - return -EIO; - } - bi->tn = buf[0] & 0b111; bi->fn = osmo_load32be(buf + 1); bi->rssi = -(int8_t)buf[5]; @@ -785,14 +783,6 @@ { int rc; - /* Make sure we have enough data */ - if (buf_len < TRX_UL_V1HDR_LEN) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Short read on TRXD, missing version 1 header " - "(len=%zu vs expected %d)\n", buf_len, TRX_UL_V1HDR_LEN); - return -EIO; - } - /* Parse v0 specific part */ rc = trx_data_handle_hdr_v0(l1h, bi, buf, buf_len); if (rc < 0) @@ -948,6 +938,14 @@ return -EIO; } + /* Make sure that we have enough bytes to parse the header */ + if (buf_len < trx_data_rx_hdr_len[pdu_ver]) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Rx malformed TRXDv%u PDU: len=%zd < expected %u\n", + pdu_ver, buf_len, trx_data_rx_hdr_len[pdu_ver]); + return -EINVAL; + } + /* Parse header depending on the PDU version */ switch (pdu_ver) { case 0: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7df851c3afb82133f84dc805e0926438a90efe07 Gerrit-Change-Number: 23863 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 Sat Apr 24 09:38:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 24 Apr 2021 09:38:37 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: pass 'struct phy_instance' to TRXD dissectors In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23864 ) Change subject: osmo-bts-trx: pass 'struct phy_instance' to TRXD dissectors ...................................................................... osmo-bts-trx: pass 'struct phy_instance' to TRXD dissectors All these functions need the PHY instance pointer for logging, they don't really need a pointer to 'struct trx_l1h'. Change-Id: I626b4392a8bc57a3fe5e8c931aa1ce9dd505676c Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 15 insertions(+), 15 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-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 28b5f2e..d2ad877 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -730,7 +730,7 @@ }; /* TRXD header dissector for version 0 */ -static int trx_data_handle_hdr_v0(struct trx_l1h *l1h, +static int trx_data_handle_hdr_v0(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { @@ -743,7 +743,7 @@ } /* Parser for MTS (Modulation and Training Sequence) */ -static inline int trx_data_parse_mts(struct trx_l1h *l1h, +static inline int trx_data_parse_mts(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t mts) { @@ -762,7 +762,7 @@ bi->mod = TRX_MOD_T_8PSK; bi->tsc_set = (mts >> 3) & 0x01; } else { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + LOGPPHI(phy_inst, DTRX, LOGL_ERROR, "Rx TRXD PDU with unknown or not supported " "modulation (MTS=0x%02x)\n", mts); return -ENOTSUP; @@ -777,14 +777,14 @@ } /* TRXD header dissector for version 0x01 */ -static int trx_data_handle_hdr_v1(struct trx_l1h *l1h, +static int trx_data_handle_hdr_v1(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { int rc; /* Parse v0 specific part */ - rc = trx_data_handle_hdr_v0(l1h, bi, buf, buf_len); + rc = trx_data_handle_hdr_v0(phy_inst, bi, buf, buf_len); if (rc < 0) return rc; @@ -793,7 +793,7 @@ buf += rc; /* MTS (Modulation and Training Sequence) */ - rc = trx_data_parse_mts(l1h, bi, buf[0]); + rc = trx_data_parse_mts(phy_inst, bi, buf[0]); if (rc < 0) return rc; @@ -805,7 +805,7 @@ } /* TRXD burst handler for PDU version 0 */ -static int trx_data_handle_burst_v0(struct trx_l1h *l1h, +static int trx_data_handle_burst_v0(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { @@ -824,7 +824,7 @@ break; default: - LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, + LOGPPHI(phy_inst, DTRX, LOGL_NOTICE, "Rx TRXD message with odd burst length %zu\n", buf_len); return -EINVAL; } @@ -841,7 +841,7 @@ } /* TRXD burst handler for PDU version 1 */ -static int trx_data_handle_burst_v1(struct trx_l1h *l1h, +static int trx_data_handle_burst_v1(struct phy_instance *phy_inst, struct trx_ul_burst_ind *bi, const uint8_t *buf, size_t buf_len) { @@ -853,7 +853,7 @@ /* Verify burst length */ if (bl[bi->mod] != buf_len) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_NOTICE, + LOGPPHI(phy_inst, DTRX, LOGL_NOTICE, "Rx TRXD message with odd burst length %zu, " "expected %zu\n", buf_len, bl[bi->mod]); return -EINVAL; @@ -861,7 +861,7 @@ /* The PDU format is the same as for version 0. * NOTE: other modulation types to be handled separately. */ - return trx_data_handle_burst_v0(l1h, bi, buf, buf_len); + return trx_data_handle_burst_v0(phy_inst, bi, buf, buf_len); } static const char *trx_data_desc_msg(const struct trx_ul_burst_ind *bi) @@ -950,10 +950,10 @@ switch (pdu_ver) { case 0: /* Legacy protocol has no version indicator */ - hdr_len = trx_data_handle_hdr_v0(l1h, &bi, buf, buf_len); + hdr_len = trx_data_handle_hdr_v0(l1h->phy_inst, &bi, buf, buf_len); break; case 1: - hdr_len = trx_data_handle_hdr_v1(l1h, &bi, buf, buf_len); + hdr_len = trx_data_handle_hdr_v1(l1h->phy_inst, &bi, buf, buf_len); break; default: /* Shall not happen */ @@ -982,10 +982,10 @@ /* Handle burst bits */ switch (pdu_ver) { case 0: - rc = trx_data_handle_burst_v0(l1h, &bi, buf + hdr_len, buf_len); + rc = trx_data_handle_burst_v0(l1h->phy_inst, &bi, buf + hdr_len, buf_len); break; case 1: - rc = trx_data_handle_burst_v1(l1h, &bi, buf + hdr_len, buf_len); + rc = trx_data_handle_burst_v1(l1h->phy_inst, &bi, buf + hdr_len, buf_len); break; default: /* Shall not happen, just to make GCC happy */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23864 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I626b4392a8bc57a3fe5e8c931aa1ce9dd505676c Gerrit-Change-Number: 23864 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 Sat Apr 24 09:40:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 24 Apr 2021 09:40:51 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: enlarge and share TRXD message buffer 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/+/23865 to look at the new patch set (#2). Change subject: osmo-bts-trx: enlarge and share TRXD message buffer ...................................................................... osmo-bts-trx: enlarge and share TRXD message buffer Starting from TRXDv2, several PDUs may be batched together and sent in all together a single datagram. This requires us to increase the buffer size that we use for sending and receiving TRXD messages. Let's use 65536 matching the default MTU value for 'lo' interface on Linux. Given that 65536 is quite a big number, let's allocate a shared Rx/Tx buffer statically to avoid [potential] stack overflow. Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 2 files changed, 15 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/65/23865/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Gerrit-Change-Number: 23865 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 09:41:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 09:41:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Initial test suite for osmo-pcap-client References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23878 ) Change subject: Initial test suite for osmo-pcap-client ...................................................................... Initial test suite for osmo-pcap-client Change-Id: If4a1072e75cb64f785d660e4c828c0f521d84b16 --- M Makefile A library/OPCAP_Adapter.ttcn A library/OPCAP_CodecPort.ttcn A library/OPCAP_CodecPort_CtrlFunct.ttcn A library/OPCAP_CodecPort_CtrlFunctdef.cc A library/OPCAP_Templates.ttcn A library/OPCAP_Types.ttcn A pcap-client/OPCAP_CLIENT_Tests.cfg A pcap-client/OPCAP_CLIENT_Tests.default A pcap-client/OPCAP_CLIENT_Tests.ttcn A pcap-client/gen_links.sh A pcap-client/osmo-pcap-client.cfg 12 files changed, 714 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/78/23878/1 diff --git a/Makefile b/Makefile index 81540ba..0567081 100644 --- a/Makefile +++ b/Makefile @@ -28,6 +28,7 @@ mme \ msc \ ns \ + pcap-client \ pcu \ pgw \ remsim \ diff --git a/library/OPCAP_Adapter.ttcn b/library/OPCAP_Adapter.ttcn new file mode 100644 index 0000000..8bcc3fd --- /dev/null +++ b/library/OPCAP_Adapter.ttcn @@ -0,0 +1,105 @@ +module OPCAP_Adapter { + +/* OPCAP Adapter layer, sitting on top of OPCAP_CodecPort. + * test suites can 'inherit' in order to have a OPCAP connection to the IUT which they're testing + * + * (C) 2021 by Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + */ + + +import from Osmocom_Types all; +import from General_Types all; +import from OPCAP_Types all; +import from OPCAP_Templates all; +import from OPCAP_CodecPort all; +import from OPCAP_CodecPort_CtrlFunct all; +import from IPL4asp_Types all; +import from IPL4asp_PortType all; +import from Socket_API_Definitions all; + +const integer NUM_OPCAP := 3; + +type component OPCAP_Adapter_CT { + /* down-facing port to OPCAP Codec port */ + port OPCAP_CODEC_PT OPCAP[NUM_OPCAP]; + var IPL4asp_Types.ConnectionId g_opcap_conn_id[NUM_OPCAP] := { -1, -1, -1 }; +} + +private function f_set_tcp_segmentation(integer idx) runs on OPCAP_Adapter_CT { + /* Set function for dissecting the binary stream into packets */ + var f_IPL4_getMsgLen vl_f := refers(f_IPL4_fixedMsgLen); + /* Offset: 2, size of length: 2, delta: 4, multiplier: 1, big-endian */ + OPCAP_CodecPort_CtrlFunct.f_IPL4_setGetMsgLen(OPCAP[idx], g_opcap_conn_id[idx], vl_f, {2, 2, 4, 1, 0}); +} + +function f_connect(charstring remote_host, IPL4asp_Types.PortNumber remote_port, + charstring local_host, IPL4asp_Types.PortNumber local_port, integer idx := 0) +runs on OPCAP_Adapter_CT { + var IPL4asp_Types.Result res; + map(self:OPCAP[idx], system:OPCAP); + if (g_opcap_conn_id[idx] != -1) { + OPCAP_CodecPort_CtrlFunct.f_IPL4_close(OPCAP[idx], g_opcap_conn_id[idx], {tcp := {}}); + g_opcap_conn_id[idx] := -1; + } + res := OPCAP_CodecPort_CtrlFunct.f_IPL4_connect(OPCAP[idx], remote_host, remote_port, + local_host, local_port, 0, { tcp :={} }); + if (not ispresent(res.connId)) { + setverdict(fail, "Could not connect to OPCAP port, check your configuration ", + "{remote ", remote_host, ":", remote_port, " local ", local_host, ":", local_port, "}"); + mtc.stop; + } + g_opcap_conn_id[idx] := res.connId; + + f_set_tcp_segmentation(idx); +} + +/* Function to use to bind to a local port as IPA server, accepting remote clients */ +function f_bind(charstring local_host, IPL4asp_Types.PortNumber local_port, integer idx := 0) +runs on OPCAP_Adapter_CT { + var IPL4asp_Types.Result res; + map(self:OPCAP[idx], system:OPCAP); + if (g_opcap_conn_id[idx] != -1) { + OPCAP_CodecPort_CtrlFunct.f_IPL4_close(OPCAP[idx], g_opcap_conn_id[idx], {tcp := {}}); + g_opcap_conn_id[idx] := -1; + } + res := OPCAP_CodecPort_CtrlFunct.f_IPL4_listen(OPCAP[idx], local_host, local_port, { tcp:={} }); + if (not ispresent(res.connId)) { + setverdict(fail, "Could not bind to OPCAP port, check your configuration ", + "{local ", local_host, ":", local_port, "}"); + mtc.stop; + } + g_opcap_conn_id[idx] := res.connId; + + f_set_tcp_segmentation(idx); +} + +function f_wait_client_connect(integer idx) runs on OPCAP_Adapter_CT { + var IPL4asp_Types.PortEvent rx_event; + OPCAP[idx].receive(IPL4asp_Types.PortEvent:{connOpened:=?}) -> value rx_event { + log("Connection from ", rx_event.connOpened.remName, ":", rx_event.connOpened.remPort); + /* we want to store the client's connId, not the 'bind socket' one */ + g_opcap_conn_id[idx] := rx_event.connOpened.connId; + } +} + +function f_disconnect(integer idx) runs on OPCAP_Adapter_CT { + OPCAP_CodecPort_CtrlFunct.f_IPL4_close(OPCAP[idx], g_opcap_conn_id[idx], {tcp := {}}); + OPCAP[idx].clear; +}; + +function f_opcap_send(template (value) OPCAP_PDU pdu, integer idx := 0) runs on OPCAP_Adapter_CT { + OPCAP[idx].send(ts_OPCAP_Send(g_opcap_conn_id[idx], pdu)); +} + +function f_opcap_exp(template OPCAP_PDU exp, integer idx := 0) runs on OPCAP_Adapter_CT return OPCAP_PDU { + var OPCAP_RecvFrom rf; + OPCAP[idx].receive(tr_OPCAP_Recv(g_opcap_conn_id[idx], exp)) -> value rf; + return rf.msg; +} + + +} diff --git a/library/OPCAP_CodecPort.ttcn b/library/OPCAP_CodecPort.ttcn new file mode 100644 index 0000000..f2d215d --- /dev/null +++ b/library/OPCAP_CodecPort.ttcn @@ -0,0 +1,64 @@ +module OPCAP_CodecPort { + +/* Simple OPCAP Codec Port, translating between raw TCP octetstring payload + * towards the IPL4asp port provider, and OPCAP primitives + * which carry the decoded OPCAP data types as payload. + * + * (C) 2021 by Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + */ + + +import from IPL4asp_PortType all; +import from IPL4asp_Types all; +import from OPCAP_Types all; + +type record OPCAP_RecvFrom { + ConnectionId connId, + OPCAP_PDU msg +} + +type record OPCAP_Send { + ConnectionId connId, + OPCAP_PDU msg +} + +template (value) OPCAP_Send ts_OPCAP_Send(ConnectionId conn_id, template (value) OPCAP_PDU msg) := { + connId := conn_id, + msg := msg +} + +template OPCAP_RecvFrom tr_OPCAP_Recv(template ConnectionId conn_id, template OPCAP_PDU msg) := { + connId := conn_id, + msg := msg +} + +private function IPL4_to_OPCAP_RecvFrom(in ASP_RecvFrom pin, out OPCAP_RecvFrom pout) { + pout.connId := pin.connId; + pout.msg := dec_OPCAP_PDU(pin.msg); +} with { extension "prototype(fast)" } + +private function OPCAP_to_IPL4_Send(in OPCAP_Send pin, out ASP_Send pout) { + pout.connId := pin.connId; + pout.proto := { tcp := {} }; + pout.msg := enc_OPCAP_PDU(pin.msg); +} with { extension "prototype(fast)" } + +type port OPCAP_CODEC_PT message { + out OPCAP_Send; + in OPCAP_RecvFrom, + ASP_ConnId_ReadyToRelease, + ASP_Event; +} with { extension "user IPL4asp_PT + out(OPCAP_Send -> ASP_Send: function(OPCAP_to_IPL4_Send)) + in(ASP_RecvFrom -> OPCAP_RecvFrom: function(IPL4_to_OPCAP_RecvFrom); + ASP_ConnId_ReadyToRelease -> ASP_ConnId_ReadyToRelease: simple; + ASP_Event -> ASP_Event: simple)" +} + + + +} diff --git a/library/OPCAP_CodecPort_CtrlFunct.ttcn b/library/OPCAP_CodecPort_CtrlFunct.ttcn new file mode 100644 index 0000000..99a5fe7 --- /dev/null +++ b/library/OPCAP_CodecPort_CtrlFunct.ttcn @@ -0,0 +1,52 @@ +module OPCAP_CodecPort_CtrlFunct { + + import from OPCAP_CodecPort all; + import from IPL4asp_Types all; + + external function f_IPL4_listen( + inout OPCAP_CODEC_PT portRef, + in HostName locName, + in PortNumber locPort, + in ProtoTuple proto, + in OptionList options := {} + ) return Result; + + external function f_IPL4_connect( + inout OPCAP_CODEC_PT portRef, + in HostName remName, + in PortNumber remPort, + in HostName locName, + in PortNumber locPort, + in ConnectionId connId, + in ProtoTuple proto, + in OptionList options := {} + ) return Result; + + external function f_IPL4_close( + inout OPCAP_CODEC_PT portRef, + in ConnectionId id, + in ProtoTuple proto := { unspecified := {} } + ) return Result; + + external function f_IPL4_setUserData( + inout OPCAP_CODEC_PT portRef, + in ConnectionId id, + in UserData userData + ) return Result; + + external function f_IPL4_getUserData( + inout OPCAP_CODEC_PT portRef, + in ConnectionId id, + out UserData userData + ) return Result; + + external function f_IPL4_setGetMsgLen( + inout OPCAP_CODEC_PT portRef, + in ConnectionId id, + inout f_IPL4_getMsgLen f, + in ro_integer msgLenArgs + ); + + +} + diff --git a/library/OPCAP_CodecPort_CtrlFunctdef.cc b/library/OPCAP_CodecPort_CtrlFunctdef.cc new file mode 100644 index 0000000..b19138a --- /dev/null +++ b/library/OPCAP_CodecPort_CtrlFunctdef.cc @@ -0,0 +1,66 @@ +#include "IPL4asp_PortType.hh" +#include "OPCAP_CodecPort.hh" +#include "IPL4asp_PT.hh" + +namespace OPCAP__CodecPort__CtrlFunct { + + IPL4asp__Types::Result f__IPL4__listen( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::HostName& locName, + const IPL4asp__Types::PortNumber& locPort, + const IPL4asp__Types::ProtoTuple& proto, + const IPL4asp__Types::OptionList& options) + { + return f__IPL4__PROVIDER__listen(portRef, locName, locPort, proto, options); + } + + IPL4asp__Types::Result f__IPL4__connect( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::HostName& remName, + const IPL4asp__Types::PortNumber& remPort, + const IPL4asp__Types::HostName& locName, + const IPL4asp__Types::PortNumber& locPort, + const IPL4asp__Types::ConnectionId& connId, + const IPL4asp__Types::ProtoTuple& proto, + const IPL4asp__Types::OptionList& options) + { + return f__IPL4__PROVIDER__connect(portRef, remName, remPort, + locName, locPort, connId, proto, options); + } + + IPL4asp__Types::Result f__IPL4__close( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::ConnectionId& connId, + const IPL4asp__Types::ProtoTuple& proto) + { + return f__IPL4__PROVIDER__close(portRef, connId, proto); + } + + IPL4asp__Types::Result f__IPL4__setUserData( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::ConnectionId& connId, + const IPL4asp__Types::UserData& userData) + { + return f__IPL4__PROVIDER__setUserData(portRef, connId, userData); + } + + IPL4asp__Types::Result f__IPL4__getUserData( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::ConnectionId& connId, + IPL4asp__Types::UserData& userData) + { + return f__IPL4__PROVIDER__getUserData(portRef, connId, userData); + } + + void f__IPL4__setGetMsgLen( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::ConnectionId& connId, + Socket__API__Definitions::f__getMsgLen& f, + const Socket__API__Definitions::ro__integer& msgLenArgs) + { + return f__IPL4__PROVIDER__setGetMsgLen(portRef, connId, f, msgLenArgs); + } + + +} + diff --git a/library/OPCAP_Templates.ttcn b/library/OPCAP_Templates.ttcn new file mode 100644 index 0000000..0a1c884 --- /dev/null +++ b/library/OPCAP_Templates.ttcn @@ -0,0 +1,54 @@ +module OPCAP_Templates { + +/* OPCAP_Templates, defining TTCN-3 templates for the osmo-pcap protocol. + * + * OPCAP is a non-standard protocol used between osmo-pcap-client and osmo-pcap-server. + * + * (C) 2021 by Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + */ + +import from General_Types all; +import from Osmocom_Types all; +import from OPCAP_Types all; + + +template (present) OPCAP_PDU tr_OPCAP_FILE_HDR(template (present) uint32_t linktype := ?) := { + msg_type := PKT_LINK_HDR, + spare := ?, + len := 24, + u := { + file := { + magic := PCAP_MAGIC, + version_major := PCAP_VERSION_MAJOR, + version_minor := PCAP_VERSION_MINOR, + thiszone := 0, + sigfigs := 0, + snaplen := 9000, + linktype := linktype + } + } +} + +template (present) OPCAP_PDU tr_OPCAP_PKT(template (present) octetstring payload, + template (present) uint32_t caplen := ?, + template (present) uint32_t len := ?) := { + msg_type := PKT_LINK_DATA, + spare := ?, + len := ?, + u := { + packet := { + ts_sec := ?, + ts_usec := ?, + caplen := caplen, + len := len, + payload := payload + } + } +} + + +}; diff --git a/library/OPCAP_Types.ttcn b/library/OPCAP_Types.ttcn new file mode 100644 index 0000000..d244fef --- /dev/null +++ b/library/OPCAP_Types.ttcn @@ -0,0 +1,78 @@ +module OPCAP_Types { + +/* OPCAP_Types, defining abstract TTCN-3 data types for the osmo-pcap protocol. + * + * OPCAP is a non-standard protocol used between osmo-pcap-client and osmo-pcap-server. + * + * (C) 2021 by Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + */ + +import from General_Types all; +import from Osmocom_Types all; + +type enumerated OpcapMsgType { + PKT_LINK_HDR (0), + PKT_LINK_DATA (1) +} with { variant "FIELDLENGTH(8)" }; + +type record OPCAP_PDU { + OpcapMsgType msg_type, + uint8_t spare, + uint16_t len, + OpcapBodyUnion u +} with { + variant (len) "LENGTHTO(u)" + variant (len) "BYTEORDER(last)" + variant (u) "CROSSTAG( + file, msg_type = PKT_LINK_HDR; + packet, msg_type = PKT_LINK_DATA; + )" +}; + +type union OpcapBodyUnion { + PcapFileHeader file, + OpcapPacket packet +}; + +/* header in front of a PKT_LINK_DATA */ +type record OpcapPacket { + uint32_t ts_sec, + uint32_t ts_usec, + uint32_t caplen, + uint32_t len, + octetstring payload +} with { + variant (caplen) "LENGTHTO(payload)" +}; + +/* below definitions are from pcap/pcap.h */ +const uint16_t PCAP_VERSION_MAJOR := 2; +const uint16_t PCAP_VERSION_MINOR := 4; +const uint32_t PCAP_MAGIC := 2712847316; //0xA1B2C3D4; + +type record PcapFileHeader { + uint32_t magic, + uint16_t version_major, + uint16_t version_minor, + uint32_t thiszone, + uint32_t sigfigs, + uint32_t snaplen, + uint32_t linktype +}; + +/* below definitions are from pcap/dlt.h */ +const uint32_t DLT_LINUX_SLL := 113; +const uint32_t DLT_EN10MB := 1; + + +external function enc_OPCAP_PDU(in OPCAP_PDU msg) return octetstring + with { extension "prototype(convert) encode(RAW)" }; + +external function dec_OPCAP_PDU(in octetstring msg) return OPCAP_PDU + with { extension "prototype(convert) decode(RAW)" }; + +} with { encode "RAW"; variant "FIELDORDER(msb)"; variant "BYTEORDER(first)" }; diff --git a/pcap-client/OPCAP_CLIENT_Tests.cfg b/pcap-client/OPCAP_CLIENT_Tests.cfg new file mode 100644 index 0000000..3476c2f --- /dev/null +++ b/pcap-client/OPCAP_CLIENT_Tests.cfg @@ -0,0 +1,18 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./OPCAP_CLIENT_Tests.default" + +# Local configuration below + +[LOGGING] + +[TESTPORT_PARAMETERS] + +[MODULE_PARAMETERS] + +[MAIN_CONTROLLER] + +[EXECUTE] +OPCAP_CLIENT_Tests.control diff --git a/pcap-client/OPCAP_CLIENT_Tests.default b/pcap-client/OPCAP_CLIENT_Tests.default new file mode 100644 index 0000000..2b1677b --- /dev/null +++ b/pcap-client/OPCAP_CLIENT_Tests.default @@ -0,0 +1,19 @@ +[LOGGING] +mtc.FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC; + +[TESTPORT_PARAMETERS] +*.VTY.CTRL_MODE := "client" +*.VTY.CTRL_HOSTNAME := "127.0.0.1" +*.VTY.CTRL_PORTNUM := "4237" +*.VTY.CTRL_LOGIN_SKIPPED := "yes" +*.VTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes" +*.VTY.CTRL_READMODE := "buffered" +*.VTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes" +*.VTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes" +*.VTY.PROMPT1 := "OsmoPCAPClient> " +*.TCP.noDelay := "yes" // turn off nagle + +[MODULE_PARAMETERS] +Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoPCAPClient" + +[EXECUTE] diff --git a/pcap-client/OPCAP_CLIENT_Tests.ttcn b/pcap-client/OPCAP_CLIENT_Tests.ttcn new file mode 100644 index 0000000..5f59caf --- /dev/null +++ b/pcap-client/OPCAP_CLIENT_Tests.ttcn @@ -0,0 +1,212 @@ +module OPCAP_CLIENT_Tests { + +import from OPCAP_Adapter all; +import from OPCAP_Types all; +import from OPCAP_Templates all; + +import from IPL4asp_Types all; +import from IPL4asp_PortType all; +import from Osmocom_Types all; +import from Osmocom_VTY_Functions all; +import from TELNETasp_PortType all; +import from Socket_API_Definitions all; + +type record IpPort { + charstring ip, + integer udp_port +}; + +modulepar { + /* local IP address listening for OPCAP connections */ + charstring mp_local_opcap_ip := "127.0.0.1"; + /* local TCP base port for inbound OPCAP connections */ + integer mp_local_opcap_port := 5000; + + /* IP + port for simulating user traffic */ + IpPort mp_traffic_a := { "127.0.0.23", 44423 }; + IpPort mp_traffic_b := { "127.0.0.42", 44442 }; +}; + +type component test_CT extends OPCAP_Adapter_CT { + timer g_Tguard := 30.0; + + port TELNETasp_PT VTY; + + /* port to generate IP traffic that may or may not be captured */ + port IPL4asp_PT IP; + var integer g_traffic_conn_id[2]; +}; + +private altstep as_Tguard() runs on test_CT { +[] g_Tguard.timeout { + setverdict(fail, "global guard timeout"); + mtc.stop; + } +} + +/* initialize one of the OPCAP servers, wait for client to connect */ +private function f_init_one_srv(integer idx, template (present) uint32_t linktype) runs on test_CT { + /* start guard timer */ + activate(as_Tguard()); + g_Tguard.start; + log("Waiting for client-", idx, " connection..."); + /* wait for connection */ + f_bind(mp_local_opcap_ip, mp_local_opcap_port+idx, idx); + f_wait_client_connect(idx); + /* wait for file header */ + f_opcap_exp(tr_OPCAP_FILE_HDR(linktype), idx); +}; + + +/* global initialization */ +private function f_init() runs on test_CT { + map(self:VTY, system:VTY); + f_vty_set_prompts(VTY); + f_vty_transceive(VTY, "enable"); + + map(self:IP, system:IP); + var IPL4asp_Types.Result res + + /* 0 -> 1 */ + res := f_IPL4_connect(IP, mp_traffic_b.ip, mp_traffic_b.udp_port, + mp_traffic_a.ip, mp_traffic_a.udp_port, -1, { udp:={} }); + g_traffic_conn_id[0] := res.connId; + + /* 1 -> 0 */ + res := f_IPL4_connect(IP, mp_traffic_a.ip, mp_traffic_a.udp_port, + mp_traffic_b.ip, mp_traffic_b.udp_port, -1, { udp:={} }); + g_traffic_conn_id[1] := res.connId; +} + +/* generate user traffic from A -> B */ +function f_trafic_pkt_ab(octetstring payload) runs on test_CT { + IP.send(ASP_Send:{g_traffic_conn_id[0], omit, payload}) + IP.receive(ASP_RecvFrom:{g_traffic_conn_id[1], ?, ?, ?, ?, { udp:={} }, ?, payload}); +} + +/* generate user traffic from B -> A */ +function f_trafic_pkt_ba(octetstring payload) runs on test_CT { + IP.send(ASP_Send:{g_traffic_conn_id[1], omit, payload}) + IP.receive(ASP_RecvFrom:{g_traffic_conn_id[0], ?, ?, ?, ?, { udp:={} }, ?, payload}); +} + +/* expect a specified UDP payload on the OPCAP connection 'idx' */ +function f_opcap_exp_udp(octetstring udp_payload, integer idx) runs on test_CT { + var octetstring rx_tail; + var integer udp_payload_len, rx_pdu_len; + var OPCAP_PDU rx_pdu; + + udp_payload_len := lengthof(udp_payload); + + /* sadly I couldn't figure out how to create an octetstring template + * for 'match an octetstring ending in 'udp_payload' */ + rx_pdu := f_opcap_exp(tr_OPCAP_PKT(?), idx); + rx_pdu_len := lengthof(rx_pdu.u.packet.payload); + rx_tail := substr(rx_pdu.u.packet.payload, rx_pdu_len - udp_payload_len, udp_payload_len); + if (rx_tail != udp_payload) { + log("captured UDP payload: ", rx_tail, " but expected: ", udp_payload); + setverdict(fail); + } else { + setverdict(pass); + } +} + +/* create an additional pcap-store-connection via the VTY */ +function f_vty_create_addl_connection(integer idx) runs on test_CT +{ + f_vty_config3(VTY, { "client", "pcap-store-connectio second-" & int2str(idx) }, + { "server ip " & mp_local_opcap_ip, + "server port " & int2str(mp_local_opcap_port + idx), + "connect" } + ); +} + + + +/* wait for inbound client connection and reception of link header */ +testcase TC_connect_rx_hdr() runs on test_CT +{ + f_init(); + f_init_one_srv(0, ?); + setverdict(pass); +} + +/* check if client connection is re-started after a close */ +testcase TC_reconnect(integer idx := 0) runs on test_CT +{ + f_init(); + f_init_one_srv(idx, ?); + f_sleep(2.0); + + log("Disconnecting client-", idx); + f_disconnect(idx); + + f_wait_client_connect(idx); + f_opcap_exp(tr_OPCAP_FILE_HDR(?), idx); + setverdict(pass); +} + +/* capture a packet that's within the filter */ +testcase TC_capture() runs on test_CT +{ + f_init(); + f_init_one_srv(0, ?); + + for (var integer i := 0; i < 10; i := i + 1) { + var octetstring udp_payload; + + /* we assume 1400 is low enough to avoid IP fragmentation */ + udp_payload := f_rnd_octstring(f_rnd_int(1400)); + f_trafic_pkt_ab(udp_payload); + + f_opcap_exp_udp(udp_payload, 0); + } +} + +/* wait for inbound client connections and reception of link header */ +testcase TC_multi_connect_rx_hdr() runs on test_CT +{ + f_init(); + f_init_one_srv(0, ?); + f_vty_create_addl_connection(1); + f_init_one_srv(1, ?); + setverdict(pass); +} + +/* ensure a packet that's within the filter is sent to secondary clients */ +testcase TC_multi_capture() runs on test_CT +{ + f_init(); + f_init_one_srv(0, ?); + f_vty_create_addl_connection(1); + f_init_one_srv(1, ?); + + for (var integer i := 0; i < 10; i := i + 1) { + var octetstring udp_payload; + + /* we assume 1400 is low enough to avoid IP fragmentation */ + udp_payload := f_rnd_octstring(f_rnd_int(1400)); + f_trafic_pkt_ab(udp_payload); + + /* expect packet to arrive on both simulated servers */ + f_opcap_exp_udp(udp_payload, 0); + f_opcap_exp_udp(udp_payload, 1); + } +} + +/* TODO: ensure a packet outside the filter is dropped */ +/* TODO: capture of truncated packet */ +/* TODO: stall the receive window */ +/* TODO: different link type (ethernet, not SLL) */ + + +control { + execute( TC_connect_rx_hdr() ); + execute( TC_reconnect() ); + execute( TC_capture() ); + execute( TC_multi_connect_rx_hdr() ); + execute( TC_multi_capture() ); +}; + + +}; diff --git a/pcap-client/gen_links.sh b/pcap-client/gen_links.sh new file mode 100755 index 0000000..e459959 --- /dev/null +++ b/pcap-client/gen_links.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +BASEDIR=../deps + +. ../gen_links.sh.inc + +DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src +FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCInterface.cc TCCInterface_ip.h" +FILES+=" TCCEncoding_Functions.ttcn TCCEncoding.cc " # GSM 7-bit coding +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src +FILES="Socket_API_Definitions.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.IPL4asp/src +FILES="IPL4asp_Functions.ttcn IPL4asp_PT.cc IPL4asp_PT.hh IPL4asp_PortType.ttcn IPL4asp_Types.ttcn IPL4asp_discovery.cc IPL4asp_protocol_L234.hh" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.TELNETasp/src +FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn" +gen_links $DIR $FILES + +DIR=../library +FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc " +FILES+="Osmocom_VTY_Functions.ttcn " +FILES+="OPCAP_Types.ttcn OPCAP_Templates.ttcn " +FILES+="OPCAP_CodecPort.ttcn OPCAP_CodecPort_CtrlFunct.ttcn OPCAP_CodecPort_CtrlFunctdef.cc OPCAP_Adapter.ttcn " +gen_links $DIR $FILES + +ignore_pp_results diff --git a/pcap-client/osmo-pcap-client.cfg b/pcap-client/osmo-pcap-client.cfg new file mode 100644 index 0000000..89f1801 --- /dev/null +++ b/pcap-client/osmo-pcap-client.cfg @@ -0,0 +1,14 @@ +! +! OsmoPCAPClient (UNKNOWN-dirty) configuration saved from vty +!! +! +! +line vty + no login +! +client + pcap device lo + pcap filter udp port 44423 + pcap detect-loop 0 + server ip 127.0.0.1 + server port 5000 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If4a1072e75cb64f785d660e4c828c0f521d84b16 Gerrit-Change-Number: 23878 Gerrit-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 Apr 24 09:43:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 09:43:29 +0000 Subject: Change in pysim[master]: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 In-Reply-To: References: Message-ID: Hello Jenkins Builder, herlesupreeth, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/23836 to look at the new patch set (#3). Change subject: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 ...................................................................... ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 Change-Id: I344d8247ff81463e5c0140ff17e66322a61ef20f --- M pySim/ts_31_102.py 1 file changed, 12 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/36/23836/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I344d8247ff81463e5c0140ff17e66322a61ef20f Gerrit-Change-Number: 23836 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 09:46:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 24 Apr 2021 09:46:11 +0000 Subject: Change in pysim[master]: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23836 ) Change subject: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I344d8247ff81463e5c0140ff17e66322a61ef20f Gerrit-Change-Number: 23836 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Comment-Date: Sat, 24 Apr 2021 09: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 Sat Apr 24 10:08:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:08:34 +0000 Subject: Change in pysim[master]: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23836 ) Change subject: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 ...................................................................... Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/pysim/+/23836/2/pySim/ts_31_102.py File pySim/ts_31_102.py: https://gerrit.osmocom.org/c/pysim/+/23836/2/pySim/ts_31_102.py at 155 PS2, Line 155: 129: '5GS Operator PLMN List', > Something is wrong with alignment here. Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I344d8247ff81463e5c0140ff17e66322a61ef20f Gerrit-Change-Number: 23836 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 10:08:34 +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 Sat Apr 24 10:08:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:08:39 +0000 Subject: Change in pysim[master]: ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23837 ) Change subject: ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I2d4662dc021e286a1c3293ab36aaa845b1251388 Gerrit-Change-Number: 23837 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 10: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 Sat Apr 24 10:08:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:08:47 +0000 Subject: Change in pysim[master]: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23836 ) Change subject: ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 ...................................................................... ts_31_102: Extend DF_5GS to 3GPP 31.102 R16.6 Change-Id: I344d8247ff81463e5c0140ff17e66322a61ef20f --- M pySim/ts_31_102.py 1 file changed, 12 insertions(+), 3 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 1a78a12..3497dee 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """ -Various constants from ETSI TS 131 102 +Various constants from 3GPP TS 31.102 V16.6.0 """ # @@ -152,6 +152,13 @@ 126: 'UAC Access Identities support', 127: 'Expect control plane-based Steering of Roaming information during initial registration in VPLMN', 128: 'Call control on PDU Session by USIM', + 129: '5GS Operator PLMN List', + 130: 'Support for SUPI of type NSI or GLI or GCI', + 131: '3GPP PS Data Off separate Home and Roaming lists', + 132: 'Support for URSP by USIM', + 133: '5G Security Parameters extended', + 134: 'MuD and MiD configuration data', + 135: 'Support for Trusted non-3GPP access networks by USIM' } LOCI_STATUS_map = { @@ -633,7 +640,7 @@ def __init__(self, fid='5FC0', name='DF.5GS', desc='5GS related files'): super().__init__(fid=fid, name=name, desc=desc) files = [ - # I'm looking at 31.102 R15.9 + # I'm looking at 31.102 R16.6 EF_5GS3GPPLOCI(), EF_5GS3GPPLOCI('4f02', 0x02, 'EF.5GSN3GPPLOCI', '5GS non-3GPP location information'), LinFixedEF('4F03', 0x03, 'EF.5GS3GPPNSC', '5GS 3GPP Access NAS Security Context', rec_len={57,None}), @@ -642,8 +649,10 @@ EF_UAC_AIC(), EF_SUCI_Calc_Info(), EF_OPL5G(), - TransparentEF('4F09', 0x09, 'EF.NSI', 'Network Specific Identifier'), + TransparentEF('4F09', 0x09, 'EF.SUPI_NAI', 'SUPI as Network Access Identifier'), TransparentEF('4F0A', 0x0a, 'EF.Routing_Indicator', 'Routing Indicator', size={4,4}), + TransparentEF('4F0B', 0x0b, 'EF.URSP', 'UE Route Selector Policies per PLMN'), + TransparentEF('4F0C', 0x0c, 'EF.TN3GPPSNN', 'Trusted non-3GPP Serving network names list'), ] self.add_files(files) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I344d8247ff81463e5c0140ff17e66322a61ef20f Gerrit-Change-Number: 23836 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 10:08:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:08:47 +0000 Subject: Change in pysim[master]: ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23837 ) Change subject: ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs ...................................................................... ts_31_102: Define DF_WLAN, DF_ProSe and DF_HNB with their EFs Change-Id: I2d4662dc021e286a1c3293ab36aaa845b1251388 --- M pySim/ts_31_102.py 1 file changed, 58 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 3497dee..2de3948 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -636,6 +636,61 @@ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={10,None}) self._construct = Struct('tai'/Bytes(9), 'pnn_record_id'/Int8ub) +# TS 31.102 Section 4.4.5 +class DF_WLAN(CardDF): + def __init__(self, fid='5f40', name='DF.WLAN', desc='Files for WLAN purpose'): + super().__init__(fid=fid, name=name, desc=desc) + files = [ + TransparentEF('4f41', 0x01, 'EF.Pseudo', 'Pseudonym'), + TransparentEF('4f42', 0x02, 'EF.UPLMNWLAN', 'User controlled PLMN selector for I-WLAN Access'), + TransparentEF('4f43', 0x03, 'EF.OPLMNWLAN', 'Operator controlled PLMN selector for I-WLAN Access'), + LinFixedEF('4f44', 0x04, 'EF.UWSIDL', 'User controlled WLAN Specific Identifier List'), + LinFixedEF('4f45', 0x05, 'EF.OWSIDL', 'Operator controlled WLAN Specific Identifier List'), + TransparentEF('4f46', 0x06, 'EF.WRI', 'WLAN Reauthentication Identity'), + LinFixedEF('4f47', 0x07, 'EF.HWSIDL', 'Home I-WLAN Specific Identifier List'), + TransparentEF('4f48', 0x08, 'EF.WEHPLMNPI', 'I-WLAN Equivalent HPLMN Presentation Indication'), + TransparentEF('4f49', 0x09, 'EF.WHPI', 'I-WLAN HPLMN Priority Indication'), + TransparentEF('4f4a', 0x0a, 'EF.WLRPLMN', 'I-WLAN Last Registered PLMN'), + TransparentEF('4f4b', 0x0b, 'EF.HPLMNDAI', 'HPLMN Direct Access Indicator'), + ] + self.add_files(files) + +# TS 31.102 Section 4.4.6 +class DF_HNB(CardDF): + def __init__(self, fid='5f50', name='DF.HNB', desc='Files for HomeNodeB purpose'): + super().__init__(fid=fid, name=name, desc=desc) + files = [ + LinFixedEF('4f01', 0x01, 'EF.ACSGL', 'Allowed CSG Lists'), + LinFixedEF('4f02', 0x02, 'EF.CSGTL', 'CSG Types'), + LinFixedEF('4f03', 0x03, 'EF.HNBN', 'Home NodeB Name'), + LinFixedEF('4f04', 0x04, 'EF.OCSGL', 'Operator CSG Lists'), + LinFixedEF('4f05', 0x05, 'EF.OCSGT', 'Operator CSG Type'), + LinFixedEF('4f06', 0x06, 'EF.OHNBN', 'Operator Home NodeB Name'), + ] + self.add_files(files) + +# TS 31.102 Section 4.4.8 +class DF_ProSe(CardDF): + def __init__(self, fid='5f90', name='DF.ProSe', desc='Files for ProSe purpose'): + super().__init__(fid=fid, name=name, desc=desc) + files = [ + LinFixedEF('4f01', 0x01, 'EF.PROSE_MON', 'ProSe Monitoring Parameters'), + LinFixedEF('4f02', 0x02, 'EF.PROSE_ANN', 'ProSe Announcing Parameters'), + LinFixedEF('4f03', 0x03, 'EF.PROSEFUNC', 'HPLMN ProSe Function'), + TransparentEF('4f04', 0x04, 'EF.PROSE_RADIO_COM', 'ProSe Direct Communication Radio Parameters'), + TransparentEF('4f05', 0x05, 'EF.PROSE_RADIO_MON', 'ProSe Direct Discovery Monitoring Radio Parameters'), + TransparentEF('4f06', 0x06, 'EF.PROSE_RADIO_ANN', 'ProSe Direct Discovery Announcing Radio Parameters'), + LinFixedEF('4f07', 0x07, 'EF.PROSE_POLICY', 'ProSe Policy Parameters'), + LinFixedEF('4f08', 0x08, 'EF.PROSE_PLMN', 'ProSe PLMN Parameters'), + TransparentEF('4f09', 0x09, 'EF.PROSE_GC', 'ProSe Group Counter'), + TransparentEF('4f10', 0x10, 'EF.PST', 'ProSe Service Table'), + TransparentEF('4f11', 0x11, 'EF.UIRC', 'ProSe UsageInformationReportingConfiguration'), + LinFixedEF('4f12', 0x12, 'EF.PROSE_GM_DISCOVERY', 'ProSe Group Member Discovery Parameters'), + LinFixedEF('4f13', 0x13, 'EF.PROSE_RELAY', 'ProSe Relay Parameters'), + TransparentEF('4f14', 0x14, 'EF.PROSE_RELAY_DISCOVERY', 'ProSe Relay Discovery Parameters'), + ] + self.add_files(files) + class DF_USIM_5GS(CardDF): def __init__(self, fid='5FC0', name='DF.5GS', desc='5GS related files'): super().__init__(fid=fid, name=name, desc=desc) @@ -762,9 +817,9 @@ # FIXME: DF_SoLSA # FIXME: DF_PHONEBOOK # FIXME: DF_GSM_ACCESS - # FIXME: DF_WLAN - # FIXME: DF_HNB - # FIXME: DF_ProSe + DF_WLAN(), + DF_HNB(), + DF_ProSe(), # FIXME: DF_ACDC # FIXME: DF_TV DF_USIM_5GS(), -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I2d4662dc021e286a1c3293ab36aaa845b1251388 Gerrit-Change-Number: 23837 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 10:08:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:08:48 +0000 Subject: Change in pysim[master]: ts_31_103: Use EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from ts_51_011 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23838 ) Change subject: ts_31_103: Use EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from ts_51_011 ...................................................................... ts_31_103: Use EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from ts_51_011 Change-Id: I688cfddcf5845316f71a9641d4426a20f58c1fba --- M pySim/ts_31_103.py 1 file changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve herlesupreeth: Looks good to me, approved diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index cea4832..7bb7ed2 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -24,7 +24,7 @@ from pySim.filesystem import * from pySim.utils import * -from pySim.ts_51_011 import EF_AD +from pySim.ts_51_011 import EF_AD, EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP from pySim.ts_31_102 import ADF_USIM import pySim.ts_102_221 @@ -176,10 +176,10 @@ EF_GBABP(), EF_GBANL(), EF_NAFKCA(), - # SMS - # SMSS - # SMSR - #EF_SMSP(), + EF_SMS(), + EF_SMSS(), + EF_SMSR(), + EF_SMSP(), EF_UICCIARI(), # FromPreferred EF_IMSConfigData(), -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I688cfddcf5845316f71a9641d4426a20f58c1fba Gerrit-Change-Number: 23838 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 10:08:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:08:48 +0000 Subject: Change in pysim[master]: ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23839 ) Change subject: ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) ...................................................................... ts_31_103: Add Rel 16.6 enhancements (MuDMiDConfigData) Change-Id: I54046375f180017373ab8e06e60ac5a542da706a --- M pySim/ts_31_103.py 1 file changed, 9 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified dexter: 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/pySim/ts_31_103.py b/pySim/ts_31_103.py index 7bb7ed2..d155fdc 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """ -Various constants from ETSI TS 131 103 V14.2.0 +Various constants from 3GPP TS 31.103 V16.1.0 """ # @@ -50,6 +50,7 @@ 18: 'IMS configuration data', 19: 'XCAP Configuration Data', 20: 'WebRTC URI', + 21: 'MuD and MiD configuration data', } EF_ISIM_ADF_map = { @@ -159,6 +160,12 @@ def __init__(self, fid='6ffa', sfid=None, name='EF.WebRTCURI', desc='WebRTC URI'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) +# TS 31.103 Section 4.2.21 +class EF_MuDMiDConfigData(TransparentEF): + def __init__(self, fid='6ffe', sfid=None, name='EF.MuDMiDConfigData', + desc='MuD and MiD Configuration Data'): + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) + class ADF_ISIM(CardADF): def __init__(self, aid='a0000000871004', name='ADF.ISIM', fid=None, sfid=None, @@ -185,6 +192,7 @@ EF_IMSConfigData(), EF_XCAPConfigData(), EF_WebRTCURI(), + EF_MuDMiDConfigData(), ] self.add_files(files) # add those commands to the general commands of a TransparentEF -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I54046375f180017373ab8e06e60ac5a542da706a Gerrit-Change-Number: 23839 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 10:08:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:08:48 +0000 Subject: Change in pysim[master]: ts_31_102, ts_31_103: Add EF.FromPreferred In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23840 ) Change subject: ts_31_102, ts_31_103: Add EF.FromPreferred ...................................................................... ts_31_102, ts_31_103: Add EF.FromPreferred Change-Id: I7dc989a4ab198f3eaa45ba7060c8087354a544bb --- M pySim/ts_31_102.py M pySim/ts_31_103.py 2 files changed, 11 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 2de3948..de729be 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -278,7 +278,7 @@ from struct import unpack, pack from construct import * -from pySim.construct import LV, HexAdapter, BcdAdapter +from pySim.construct import LV, HexAdapter, BcdAdapter, BitsRFU from pySim.filesystem import * from pySim.ts_102_221 import EF_ARR from pySim.ts_51_011 import EF_IMSI, EF_xPLMNwAcT, EF_SPN, EF_CBMI, EF_ACC, EF_PLMNsel, EF_AD @@ -608,6 +608,13 @@ self._construct = Struct('status'/PaddedString(2, 'ascii'), 'link_to_ef_ipd'/Int8ub, 'rfu'/Byte) +# TS 31.102 Section 4.2.106 +class EF_FromPreferred(TransparentEF): + def __init__(self, fid='6ff7', sfid=None, name='EF.FromPreferred', size={1,1}, + desc='From Preferred'): + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) + self._construct = BitStruct('rfu'/BitsRFU(7), 'from_preferred'/Bit) + ###################################################################### # DF.5GS ###################################################################### @@ -814,6 +821,7 @@ LinFixedEF('6fef', None, 'EF.SDNURI', 'Service Dialling Numbers URI'), EF_IPS(), # FIXME: from EF_ePDGid onwards + EF_FromPreferred(), # FIXME: DF_SoLSA # FIXME: DF_PHONEBOOK # FIXME: DF_GSM_ACCESS diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index d155fdc..baa4d25 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -25,7 +25,7 @@ from pySim.filesystem import * from pySim.utils import * from pySim.ts_51_011 import EF_AD, EF_SMS, EF_SMSS, EF_SMSR, EF_SMSP -from pySim.ts_31_102 import ADF_USIM +from pySim.ts_31_102 import ADF_USIM, EF_FromPreferred import pySim.ts_102_221 # Mapping between ISIM Service Number and its description @@ -188,7 +188,7 @@ EF_SMSR(), EF_SMSP(), EF_UICCIARI(), - # FromPreferred + EF_FromPreferred(), EF_IMSConfigData(), EF_XCAPConfigData(), EF_WebRTCURI(), -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I7dc989a4ab198f3eaa45ba7060c8087354a544bb Gerrit-Change-Number: 23840 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 10:08:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:08:48 +0000 Subject: Change in pysim[master]: filesystem.py: Introduce place-holder for BER-TLV files In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23852 ) Change subject: filesystem.py: Introduce place-holder for BER-TLV files ...................................................................... filesystem.py: Introduce place-holder for BER-TLV files I always assumed BER-TLV files are transparent EF with BER-TLV contents. However, this is wrong. ETS TS 102 221 Section 8.2.2.4 specifies them. TS 102 221 Section 11.3 describes the specific RETRIEVE DATA, SET DATA commands, which are not yet implemented in pySim. Change-Id: Ie4701d9f72b05c8a5810e287e55a20f6ea86a574 --- M pySim/filesystem.py M pySim/ts_31_103.py 2 files changed, 9 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 1068930..dec521e 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -917,7 +917,13 @@ return b''.join(chunks) +class BerTlvEF(TransparentEF): + """BER-TLV EF (Entry File) in the smart card filesystem. + A BER-TLV EF is a binary file with a BER (Basic Encoding Rules) TLV structure + NOTE: We currently don't really support those, this class is simply a wrapper + around TransparentEF as a place-holder, so we can already define EFs of BER-TLV + type without fully supporting them.""" class RuntimeState(object): diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index baa4d25..d5641b3 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -146,12 +146,12 @@ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) # TS 31.103 Section 4.2.18 -class EF_IMSConfigData(TransparentEF): +class EF_IMSConfigData(BerTlvEF): def __init__(self, fid='6ff8', sfid=None, name='EF.IMSConfigData', desc='IMS Configuration Data'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) # TS 31.103 Section 4.2.19 -class EF_XCAPConfigData(TransparentEF): +class EF_XCAPConfigData(BerTlvEF): def __init__(self, fid='6ffc', sfid=None, name='EF.XCAPConfigData', desc='XCAP Configuration Data'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) @@ -161,7 +161,7 @@ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) # TS 31.103 Section 4.2.21 -class EF_MuDMiDConfigData(TransparentEF): +class EF_MuDMiDConfigData(BerTlvEF): def __init__(self, fid='6ffe', sfid=None, name='EF.MuDMiDConfigData', desc='MuD and MiD Configuration Data'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie4701d9f72b05c8a5810e287e55a20f6ea86a574 Gerrit-Change-Number: 23852 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 Sat Apr 24 10:11:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:11:38 +0000 Subject: Change in osmo-pcu[master]: pdch: rcv_resource_request: Improve robustness In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23870 ) Change subject: pdch: rcv_resource_request: Improve robustness ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I157e72160317340ee7742c78c62a25d3d98fc01e Gerrit-Change-Number: 23870 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 10:11: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 Apr 24 10:44:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:44:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Initial test suite for osmo-pcap-client 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/+/23878 to look at the new patch set (#2). Change subject: Initial test suite for osmo-pcap-client ...................................................................... Initial test suite for osmo-pcap-client Change-Id: If4a1072e75cb64f785d660e4c828c0f521d84b16 --- M Makefile A library/OPCAP_Adapter.ttcn A library/OPCAP_CodecPort.ttcn A library/OPCAP_CodecPort_CtrlFunct.ttcn A library/OPCAP_CodecPort_CtrlFunctdef.cc A library/OPCAP_Templates.ttcn A library/OPCAP_Types.ttcn A pcap-client/OPCAP_CLIENT_Tests.cfg A pcap-client/OPCAP_CLIENT_Tests.default A pcap-client/OPCAP_CLIENT_Tests.ttcn A pcap-client/gen_links.sh A pcap-client/osmo-pcap-client.cfg A pcap-client/regen_makefile.sh 13 files changed, 725 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/78/23878/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If4a1072e75cb64f785d660e4c828c0f521d84b16 Gerrit-Change-Number: 23878 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 Apr 24 10:47:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:47:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Initial test suite for osmo-pcap-client In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23878 ) Change subject: Initial test suite for osmo-pcap-client ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If4a1072e75cb64f785d660e4c828c0f521d84b16 Gerrit-Change-Number: 23878 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 10: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 Sat Apr 24 10:47:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 10:47:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Initial test suite for osmo-pcap-client In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23878 ) Change subject: Initial test suite for osmo-pcap-client ...................................................................... Initial test suite for osmo-pcap-client Change-Id: If4a1072e75cb64f785d660e4c828c0f521d84b16 --- M Makefile A library/OPCAP_Adapter.ttcn A library/OPCAP_CodecPort.ttcn A library/OPCAP_CodecPort_CtrlFunct.ttcn A library/OPCAP_CodecPort_CtrlFunctdef.cc A library/OPCAP_Templates.ttcn A library/OPCAP_Types.ttcn A pcap-client/OPCAP_CLIENT_Tests.cfg A pcap-client/OPCAP_CLIENT_Tests.default A pcap-client/OPCAP_CLIENT_Tests.ttcn A pcap-client/gen_links.sh A pcap-client/osmo-pcap-client.cfg A pcap-client/regen_makefile.sh 13 files changed, 725 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/Makefile b/Makefile index 81540ba..0567081 100644 --- a/Makefile +++ b/Makefile @@ -28,6 +28,7 @@ mme \ msc \ ns \ + pcap-client \ pcu \ pgw \ remsim \ diff --git a/library/OPCAP_Adapter.ttcn b/library/OPCAP_Adapter.ttcn new file mode 100644 index 0000000..8bcc3fd --- /dev/null +++ b/library/OPCAP_Adapter.ttcn @@ -0,0 +1,105 @@ +module OPCAP_Adapter { + +/* OPCAP Adapter layer, sitting on top of OPCAP_CodecPort. + * test suites can 'inherit' in order to have a OPCAP connection to the IUT which they're testing + * + * (C) 2021 by Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + */ + + +import from Osmocom_Types all; +import from General_Types all; +import from OPCAP_Types all; +import from OPCAP_Templates all; +import from OPCAP_CodecPort all; +import from OPCAP_CodecPort_CtrlFunct all; +import from IPL4asp_Types all; +import from IPL4asp_PortType all; +import from Socket_API_Definitions all; + +const integer NUM_OPCAP := 3; + +type component OPCAP_Adapter_CT { + /* down-facing port to OPCAP Codec port */ + port OPCAP_CODEC_PT OPCAP[NUM_OPCAP]; + var IPL4asp_Types.ConnectionId g_opcap_conn_id[NUM_OPCAP] := { -1, -1, -1 }; +} + +private function f_set_tcp_segmentation(integer idx) runs on OPCAP_Adapter_CT { + /* Set function for dissecting the binary stream into packets */ + var f_IPL4_getMsgLen vl_f := refers(f_IPL4_fixedMsgLen); + /* Offset: 2, size of length: 2, delta: 4, multiplier: 1, big-endian */ + OPCAP_CodecPort_CtrlFunct.f_IPL4_setGetMsgLen(OPCAP[idx], g_opcap_conn_id[idx], vl_f, {2, 2, 4, 1, 0}); +} + +function f_connect(charstring remote_host, IPL4asp_Types.PortNumber remote_port, + charstring local_host, IPL4asp_Types.PortNumber local_port, integer idx := 0) +runs on OPCAP_Adapter_CT { + var IPL4asp_Types.Result res; + map(self:OPCAP[idx], system:OPCAP); + if (g_opcap_conn_id[idx] != -1) { + OPCAP_CodecPort_CtrlFunct.f_IPL4_close(OPCAP[idx], g_opcap_conn_id[idx], {tcp := {}}); + g_opcap_conn_id[idx] := -1; + } + res := OPCAP_CodecPort_CtrlFunct.f_IPL4_connect(OPCAP[idx], remote_host, remote_port, + local_host, local_port, 0, { tcp :={} }); + if (not ispresent(res.connId)) { + setverdict(fail, "Could not connect to OPCAP port, check your configuration ", + "{remote ", remote_host, ":", remote_port, " local ", local_host, ":", local_port, "}"); + mtc.stop; + } + g_opcap_conn_id[idx] := res.connId; + + f_set_tcp_segmentation(idx); +} + +/* Function to use to bind to a local port as IPA server, accepting remote clients */ +function f_bind(charstring local_host, IPL4asp_Types.PortNumber local_port, integer idx := 0) +runs on OPCAP_Adapter_CT { + var IPL4asp_Types.Result res; + map(self:OPCAP[idx], system:OPCAP); + if (g_opcap_conn_id[idx] != -1) { + OPCAP_CodecPort_CtrlFunct.f_IPL4_close(OPCAP[idx], g_opcap_conn_id[idx], {tcp := {}}); + g_opcap_conn_id[idx] := -1; + } + res := OPCAP_CodecPort_CtrlFunct.f_IPL4_listen(OPCAP[idx], local_host, local_port, { tcp:={} }); + if (not ispresent(res.connId)) { + setverdict(fail, "Could not bind to OPCAP port, check your configuration ", + "{local ", local_host, ":", local_port, "}"); + mtc.stop; + } + g_opcap_conn_id[idx] := res.connId; + + f_set_tcp_segmentation(idx); +} + +function f_wait_client_connect(integer idx) runs on OPCAP_Adapter_CT { + var IPL4asp_Types.PortEvent rx_event; + OPCAP[idx].receive(IPL4asp_Types.PortEvent:{connOpened:=?}) -> value rx_event { + log("Connection from ", rx_event.connOpened.remName, ":", rx_event.connOpened.remPort); + /* we want to store the client's connId, not the 'bind socket' one */ + g_opcap_conn_id[idx] := rx_event.connOpened.connId; + } +} + +function f_disconnect(integer idx) runs on OPCAP_Adapter_CT { + OPCAP_CodecPort_CtrlFunct.f_IPL4_close(OPCAP[idx], g_opcap_conn_id[idx], {tcp := {}}); + OPCAP[idx].clear; +}; + +function f_opcap_send(template (value) OPCAP_PDU pdu, integer idx := 0) runs on OPCAP_Adapter_CT { + OPCAP[idx].send(ts_OPCAP_Send(g_opcap_conn_id[idx], pdu)); +} + +function f_opcap_exp(template OPCAP_PDU exp, integer idx := 0) runs on OPCAP_Adapter_CT return OPCAP_PDU { + var OPCAP_RecvFrom rf; + OPCAP[idx].receive(tr_OPCAP_Recv(g_opcap_conn_id[idx], exp)) -> value rf; + return rf.msg; +} + + +} diff --git a/library/OPCAP_CodecPort.ttcn b/library/OPCAP_CodecPort.ttcn new file mode 100644 index 0000000..f2d215d --- /dev/null +++ b/library/OPCAP_CodecPort.ttcn @@ -0,0 +1,64 @@ +module OPCAP_CodecPort { + +/* Simple OPCAP Codec Port, translating between raw TCP octetstring payload + * towards the IPL4asp port provider, and OPCAP primitives + * which carry the decoded OPCAP data types as payload. + * + * (C) 2021 by Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + */ + + +import from IPL4asp_PortType all; +import from IPL4asp_Types all; +import from OPCAP_Types all; + +type record OPCAP_RecvFrom { + ConnectionId connId, + OPCAP_PDU msg +} + +type record OPCAP_Send { + ConnectionId connId, + OPCAP_PDU msg +} + +template (value) OPCAP_Send ts_OPCAP_Send(ConnectionId conn_id, template (value) OPCAP_PDU msg) := { + connId := conn_id, + msg := msg +} + +template OPCAP_RecvFrom tr_OPCAP_Recv(template ConnectionId conn_id, template OPCAP_PDU msg) := { + connId := conn_id, + msg := msg +} + +private function IPL4_to_OPCAP_RecvFrom(in ASP_RecvFrom pin, out OPCAP_RecvFrom pout) { + pout.connId := pin.connId; + pout.msg := dec_OPCAP_PDU(pin.msg); +} with { extension "prototype(fast)" } + +private function OPCAP_to_IPL4_Send(in OPCAP_Send pin, out ASP_Send pout) { + pout.connId := pin.connId; + pout.proto := { tcp := {} }; + pout.msg := enc_OPCAP_PDU(pin.msg); +} with { extension "prototype(fast)" } + +type port OPCAP_CODEC_PT message { + out OPCAP_Send; + in OPCAP_RecvFrom, + ASP_ConnId_ReadyToRelease, + ASP_Event; +} with { extension "user IPL4asp_PT + out(OPCAP_Send -> ASP_Send: function(OPCAP_to_IPL4_Send)) + in(ASP_RecvFrom -> OPCAP_RecvFrom: function(IPL4_to_OPCAP_RecvFrom); + ASP_ConnId_ReadyToRelease -> ASP_ConnId_ReadyToRelease: simple; + ASP_Event -> ASP_Event: simple)" +} + + + +} diff --git a/library/OPCAP_CodecPort_CtrlFunct.ttcn b/library/OPCAP_CodecPort_CtrlFunct.ttcn new file mode 100644 index 0000000..99a5fe7 --- /dev/null +++ b/library/OPCAP_CodecPort_CtrlFunct.ttcn @@ -0,0 +1,52 @@ +module OPCAP_CodecPort_CtrlFunct { + + import from OPCAP_CodecPort all; + import from IPL4asp_Types all; + + external function f_IPL4_listen( + inout OPCAP_CODEC_PT portRef, + in HostName locName, + in PortNumber locPort, + in ProtoTuple proto, + in OptionList options := {} + ) return Result; + + external function f_IPL4_connect( + inout OPCAP_CODEC_PT portRef, + in HostName remName, + in PortNumber remPort, + in HostName locName, + in PortNumber locPort, + in ConnectionId connId, + in ProtoTuple proto, + in OptionList options := {} + ) return Result; + + external function f_IPL4_close( + inout OPCAP_CODEC_PT portRef, + in ConnectionId id, + in ProtoTuple proto := { unspecified := {} } + ) return Result; + + external function f_IPL4_setUserData( + inout OPCAP_CODEC_PT portRef, + in ConnectionId id, + in UserData userData + ) return Result; + + external function f_IPL4_getUserData( + inout OPCAP_CODEC_PT portRef, + in ConnectionId id, + out UserData userData + ) return Result; + + external function f_IPL4_setGetMsgLen( + inout OPCAP_CODEC_PT portRef, + in ConnectionId id, + inout f_IPL4_getMsgLen f, + in ro_integer msgLenArgs + ); + + +} + diff --git a/library/OPCAP_CodecPort_CtrlFunctdef.cc b/library/OPCAP_CodecPort_CtrlFunctdef.cc new file mode 100644 index 0000000..b19138a --- /dev/null +++ b/library/OPCAP_CodecPort_CtrlFunctdef.cc @@ -0,0 +1,66 @@ +#include "IPL4asp_PortType.hh" +#include "OPCAP_CodecPort.hh" +#include "IPL4asp_PT.hh" + +namespace OPCAP__CodecPort__CtrlFunct { + + IPL4asp__Types::Result f__IPL4__listen( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::HostName& locName, + const IPL4asp__Types::PortNumber& locPort, + const IPL4asp__Types::ProtoTuple& proto, + const IPL4asp__Types::OptionList& options) + { + return f__IPL4__PROVIDER__listen(portRef, locName, locPort, proto, options); + } + + IPL4asp__Types::Result f__IPL4__connect( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::HostName& remName, + const IPL4asp__Types::PortNumber& remPort, + const IPL4asp__Types::HostName& locName, + const IPL4asp__Types::PortNumber& locPort, + const IPL4asp__Types::ConnectionId& connId, + const IPL4asp__Types::ProtoTuple& proto, + const IPL4asp__Types::OptionList& options) + { + return f__IPL4__PROVIDER__connect(portRef, remName, remPort, + locName, locPort, connId, proto, options); + } + + IPL4asp__Types::Result f__IPL4__close( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::ConnectionId& connId, + const IPL4asp__Types::ProtoTuple& proto) + { + return f__IPL4__PROVIDER__close(portRef, connId, proto); + } + + IPL4asp__Types::Result f__IPL4__setUserData( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::ConnectionId& connId, + const IPL4asp__Types::UserData& userData) + { + return f__IPL4__PROVIDER__setUserData(portRef, connId, userData); + } + + IPL4asp__Types::Result f__IPL4__getUserData( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::ConnectionId& connId, + IPL4asp__Types::UserData& userData) + { + return f__IPL4__PROVIDER__getUserData(portRef, connId, userData); + } + + void f__IPL4__setGetMsgLen( + OPCAP__CodecPort::OPCAP__CODEC__PT& portRef, + const IPL4asp__Types::ConnectionId& connId, + Socket__API__Definitions::f__getMsgLen& f, + const Socket__API__Definitions::ro__integer& msgLenArgs) + { + return f__IPL4__PROVIDER__setGetMsgLen(portRef, connId, f, msgLenArgs); + } + + +} + diff --git a/library/OPCAP_Templates.ttcn b/library/OPCAP_Templates.ttcn new file mode 100644 index 0000000..0a1c884 --- /dev/null +++ b/library/OPCAP_Templates.ttcn @@ -0,0 +1,54 @@ +module OPCAP_Templates { + +/* OPCAP_Templates, defining TTCN-3 templates for the osmo-pcap protocol. + * + * OPCAP is a non-standard protocol used between osmo-pcap-client and osmo-pcap-server. + * + * (C) 2021 by Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + */ + +import from General_Types all; +import from Osmocom_Types all; +import from OPCAP_Types all; + + +template (present) OPCAP_PDU tr_OPCAP_FILE_HDR(template (present) uint32_t linktype := ?) := { + msg_type := PKT_LINK_HDR, + spare := ?, + len := 24, + u := { + file := { + magic := PCAP_MAGIC, + version_major := PCAP_VERSION_MAJOR, + version_minor := PCAP_VERSION_MINOR, + thiszone := 0, + sigfigs := 0, + snaplen := 9000, + linktype := linktype + } + } +} + +template (present) OPCAP_PDU tr_OPCAP_PKT(template (present) octetstring payload, + template (present) uint32_t caplen := ?, + template (present) uint32_t len := ?) := { + msg_type := PKT_LINK_DATA, + spare := ?, + len := ?, + u := { + packet := { + ts_sec := ?, + ts_usec := ?, + caplen := caplen, + len := len, + payload := payload + } + } +} + + +}; diff --git a/library/OPCAP_Types.ttcn b/library/OPCAP_Types.ttcn new file mode 100644 index 0000000..d244fef --- /dev/null +++ b/library/OPCAP_Types.ttcn @@ -0,0 +1,78 @@ +module OPCAP_Types { + +/* OPCAP_Types, defining abstract TTCN-3 data types for the osmo-pcap protocol. + * + * OPCAP is a non-standard protocol used between osmo-pcap-client and osmo-pcap-server. + * + * (C) 2021 by Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + */ + +import from General_Types all; +import from Osmocom_Types all; + +type enumerated OpcapMsgType { + PKT_LINK_HDR (0), + PKT_LINK_DATA (1) +} with { variant "FIELDLENGTH(8)" }; + +type record OPCAP_PDU { + OpcapMsgType msg_type, + uint8_t spare, + uint16_t len, + OpcapBodyUnion u +} with { + variant (len) "LENGTHTO(u)" + variant (len) "BYTEORDER(last)" + variant (u) "CROSSTAG( + file, msg_type = PKT_LINK_HDR; + packet, msg_type = PKT_LINK_DATA; + )" +}; + +type union OpcapBodyUnion { + PcapFileHeader file, + OpcapPacket packet +}; + +/* header in front of a PKT_LINK_DATA */ +type record OpcapPacket { + uint32_t ts_sec, + uint32_t ts_usec, + uint32_t caplen, + uint32_t len, + octetstring payload +} with { + variant (caplen) "LENGTHTO(payload)" +}; + +/* below definitions are from pcap/pcap.h */ +const uint16_t PCAP_VERSION_MAJOR := 2; +const uint16_t PCAP_VERSION_MINOR := 4; +const uint32_t PCAP_MAGIC := 2712847316; //0xA1B2C3D4; + +type record PcapFileHeader { + uint32_t magic, + uint16_t version_major, + uint16_t version_minor, + uint32_t thiszone, + uint32_t sigfigs, + uint32_t snaplen, + uint32_t linktype +}; + +/* below definitions are from pcap/dlt.h */ +const uint32_t DLT_LINUX_SLL := 113; +const uint32_t DLT_EN10MB := 1; + + +external function enc_OPCAP_PDU(in OPCAP_PDU msg) return octetstring + with { extension "prototype(convert) encode(RAW)" }; + +external function dec_OPCAP_PDU(in octetstring msg) return OPCAP_PDU + with { extension "prototype(convert) decode(RAW)" }; + +} with { encode "RAW"; variant "FIELDORDER(msb)"; variant "BYTEORDER(first)" }; diff --git a/pcap-client/OPCAP_CLIENT_Tests.cfg b/pcap-client/OPCAP_CLIENT_Tests.cfg new file mode 100644 index 0000000..3476c2f --- /dev/null +++ b/pcap-client/OPCAP_CLIENT_Tests.cfg @@ -0,0 +1,18 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./OPCAP_CLIENT_Tests.default" + +# Local configuration below + +[LOGGING] + +[TESTPORT_PARAMETERS] + +[MODULE_PARAMETERS] + +[MAIN_CONTROLLER] + +[EXECUTE] +OPCAP_CLIENT_Tests.control diff --git a/pcap-client/OPCAP_CLIENT_Tests.default b/pcap-client/OPCAP_CLIENT_Tests.default new file mode 100644 index 0000000..2b1677b --- /dev/null +++ b/pcap-client/OPCAP_CLIENT_Tests.default @@ -0,0 +1,19 @@ +[LOGGING] +mtc.FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC; + +[TESTPORT_PARAMETERS] +*.VTY.CTRL_MODE := "client" +*.VTY.CTRL_HOSTNAME := "127.0.0.1" +*.VTY.CTRL_PORTNUM := "4237" +*.VTY.CTRL_LOGIN_SKIPPED := "yes" +*.VTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes" +*.VTY.CTRL_READMODE := "buffered" +*.VTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes" +*.VTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes" +*.VTY.PROMPT1 := "OsmoPCAPClient> " +*.TCP.noDelay := "yes" // turn off nagle + +[MODULE_PARAMETERS] +Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoPCAPClient" + +[EXECUTE] diff --git a/pcap-client/OPCAP_CLIENT_Tests.ttcn b/pcap-client/OPCAP_CLIENT_Tests.ttcn new file mode 100644 index 0000000..5f59caf --- /dev/null +++ b/pcap-client/OPCAP_CLIENT_Tests.ttcn @@ -0,0 +1,212 @@ +module OPCAP_CLIENT_Tests { + +import from OPCAP_Adapter all; +import from OPCAP_Types all; +import from OPCAP_Templates all; + +import from IPL4asp_Types all; +import from IPL4asp_PortType all; +import from Osmocom_Types all; +import from Osmocom_VTY_Functions all; +import from TELNETasp_PortType all; +import from Socket_API_Definitions all; + +type record IpPort { + charstring ip, + integer udp_port +}; + +modulepar { + /* local IP address listening for OPCAP connections */ + charstring mp_local_opcap_ip := "127.0.0.1"; + /* local TCP base port for inbound OPCAP connections */ + integer mp_local_opcap_port := 5000; + + /* IP + port for simulating user traffic */ + IpPort mp_traffic_a := { "127.0.0.23", 44423 }; + IpPort mp_traffic_b := { "127.0.0.42", 44442 }; +}; + +type component test_CT extends OPCAP_Adapter_CT { + timer g_Tguard := 30.0; + + port TELNETasp_PT VTY; + + /* port to generate IP traffic that may or may not be captured */ + port IPL4asp_PT IP; + var integer g_traffic_conn_id[2]; +}; + +private altstep as_Tguard() runs on test_CT { +[] g_Tguard.timeout { + setverdict(fail, "global guard timeout"); + mtc.stop; + } +} + +/* initialize one of the OPCAP servers, wait for client to connect */ +private function f_init_one_srv(integer idx, template (present) uint32_t linktype) runs on test_CT { + /* start guard timer */ + activate(as_Tguard()); + g_Tguard.start; + log("Waiting for client-", idx, " connection..."); + /* wait for connection */ + f_bind(mp_local_opcap_ip, mp_local_opcap_port+idx, idx); + f_wait_client_connect(idx); + /* wait for file header */ + f_opcap_exp(tr_OPCAP_FILE_HDR(linktype), idx); +}; + + +/* global initialization */ +private function f_init() runs on test_CT { + map(self:VTY, system:VTY); + f_vty_set_prompts(VTY); + f_vty_transceive(VTY, "enable"); + + map(self:IP, system:IP); + var IPL4asp_Types.Result res + + /* 0 -> 1 */ + res := f_IPL4_connect(IP, mp_traffic_b.ip, mp_traffic_b.udp_port, + mp_traffic_a.ip, mp_traffic_a.udp_port, -1, { udp:={} }); + g_traffic_conn_id[0] := res.connId; + + /* 1 -> 0 */ + res := f_IPL4_connect(IP, mp_traffic_a.ip, mp_traffic_a.udp_port, + mp_traffic_b.ip, mp_traffic_b.udp_port, -1, { udp:={} }); + g_traffic_conn_id[1] := res.connId; +} + +/* generate user traffic from A -> B */ +function f_trafic_pkt_ab(octetstring payload) runs on test_CT { + IP.send(ASP_Send:{g_traffic_conn_id[0], omit, payload}) + IP.receive(ASP_RecvFrom:{g_traffic_conn_id[1], ?, ?, ?, ?, { udp:={} }, ?, payload}); +} + +/* generate user traffic from B -> A */ +function f_trafic_pkt_ba(octetstring payload) runs on test_CT { + IP.send(ASP_Send:{g_traffic_conn_id[1], omit, payload}) + IP.receive(ASP_RecvFrom:{g_traffic_conn_id[0], ?, ?, ?, ?, { udp:={} }, ?, payload}); +} + +/* expect a specified UDP payload on the OPCAP connection 'idx' */ +function f_opcap_exp_udp(octetstring udp_payload, integer idx) runs on test_CT { + var octetstring rx_tail; + var integer udp_payload_len, rx_pdu_len; + var OPCAP_PDU rx_pdu; + + udp_payload_len := lengthof(udp_payload); + + /* sadly I couldn't figure out how to create an octetstring template + * for 'match an octetstring ending in 'udp_payload' */ + rx_pdu := f_opcap_exp(tr_OPCAP_PKT(?), idx); + rx_pdu_len := lengthof(rx_pdu.u.packet.payload); + rx_tail := substr(rx_pdu.u.packet.payload, rx_pdu_len - udp_payload_len, udp_payload_len); + if (rx_tail != udp_payload) { + log("captured UDP payload: ", rx_tail, " but expected: ", udp_payload); + setverdict(fail); + } else { + setverdict(pass); + } +} + +/* create an additional pcap-store-connection via the VTY */ +function f_vty_create_addl_connection(integer idx) runs on test_CT +{ + f_vty_config3(VTY, { "client", "pcap-store-connectio second-" & int2str(idx) }, + { "server ip " & mp_local_opcap_ip, + "server port " & int2str(mp_local_opcap_port + idx), + "connect" } + ); +} + + + +/* wait for inbound client connection and reception of link header */ +testcase TC_connect_rx_hdr() runs on test_CT +{ + f_init(); + f_init_one_srv(0, ?); + setverdict(pass); +} + +/* check if client connection is re-started after a close */ +testcase TC_reconnect(integer idx := 0) runs on test_CT +{ + f_init(); + f_init_one_srv(idx, ?); + f_sleep(2.0); + + log("Disconnecting client-", idx); + f_disconnect(idx); + + f_wait_client_connect(idx); + f_opcap_exp(tr_OPCAP_FILE_HDR(?), idx); + setverdict(pass); +} + +/* capture a packet that's within the filter */ +testcase TC_capture() runs on test_CT +{ + f_init(); + f_init_one_srv(0, ?); + + for (var integer i := 0; i < 10; i := i + 1) { + var octetstring udp_payload; + + /* we assume 1400 is low enough to avoid IP fragmentation */ + udp_payload := f_rnd_octstring(f_rnd_int(1400)); + f_trafic_pkt_ab(udp_payload); + + f_opcap_exp_udp(udp_payload, 0); + } +} + +/* wait for inbound client connections and reception of link header */ +testcase TC_multi_connect_rx_hdr() runs on test_CT +{ + f_init(); + f_init_one_srv(0, ?); + f_vty_create_addl_connection(1); + f_init_one_srv(1, ?); + setverdict(pass); +} + +/* ensure a packet that's within the filter is sent to secondary clients */ +testcase TC_multi_capture() runs on test_CT +{ + f_init(); + f_init_one_srv(0, ?); + f_vty_create_addl_connection(1); + f_init_one_srv(1, ?); + + for (var integer i := 0; i < 10; i := i + 1) { + var octetstring udp_payload; + + /* we assume 1400 is low enough to avoid IP fragmentation */ + udp_payload := f_rnd_octstring(f_rnd_int(1400)); + f_trafic_pkt_ab(udp_payload); + + /* expect packet to arrive on both simulated servers */ + f_opcap_exp_udp(udp_payload, 0); + f_opcap_exp_udp(udp_payload, 1); + } +} + +/* TODO: ensure a packet outside the filter is dropped */ +/* TODO: capture of truncated packet */ +/* TODO: stall the receive window */ +/* TODO: different link type (ethernet, not SLL) */ + + +control { + execute( TC_connect_rx_hdr() ); + execute( TC_reconnect() ); + execute( TC_capture() ); + execute( TC_multi_connect_rx_hdr() ); + execute( TC_multi_capture() ); +}; + + +}; diff --git a/pcap-client/gen_links.sh b/pcap-client/gen_links.sh new file mode 100755 index 0000000..e459959 --- /dev/null +++ b/pcap-client/gen_links.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +BASEDIR=../deps + +. ../gen_links.sh.inc + +DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src +FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCInterface.cc TCCInterface_ip.h" +FILES+=" TCCEncoding_Functions.ttcn TCCEncoding.cc " # GSM 7-bit coding +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src +FILES="Socket_API_Definitions.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.IPL4asp/src +FILES="IPL4asp_Functions.ttcn IPL4asp_PT.cc IPL4asp_PT.hh IPL4asp_PortType.ttcn IPL4asp_Types.ttcn IPL4asp_discovery.cc IPL4asp_protocol_L234.hh" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.TELNETasp/src +FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn" +gen_links $DIR $FILES + +DIR=../library +FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc " +FILES+="Osmocom_VTY_Functions.ttcn " +FILES+="OPCAP_Types.ttcn OPCAP_Templates.ttcn " +FILES+="OPCAP_CodecPort.ttcn OPCAP_CodecPort_CtrlFunct.ttcn OPCAP_CodecPort_CtrlFunctdef.cc OPCAP_Adapter.ttcn " +gen_links $DIR $FILES + +ignore_pp_results diff --git a/pcap-client/osmo-pcap-client.cfg b/pcap-client/osmo-pcap-client.cfg new file mode 100644 index 0000000..89f1801 --- /dev/null +++ b/pcap-client/osmo-pcap-client.cfg @@ -0,0 +1,14 @@ +! +! OsmoPCAPClient (UNKNOWN-dirty) configuration saved from vty +!! +! +! +line vty + no login +! +client + pcap device lo + pcap filter udp port 44423 + pcap detect-loop 0 + server ip 127.0.0.1 + server port 5000 diff --git a/pcap-client/regen_makefile.sh b/pcap-client/regen_makefile.sh new file mode 100755 index 0000000..9e4a6ee --- /dev/null +++ b/pcap-client/regen_makefile.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +FILES="*.ttcn TCCConversion.cc TCCInterface.cc TCCEncoding.cc IPL4asp_PT.cc IPL4asp_discovery.cc TELNETasp_PT.cc Native_FunctionDefs.cc OPCAP_CodecPort_CtrlFunctdef.cc " +#FILES+="*.ttcnpp " +#FILES+="*.asn" + +export CPPFLAGS_TTCN3="" + +../regen-makefile.sh OPCAP_CLIENT_Tests.ttcn $FILES + +#sed -i -e 's/^LINUX_LIBS = -lxml2/LINUX_LIBS = -lxml2 -lfftranscode/' Makefile -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If4a1072e75cb64f785d660e4c828c0f521d84b16 Gerrit-Change-Number: 23878 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 Apr 24 11:01:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 11:01:47 +0000 Subject: Change in osmo-pcap[master]: use telnet_init_dynif() to allow VTY bind to non-loopack address References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23879 ) Change subject: use telnet_init_dynif() to allow VTY bind to non-loopack address ...................................................................... use telnet_init_dynif() to allow VTY bind to non-loopack address Prior to this patch, you could configure 'bind 1.2.3.4' in the config file, but the telnet interface still binds to 127.0.0.1. Change-Id: I9b86b2cf6949917c55ea15277619cfa2b745185d --- M src/osmo_client_main.c M src/osmo_server_main.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/79/23879/1 diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index 831450d..0951115 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -259,7 +259,7 @@ osmo_tls_init(); - rc = telnet_init(tall_cli_ctx, NULL, OSMO_VTY_PORT_PCAP_CLIENT); + rc = telnet_init_dynif(tall_cli_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_CLIENT); if (rc < 0) { LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); exit(1); diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index 112bd47..b5f573c 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -271,7 +271,7 @@ osmo_tls_init(); - rc = telnet_init(tall_srv_ctx, NULL, OSMO_VTY_PORT_PCAP_SERVER); + rc = telnet_init_dynif(tall_srv_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_SERVER); if (rc < 0) { LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); exit(1); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I9b86b2cf6949917c55ea15277619cfa2b745185d Gerrit-Change-Number: 23879 Gerrit-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 Apr 24 11:04:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 11:04:23 +0000 Subject: Change in osmo-pcap[master]: use telnet_init_dynif() to allow VTY bind to non-loopack address In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23879 ) Change subject: use telnet_init_dynif() to allow VTY bind to non-loopack address ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I9b86b2cf6949917c55ea15277619cfa2b745185d Gerrit-Change-Number: 23879 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 11:04:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 11:04:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 11:04:25 +0000 Subject: Change in osmo-pcap[master]: use telnet_init_dynif() to allow VTY bind to non-loopack address In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23879 ) Change subject: use telnet_init_dynif() to allow VTY bind to non-loopack address ...................................................................... use telnet_init_dynif() to allow VTY bind to non-loopack address Prior to this patch, you could configure 'bind 1.2.3.4' in the config file, but the telnet interface still binds to 127.0.0.1. Change-Id: I9b86b2cf6949917c55ea15277619cfa2b745185d --- M src/osmo_client_main.c M src/osmo_server_main.c 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index 831450d..0951115 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -259,7 +259,7 @@ osmo_tls_init(); - rc = telnet_init(tall_cli_ctx, NULL, OSMO_VTY_PORT_PCAP_CLIENT); + rc = telnet_init_dynif(tall_cli_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_CLIENT); if (rc < 0) { LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); exit(1); diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index 112bd47..b5f573c 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -271,7 +271,7 @@ osmo_tls_init(); - rc = telnet_init(tall_srv_ctx, NULL, OSMO_VTY_PORT_PCAP_SERVER); + rc = telnet_init_dynif(tall_srv_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_SERVER); if (rc < 0) { LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); exit(1); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I9b86b2cf6949917c55ea15277619cfa2b745185d Gerrit-Change-Number: 23879 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 Apr 24 13:03:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 24 Apr 2021 13:03:26 +0000 Subject: Change in osmo-pcu[master]: pdch: rcv_resource_request: Improve robustness In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23870 ) Change subject: pdch: rcv_resource_request: Improve robustness ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I157e72160317340ee7742c78c62a25d3d98fc01e Gerrit-Change-Number: 23870 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 13: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 Sat Apr 24 14:07:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 14:07:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix typo in NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23809 ) Change subject: fix typo in NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED ...................................................................... fix typo in NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED Change-Id: Ifbf86138f3f2e9c053c99b6f58c510d38bad4e88 --- M library/NS_Types.ttcn M library/Osmocom_Gb_Types.ttcn M pcu/PCU_Tests_SNS.ttcn 3 files changed, 5 insertions(+), 5 deletions(-) Approvals: dexter: Looks good to me, approved; Verified Jenkins Builder: Verified diff --git a/library/NS_Types.ttcn b/library/NS_Types.ttcn index 6432d6c..63ed24d 100644 --- a/library/NS_Types.ttcn +++ b/library/NS_Types.ttcn @@ -56,7 +56,7 @@ NS_CAUSE_BVCI_UNKNOWN_AT_NSE ('00000101'B), NS_CAUSE_SEMANTICALLY_INCORRECT_PDU ('00001000'B), NS_CAUSE_PDU_NOT_COMPATIBLE_WITH_PROTOCOL_STATE ('00001010'B), - NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED ('00001011'B), + NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED ('00001011'B), NS_CAUSE_INVALID_ESSENTIAL_IE ('00001100'B), NS_CAUSE_MISSING_ESSENTIAL_IE ('00001101'B), NS_CAUSE_INVALID_NR_OF_IPv4_ENDPOINTS ('00001110'B), diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 76988b5..85b36a3 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -66,7 +66,7 @@ NS_CAUSE_BVCI_UNKNOWN_AT_NSE ('00000101'B), NS_CAUSE_SEMANTICALLY_INCORRECT_PDU ('00001000'B), NS_CAUSE_PDU_NOT_COMPATIBLE_WITH_PROTOCOL_STATE ('00001010'B), - NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED ('00001011'B), + NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED ('00001011'B), NS_CAUSE_INVALID_ESSENTIAL_IE ('00001100'B), NS_CAUSE_MISSING_ESSENTIAL_IE ('00001101'B), NS_CAUSE_INVALID_NR_OF_IPv4_ENDPOINTS ('00001110'B), diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index b6a1790..012699e 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -38,7 +38,7 @@ testcase TC_sns_po_size_nack() runs on RAW_Test_CT { f_init_ns_codec(mp_nsconfig); f_init_pcuif(); - f_incoming_sns_size(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); + f_incoming_sns_size(NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED); /* FIXME: ensure we don't get a SNS-CONFIG */ /* FIXME: ensure we get re-transmitted SNS-SIZE attempts */ f_sleep(10.0); @@ -62,7 +62,7 @@ f_init_ns_codec(mp_nsconfig); f_init_pcuif(); f_incoming_sns_size(); - f_incoming_sns_config(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); + f_incoming_sns_config(NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED); /* FIXME: ensure we get re-transmitted SNS-CONFIG attempts */ f_sleep(10.0); setverdict(pass); @@ -318,7 +318,7 @@ 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); + f_outgoing_sns_add(idx_add := 0, w_sig := 0, w_user := 1, idx := 0, cause := NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED); setverdict(pass); f_clean_ns_codec(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23809 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ifbf86138f3f2e9c053c99b6f58c510d38bad4e88 Gerrit-Change-Number: 23809 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus 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 Sat Apr 24 14:10:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 14:10:03 +0000 Subject: Change in osmo-pcap[master]: vty: call telnet_init_dynif() after config file is read References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23880 ) Change subject: vty: call telnet_init_dynif() after config file is read ...................................................................... vty: call telnet_init_dynif() after config file is read In case the config file specifies a vty bind address, we must read it before we start the telnet server. Change-Id: I44561754d4beaad5c74cb66994ca4ef38960ea78 --- M src/osmo_client_main.c M src/osmo_server_main.c 2 files changed, 13 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/80/23880/1 diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index 0951115..1ab24c3 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -259,12 +259,6 @@ osmo_tls_init(); - rc = telnet_init_dynif(tall_cli_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_CLIENT); - if (rc < 0) { - LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); - exit(1); - } - pcap_client = osmo_pcap_client_alloc(tall_cli_ctx); if (!pcap_client) { LOGP(DCLIENT, LOGL_ERROR, "Failed to allocate osmo_pcap_client.\n"); @@ -289,6 +283,13 @@ exit(1); } + rc = telnet_init_dynif(tall_cli_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_CLIENT); + if (rc < 0) { + LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); + exit(1); + } + + /* attempt to connect to the remote */ if (pcap_client->conn.srv_ip && pcap_client->conn.srv_port > 0) osmo_client_connect(&pcap_client->conn); diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index b5f573c..f198b58 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -271,12 +271,6 @@ osmo_tls_init(); - rc = telnet_init_dynif(tall_srv_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_SERVER); - if (rc < 0) { - LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); - exit(1); - } - pcap_server = talloc_zero(tall_srv_ctx, struct osmo_pcap_server); if (!pcap_server) { LOGP(DSERVER, LOGL_ERROR, "Failed to allocate osmo_pcap_server.\n"); @@ -299,6 +293,12 @@ exit(1); } + rc = telnet_init_dynif(tall_srv_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_SERVER); + if (rc < 0) { + LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); + exit(1); + } + osmo_tls_server_init(pcap_server); /* attempt to connect to the remote */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I44561754d4beaad5c74cb66994ca4ef38960ea78 Gerrit-Change-Number: 23880 Gerrit-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 Apr 24 14:11:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 14:11:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GSM_RR_Types: introduce record TbfStartingTime In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23876 ) Change subject: GSM_RR_Types: introduce record TbfStartingTime ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id2e61652418571cf72ac17ca46742d9624348691 Gerrit-Change-Number: 23876 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 14:11: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 Apr 24 14:11:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 14:11:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GSM_RR_Types: introduce record TbfStartingTime In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23876 ) Change subject: GSM_RR_Types: introduce record TbfStartingTime ...................................................................... GSM_RR_Types: introduce record TbfStartingTime Change-Id: Id2e61652418571cf72ac17ca46742d9624348691 --- M library/GSM_RR_Types.ttcn 1 file changed, 10 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn index 8cb824d..78db7a5 100644 --- a/library/GSM_RR_Types.ttcn +++ b/library/GSM_RR_Types.ttcn @@ -466,6 +466,11 @@ } with { variant (pa) "CROSSTAG(spa, pa_disc = '1'B; uldl, pa_disc = '0'B)" }; + type record TbfStartingTime { + uint5_t t1, + uint6_t t3, + uint5_t t2 + }; type record PacketUlAssignDyn { uint5_t tfi_assignment, BIT1 polling, @@ -483,7 +488,7 @@ BIT1 ta_index_present, uint4_t ta_index optional, BIT1 tbf_starting_time_present, - uint16_t tbf_starting_time optional + TbfStartingTime tbf_starting_time optional } with { variant (p0) "PRESENCE(p0_present = '1'B)" variant (pr_mode) "PRESENCE(p0_present = '1'B)" @@ -496,7 +501,7 @@ uint4_t alpha optional, uint5_t gamma, BIT2 padding ('01'B), - uint16_t tbf_starting_time + TbfStartingTime tbf_starting_time /* TODO: P0 / PR_MODE */ } with { variant (alpha) "PRESENCE(alpha_present = '1'B)" @@ -526,7 +531,7 @@ BIT1 ta_index_present, uint4_t ta_index optional, BIT1 tbf_starting_time_present, - uint16_t tbf_starting_time optional, + TbfStartingTime tbf_starting_time optional, BIT1 p0_present, uint4_t p0 optional, BIT1 pr_mode optional @@ -564,7 +569,7 @@ BIT1 ta_index_present, uint4_t ta_index optional, BIT1 tbf_starting_time_present, - uint16_t tbf_starting_time optional + TbfStartingTime tbf_starting_time optional /* TODO: Additions for Rel-7 */ } with { variant (p0) "PRESENCE(p0_present = '1'B)" @@ -578,7 +583,7 @@ BIT1 alpha_present, uint4_t alpha optional, uint5_t gamma, - uint16_t tbf_starting_time, + TbfStartingTime tbf_starting_time, BIT2 nr_radio_blocks_allocated, BIT1 p0_present, uint4_t p0 optional, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id2e61652418571cf72ac17ca46742d9624348691 Gerrit-Change-Number: 23876 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 Sat Apr 24 14:14:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 14:14:44 +0000 Subject: Change in osmo-pcap[master]: vty: call telnet_init_dynif() after config file is read In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23880 ) Change subject: vty: call telnet_init_dynif() after config file is read ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I44561754d4beaad5c74cb66994ca4ef38960ea78 Gerrit-Change-Number: 23880 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 24 Apr 2021 14:14:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Apr 24 14:14:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 14:14:46 +0000 Subject: Change in osmo-pcap[master]: vty: call telnet_init_dynif() after config file is read In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23880 ) Change subject: vty: call telnet_init_dynif() after config file is read ...................................................................... vty: call telnet_init_dynif() after config file is read In case the config file specifies a vty bind address, we must read it before we start the telnet server. Change-Id: I44561754d4beaad5c74cb66994ca4ef38960ea78 --- M src/osmo_client_main.c M src/osmo_server_main.c 2 files changed, 13 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo_client_main.c b/src/osmo_client_main.c index 0951115..1ab24c3 100644 --- a/src/osmo_client_main.c +++ b/src/osmo_client_main.c @@ -259,12 +259,6 @@ osmo_tls_init(); - rc = telnet_init_dynif(tall_cli_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_CLIENT); - if (rc < 0) { - LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); - exit(1); - } - pcap_client = osmo_pcap_client_alloc(tall_cli_ctx); if (!pcap_client) { LOGP(DCLIENT, LOGL_ERROR, "Failed to allocate osmo_pcap_client.\n"); @@ -289,6 +283,13 @@ exit(1); } + rc = telnet_init_dynif(tall_cli_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_CLIENT); + if (rc < 0) { + LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); + exit(1); + } + + /* attempt to connect to the remote */ if (pcap_client->conn.srv_ip && pcap_client->conn.srv_port > 0) osmo_client_connect(&pcap_client->conn); diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index b5f573c..f198b58 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -271,12 +271,6 @@ osmo_tls_init(); - rc = telnet_init_dynif(tall_srv_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_SERVER); - if (rc < 0) { - LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); - exit(1); - } - pcap_server = talloc_zero(tall_srv_ctx, struct osmo_pcap_server); if (!pcap_server) { LOGP(DSERVER, LOGL_ERROR, "Failed to allocate osmo_pcap_server.\n"); @@ -299,6 +293,12 @@ exit(1); } + rc = telnet_init_dynif(tall_srv_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCAP_SERVER); + if (rc < 0) { + LOGP(DCLIENT, LOGL_ERROR, "Failed to bind telnet interface\n"); + exit(1); + } + osmo_tls_server_init(pcap_server); /* attempt to connect to the remote */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I44561754d4beaad5c74cb66994ca4ef38960ea78 Gerrit-Change-Number: 23880 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 Apr 24 21:04:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 24 Apr 2021 21:04:54 +0000 Subject: =?UTF-8?Q?Change_in_osmo-pcap=5Bmaster=5D=3A_Bump_version=3A_0=2E1=2E3_=E2=86=92_0=2E2=2E0?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23881 ) Change subject: Bump version: 0.1.3 ? 0.2.0 ...................................................................... Bump version: 0.1.3 ? 0.2.0 Change-Id: Ic36b541fa4000c352927e721397a081ccc709b73 --- M debian/changelog 1 file changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/81/23881/1 diff --git a/debian/changelog b/debian/changelog index ce26f4a..4d9c065 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,25 @@ +osmo-pcap (0.2.0) unstable; urgency=medium + + [ Harald Welte ] + * vty: Add space after prompt, as customary + * add "--version" to osmo-pcap-client and -server + * update copyright statement; Holger worked on it until 2017 + * Add user manual for osmo-pcap + * use osmo_wqueue_enqueue_quiet() as we log anyway + * client: Ensure the "file" header is sent on connect + * use telnet_init_dynif() to allow VTY bind to non-loopack address + * vty: call telnet_init_dynif() after config file is read + + [ Joachim Steiger ] + * manuals: generate VTY reference for osmo-pcap-{client,server} + + [ Vadim Yanitskiy ] + * vty: register commands for talloc context introspection + * vty_{client,server}_init(): remove unused argument + * contrib/jenkins.sh: fix: pass '--enable-manuals' to configure + + -- Harald Welte Sat, 24 Apr 2021 23:03:34 +0200 + osmo-pcap (0.1.3) unstable; urgency=medium [ Oliver Smith ] -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: Ic36b541fa4000c352927e721397a081ccc709b73 Gerrit-Change-Number: 23881 Gerrit-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 Apr 25 10:56:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 10:56:24 +0000 Subject: =?UTF-8?Q?Change_in_osmo-pcap=5Bmaster=5D=3A_Bump_version=3A_0=2E1=2E3_=E2=86=92_0=2E2=2E0?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23881 ) Change subject: Bump version: 0.1.3 ? 0.2.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: Ic36b541fa4000c352927e721397a081ccc709b73 Gerrit-Change-Number: 23881 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 10:56:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 25 10:56:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 10:56:26 +0000 Subject: =?UTF-8?Q?Change_in_osmo-pcap=5Bmaster=5D=3A_Bump_version=3A_0=2E1=2E3_=E2=86=92_0=2E2=2E0?= In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/23881 ) Change subject: Bump version: 0.1.3 ? 0.2.0 ...................................................................... Bump version: 0.1.3 ? 0.2.0 Change-Id: Ic36b541fa4000c352927e721397a081ccc709b73 --- M debian/changelog 1 file changed, 22 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index ce26f4a..4d9c065 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,25 @@ +osmo-pcap (0.2.0) unstable; urgency=medium + + [ Harald Welte ] + * vty: Add space after prompt, as customary + * add "--version" to osmo-pcap-client and -server + * update copyright statement; Holger worked on it until 2017 + * Add user manual for osmo-pcap + * use osmo_wqueue_enqueue_quiet() as we log anyway + * client: Ensure the "file" header is sent on connect + * use telnet_init_dynif() to allow VTY bind to non-loopack address + * vty: call telnet_init_dynif() after config file is read + + [ Joachim Steiger ] + * manuals: generate VTY reference for osmo-pcap-{client,server} + + [ Vadim Yanitskiy ] + * vty: register commands for talloc context introspection + * vty_{client,server}_init(): remove unused argument + * contrib/jenkins.sh: fix: pass '--enable-manuals' to configure + + -- Harald Welte Sat, 24 Apr 2021 23:03:34 +0200 + osmo-pcap (0.1.3) unstable; urgency=medium [ Oliver Smith ] -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/23881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: Ic36b541fa4000c352927e721397a081ccc709b73 Gerrit-Change-Number: 23881 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 Apr 25 11:09:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:09:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcap-client: Don't bind to second 'traffic' udp port References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23882 ) Change subject: pcap-client: Don't bind to second 'traffic' udp port ...................................................................... pcap-client: Don't bind to second 'traffic' udp port if the tester runs on a different host/IP than the IUT (like in our dockerized jenkins tests), then of course we cannot assume that traffic sent by the tester can be received by the tester again. So rather than binding/connecting two sockets, let's only use one and send packets without caring if there is a remote receiver. Change-Id: If826705c78c7a0ad0e633b7a320d7dd5e5561c27 --- M pcap-client/OPCAP_CLIENT_Tests.ttcn 1 file changed, 3 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/82/23882/1 diff --git a/pcap-client/OPCAP_CLIENT_Tests.ttcn b/pcap-client/OPCAP_CLIENT_Tests.ttcn index 5f59caf..e9fe406 100644 --- a/pcap-client/OPCAP_CLIENT_Tests.ttcn +++ b/pcap-client/OPCAP_CLIENT_Tests.ttcn @@ -34,7 +34,7 @@ /* port to generate IP traffic that may or may not be captured */ port IPL4asp_PT IP; - var integer g_traffic_conn_id[2]; + var integer g_traffic_conn_id; }; private altstep as_Tguard() runs on test_CT { @@ -70,24 +70,12 @@ /* 0 -> 1 */ res := f_IPL4_connect(IP, mp_traffic_b.ip, mp_traffic_b.udp_port, mp_traffic_a.ip, mp_traffic_a.udp_port, -1, { udp:={} }); - g_traffic_conn_id[0] := res.connId; - - /* 1 -> 0 */ - res := f_IPL4_connect(IP, mp_traffic_a.ip, mp_traffic_a.udp_port, - mp_traffic_b.ip, mp_traffic_b.udp_port, -1, { udp:={} }); - g_traffic_conn_id[1] := res.connId; + g_traffic_conn_id := res.connId; } /* generate user traffic from A -> B */ function f_trafic_pkt_ab(octetstring payload) runs on test_CT { - IP.send(ASP_Send:{g_traffic_conn_id[0], omit, payload}) - IP.receive(ASP_RecvFrom:{g_traffic_conn_id[1], ?, ?, ?, ?, { udp:={} }, ?, payload}); -} - -/* generate user traffic from B -> A */ -function f_trafic_pkt_ba(octetstring payload) runs on test_CT { - IP.send(ASP_Send:{g_traffic_conn_id[1], omit, payload}) - IP.receive(ASP_RecvFrom:{g_traffic_conn_id[0], ?, ?, ?, ?, { udp:={} }, ?, payload}); + IP.send(ASP_Send:{g_traffic_conn_id, omit, payload}) } /* expect a specified UDP payload on the OPCAP connection 'idx' */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If826705c78c7a0ad0e633b7a320d7dd5e5561c27 Gerrit-Change-Number: 23882 Gerrit-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 Apr 25 11:11:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:11:10 +0000 Subject: Change in docker-playground[master]: Add osmo-pcap-master References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23883 ) Change subject: Add osmo-pcap-master ...................................................................... Add osmo-pcap-master Change-Id: I8ff63d028310fecbd07328073d0f4bf15489ded4 --- A osmo-pcap-master/Dockerfile A osmo-pcap-master/Makefile A osmo-pcap-master/osmo-pcap-client.cfg 3 files changed, 66 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/83/23883/1 diff --git a/osmo-pcap-master/Dockerfile b/osmo-pcap-master/Dockerfile new file mode 100644 index 0000000..a2b75c1 --- /dev/null +++ b/osmo-pcap-master/Dockerfile @@ -0,0 +1,51 @@ +ARG USER +ARG DISTRO +FROM $USER/$DISTRO-build +# Arguments used after FROM must be specified again +ARG DISTRO + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + libosmocore-dev \ + libosmo-netif-dev \ + libzmq3-dev \ + && \ + apt-get clean \ + ;; \ + centos*) \ + dnf install -y \ + "pkgconfig(libosmo-netif)" \ + "pkgconfig(libosmocore)" \ + "pkgconfig(libosmoctrl)" \ + "pkgconfig(libosmogsm)" \ + "pkgconfig(libosmovty)" \ + "pkgconfig(libzmq)" \ + ;; \ + esac + +WORKDIR /tmp + +ARG OSMO_PCAP_BRANCH="master" + +RUN git clone git://git.osmocom.org/osmo-pcap.git +ADD http://git.osmocom.org/osmo-pcap/patch?h=$OSMO_PCAP_BRANCH /tmp/commit-osmo-pcap + +RUN cd osmo-pcap && \ + git fetch && git checkout $OSMO_PCAP_BRANCH && \ + (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_PCAP_BRANCH || exit 1); \ + git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \ + autoreconf -fi && \ + ./configure && \ + make "-j$(nproc)" install + +VOLUME /data + +COPY osmo-pcap-client.cfg /data/osmo-pcap-client.cfg +#COPY osmo-pcap-server.cfg /data/osmo-pcap-server.cfg + +WORKDIR /data +CMD ["/bin/sh", "-c", "/usr/local/bin/osmo-pcap-client -c /data/osmo-pcap-client.cfg > /data/osmo-pcap-client.log 2>&1"] + +#EXPOSE diff --git a/osmo-pcap-master/Makefile b/osmo-pcap-master/Makefile new file mode 100644 index 0000000..8d0e10b --- /dev/null +++ b/osmo-pcap-master/Makefile @@ -0,0 +1 @@ +include ../make/Makefile diff --git a/osmo-pcap-master/osmo-pcap-client.cfg b/osmo-pcap-master/osmo-pcap-client.cfg new file mode 100644 index 0000000..89f1801 --- /dev/null +++ b/osmo-pcap-master/osmo-pcap-client.cfg @@ -0,0 +1,14 @@ +! +! OsmoPCAPClient (UNKNOWN-dirty) configuration saved from vty +!! +! +! +line vty + no login +! +client + pcap device lo + pcap filter udp port 44423 + pcap detect-loop 0 + server ip 127.0.0.1 + server port 5000 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8ff63d028310fecbd07328073d0f4bf15489ded4 Gerrit-Change-Number: 23883 Gerrit-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 Apr 25 11:11:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:11:11 +0000 Subject: Change in docker-playground[master]: Add osmo-pcap-latest References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23884 ) Change subject: Add osmo-pcap-latest ...................................................................... Add osmo-pcap-latest Change-Id: I1da28383117d0f81d7857fa27ba837d77f0079e0 --- A osmo-pcap-latest/Dockerfile A osmo-pcap-latest/Makefile A osmo-pcap-latest/osmo-pcap-client.cfg 3 files changed, 43 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/84/23884/1 diff --git a/osmo-pcap-latest/Dockerfile b/osmo-pcap-latest/Dockerfile new file mode 100644 index 0000000..30c6a56 --- /dev/null +++ b/osmo-pcap-latest/Dockerfile @@ -0,0 +1,28 @@ +ARG USER +ARG DISTRO +FROM $USER/$DISTRO-obs-latest +# Arguments used after FROM must be specified again +ARG DISTRO + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + osmo-pcap-client osmo-pcap-server && \ + apt-get clean \ + ;; \ + centos*) \ + dnf install -y \ + osmo-pcap-client osmo-pcap-server \ + ;; \ + esac + +WORKDIR /data + +VOLUME /data +COPY osmo-pcap-client.cfg /data/ +#COPY osmo-pcap-server.cfg /data/ + +CMD ["/bin/sh", "-c", "/usr/bin/osmo-pcap-clint -c /data/osmo-pcap-client.cfg >/data/osmo-pcap-client.log 2>&1"] + +EXPOSE 4237 diff --git a/osmo-pcap-latest/Makefile b/osmo-pcap-latest/Makefile new file mode 100644 index 0000000..8d0e10b --- /dev/null +++ b/osmo-pcap-latest/Makefile @@ -0,0 +1 @@ +include ../make/Makefile diff --git a/osmo-pcap-latest/osmo-pcap-client.cfg b/osmo-pcap-latest/osmo-pcap-client.cfg new file mode 100644 index 0000000..89f1801 --- /dev/null +++ b/osmo-pcap-latest/osmo-pcap-client.cfg @@ -0,0 +1,14 @@ +! +! OsmoPCAPClient (UNKNOWN-dirty) configuration saved from vty +!! +! +! +line vty + no login +! +client + pcap device lo + pcap filter udp port 44423 + pcap detect-loop 0 + server ip 127.0.0.1 + server port 5000 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1da28383117d0f81d7857fa27ba837d77f0079e0 Gerrit-Change-Number: 23884 Gerrit-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 Apr 25 11:11:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:11:11 +0000 Subject: Change in docker-playground[master]: Add ttcn3-pcap-client-test References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23885 ) Change subject: Add ttcn3-pcap-client-test ...................................................................... Add ttcn3-pcap-client-test This runs pcap-client IUT against the TTCN3 ATS for pcap-client Change-Id: Ie94106b1d1f348cd66f4b5304be6021dbaf732e1 --- A ttcn3-pcap-client-test/Dockerfile A ttcn3-pcap-client-test/Makefile A ttcn3-pcap-client-test/OPCAP_CLIENT_Tests.cfg A ttcn3-pcap-client-test/jenkins.sh A ttcn3-pcap-client-test/osmo-pcap-client.cfg 5 files changed, 91 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/85/23885/1 diff --git a/ttcn3-pcap-client-test/Dockerfile b/ttcn3-pcap-client-test/Dockerfile new file mode 100644 index 0000000..2a3799f --- /dev/null +++ b/ttcn3-pcap-client-test/Dockerfile @@ -0,0 +1,13 @@ +ARG REGISTRY +ARG USER +FROM $REGISTRY/$USER/debian-stretch-titan +ARG OSMO_TTCN3_BRANCH="master" + +ADD http://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit +RUN ttcn3-docker-prepare "$OSMO_TTCN3_BRANCH" pcap-client + +VOLUME /data + +COPY OPCAP_CLIENT_Tests.cfg /data/OPCAP_CLIENT_Tests.cfg + +CMD ttcn3-docker-run pcap-client OPCAP_CLIENT_Tests diff --git a/ttcn3-pcap-client-test/Makefile b/ttcn3-pcap-client-test/Makefile new file mode 100644 index 0000000..1c6de69 --- /dev/null +++ b/ttcn3-pcap-client-test/Makefile @@ -0,0 +1,3 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm + +include ../make/Makefile diff --git a/ttcn3-pcap-client-test/OPCAP_CLIENT_Tests.cfg b/ttcn3-pcap-client-test/OPCAP_CLIENT_Tests.cfg new file mode 100644 index 0000000..e76fc4f --- /dev/null +++ b/ttcn3-pcap-client-test/OPCAP_CLIENT_Tests.cfg @@ -0,0 +1,22 @@ +[ORDERED_INCLUDE] +"/osmo-ttcn3-hacks/Common.cfg" +"/osmo-ttcn3-hacks/pcap-client/OPCAP_CLIENT_Tests.default" + +# Local configuration below + +[LOGGING] + +[TESTPORT_PARAMETERS] +*.VTY.CTRL_HOSTNAME := "172.18.31.20"; + +[MODULE_PARAMETERS] +OPCAP_CLIENT_Tests.mp_local_opcap_ip := "172.18.31.10"; +OPCAP_CLIENT_Tests.mp_local_opcap_port := 5000; +OPCAP_CLIENT_Tests.mp_traffic_a := { "172.18.31.10", 44423 }; +OPCAP_CLIENT_Tests.mp_traffic_b := { "172.18.31.20", 44442 }; + + +[MAIN_CONTROLLER] + +[EXECUTE] +OPCAP_CLIENT_Tests.control diff --git a/ttcn3-pcap-client-test/jenkins.sh b/ttcn3-pcap-client-test/jenkins.sh new file mode 100755 index 0000000..60d44e6 --- /dev/null +++ b/ttcn3-pcap-client-test/jenkins.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +. ../jenkins-common.sh +IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" +docker_images_require \ + "osmo-pcap-$IMAGE_SUFFIX" \ + "ttcn3-pcap-client-test" + +set_clean_up_trap +set -e + +mkdir $VOL_BASE_DIR/pcap-client-tester +cp OPCAP_CLIENT_Tests.cfg $VOL_BASE_DIR/pcap-client-tester/ + +mkdir $VOL_BASE_DIR/pcap-client +cp osmo-pcap-client.cfg $VOL_BASE_DIR/pcap-client/ + +SUBNET=31 +network_create $SUBNET + +echo Starting container with pcap-client +docker run --rm \ + $(docker_network_params $SUBNET 20) \ + --ulimit core=-1 \ + -v $VOL_BASE_DIR/pcap-client:/data \ + --name ${BUILD_TAG}-pcap-client -d \ + $DOCKER_ARGS \ + $REPO_USER/osmo-pcap-$IMAGE_SUFFIX + +echo Starting container with pcap-client testsuite +docker run --rm \ + $(docker_network_params $SUBNET 10) \ + --ulimit core=-1 \ + -e "TTCN3_PCAP_PATH=/data" \ + -v $VOL_BASE_DIR/pcap-client-tester:/data \ + --name ${BUILD_TAG}-ttcn3-pcap-client-test \ + $DOCKER_ARGS \ + $REPO_USER/ttcn3-pcap-client-test diff --git a/ttcn3-pcap-client-test/osmo-pcap-client.cfg b/ttcn3-pcap-client-test/osmo-pcap-client.cfg new file mode 100644 index 0000000..7394c96 --- /dev/null +++ b/ttcn3-pcap-client-test/osmo-pcap-client.cfg @@ -0,0 +1,15 @@ +! +! OsmoPCAPClient (UNKNOWN-dirty) configuration saved from vty +!! +! +! +line vty + no login + bind 0.0.0.0 +! +client + pcap device eth0 + pcap filter udp port 44423 + pcap detect-loop 0 + server ip 172.18.31.10 + server port 5000 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ie94106b1d1f348cd66f4b5304be6021dbaf732e1 Gerrit-Change-Number: 23885 Gerrit-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 Apr 25 11:18:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:18:09 +0000 Subject: Change in docker-playground[master]: Add osmo-pcap-master In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23883 ) Change subject: Add osmo-pcap-master ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8ff63d028310fecbd07328073d0f4bf15489ded4 Gerrit-Change-Number: 23883 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 11:18:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 25 11:18:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:18:14 +0000 Subject: Change in docker-playground[master]: Add osmo-pcap-master In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23883 ) Change subject: Add osmo-pcap-master ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8ff63d028310fecbd07328073d0f4bf15489ded4 Gerrit-Change-Number: 23883 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 11: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 Sun Apr 25 11:18:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:18:18 +0000 Subject: Change in docker-playground[master]: Add osmo-pcap-latest In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23884 ) Change subject: Add osmo-pcap-latest ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1da28383117d0f81d7857fa27ba837d77f0079e0 Gerrit-Change-Number: 23884 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 11: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 Sun Apr 25 11:18:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:18:23 +0000 Subject: Change in docker-playground[master]: Add ttcn3-pcap-client-test In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23885 ) Change subject: Add ttcn3-pcap-client-test ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ie94106b1d1f348cd66f4b5304be6021dbaf732e1 Gerrit-Change-Number: 23885 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 11:18: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 Apr 25 11:18:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:18:34 +0000 Subject: Change in docker-playground[master]: Add osmo-pcap-master In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23883 ) Change subject: Add osmo-pcap-master ...................................................................... Add osmo-pcap-master Change-Id: I8ff63d028310fecbd07328073d0f4bf15489ded4 --- A osmo-pcap-master/Dockerfile A osmo-pcap-master/Makefile A osmo-pcap-master/osmo-pcap-client.cfg 3 files changed, 66 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/osmo-pcap-master/Dockerfile b/osmo-pcap-master/Dockerfile new file mode 100644 index 0000000..a2b75c1 --- /dev/null +++ b/osmo-pcap-master/Dockerfile @@ -0,0 +1,51 @@ +ARG USER +ARG DISTRO +FROM $USER/$DISTRO-build +# Arguments used after FROM must be specified again +ARG DISTRO + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + libosmocore-dev \ + libosmo-netif-dev \ + libzmq3-dev \ + && \ + apt-get clean \ + ;; \ + centos*) \ + dnf install -y \ + "pkgconfig(libosmo-netif)" \ + "pkgconfig(libosmocore)" \ + "pkgconfig(libosmoctrl)" \ + "pkgconfig(libosmogsm)" \ + "pkgconfig(libosmovty)" \ + "pkgconfig(libzmq)" \ + ;; \ + esac + +WORKDIR /tmp + +ARG OSMO_PCAP_BRANCH="master" + +RUN git clone git://git.osmocom.org/osmo-pcap.git +ADD http://git.osmocom.org/osmo-pcap/patch?h=$OSMO_PCAP_BRANCH /tmp/commit-osmo-pcap + +RUN cd osmo-pcap && \ + git fetch && git checkout $OSMO_PCAP_BRANCH && \ + (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_PCAP_BRANCH || exit 1); \ + git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \ + autoreconf -fi && \ + ./configure && \ + make "-j$(nproc)" install + +VOLUME /data + +COPY osmo-pcap-client.cfg /data/osmo-pcap-client.cfg +#COPY osmo-pcap-server.cfg /data/osmo-pcap-server.cfg + +WORKDIR /data +CMD ["/bin/sh", "-c", "/usr/local/bin/osmo-pcap-client -c /data/osmo-pcap-client.cfg > /data/osmo-pcap-client.log 2>&1"] + +#EXPOSE diff --git a/osmo-pcap-master/Makefile b/osmo-pcap-master/Makefile new file mode 100644 index 0000000..8d0e10b --- /dev/null +++ b/osmo-pcap-master/Makefile @@ -0,0 +1 @@ +include ../make/Makefile diff --git a/osmo-pcap-master/osmo-pcap-client.cfg b/osmo-pcap-master/osmo-pcap-client.cfg new file mode 100644 index 0000000..89f1801 --- /dev/null +++ b/osmo-pcap-master/osmo-pcap-client.cfg @@ -0,0 +1,14 @@ +! +! OsmoPCAPClient (UNKNOWN-dirty) configuration saved from vty +!! +! +! +line vty + no login +! +client + pcap device lo + pcap filter udp port 44423 + pcap detect-loop 0 + server ip 127.0.0.1 + server port 5000 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8ff63d028310fecbd07328073d0f4bf15489ded4 Gerrit-Change-Number: 23883 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 25 11:18:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:18:34 +0000 Subject: Change in docker-playground[master]: Add osmo-pcap-latest In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23884 ) Change subject: Add osmo-pcap-latest ...................................................................... Add osmo-pcap-latest Change-Id: I1da28383117d0f81d7857fa27ba837d77f0079e0 --- A osmo-pcap-latest/Dockerfile A osmo-pcap-latest/Makefile A osmo-pcap-latest/osmo-pcap-client.cfg 3 files changed, 43 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/osmo-pcap-latest/Dockerfile b/osmo-pcap-latest/Dockerfile new file mode 100644 index 0000000..30c6a56 --- /dev/null +++ b/osmo-pcap-latest/Dockerfile @@ -0,0 +1,28 @@ +ARG USER +ARG DISTRO +FROM $USER/$DISTRO-obs-latest +# Arguments used after FROM must be specified again +ARG DISTRO + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + osmo-pcap-client osmo-pcap-server && \ + apt-get clean \ + ;; \ + centos*) \ + dnf install -y \ + osmo-pcap-client osmo-pcap-server \ + ;; \ + esac + +WORKDIR /data + +VOLUME /data +COPY osmo-pcap-client.cfg /data/ +#COPY osmo-pcap-server.cfg /data/ + +CMD ["/bin/sh", "-c", "/usr/bin/osmo-pcap-clint -c /data/osmo-pcap-client.cfg >/data/osmo-pcap-client.log 2>&1"] + +EXPOSE 4237 diff --git a/osmo-pcap-latest/Makefile b/osmo-pcap-latest/Makefile new file mode 100644 index 0000000..8d0e10b --- /dev/null +++ b/osmo-pcap-latest/Makefile @@ -0,0 +1 @@ +include ../make/Makefile diff --git a/osmo-pcap-latest/osmo-pcap-client.cfg b/osmo-pcap-latest/osmo-pcap-client.cfg new file mode 100644 index 0000000..89f1801 --- /dev/null +++ b/osmo-pcap-latest/osmo-pcap-client.cfg @@ -0,0 +1,14 @@ +! +! OsmoPCAPClient (UNKNOWN-dirty) configuration saved from vty +!! +! +! +line vty + no login +! +client + pcap device lo + pcap filter udp port 44423 + pcap detect-loop 0 + server ip 127.0.0.1 + server port 5000 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1da28383117d0f81d7857fa27ba837d77f0079e0 Gerrit-Change-Number: 23884 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 25 11:18:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:18:35 +0000 Subject: Change in docker-playground[master]: Add ttcn3-pcap-client-test In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23885 ) Change subject: Add ttcn3-pcap-client-test ...................................................................... Add ttcn3-pcap-client-test This runs pcap-client IUT against the TTCN3 ATS for pcap-client Change-Id: Ie94106b1d1f348cd66f4b5304be6021dbaf732e1 --- A ttcn3-pcap-client-test/Dockerfile A ttcn3-pcap-client-test/Makefile A ttcn3-pcap-client-test/OPCAP_CLIENT_Tests.cfg A ttcn3-pcap-client-test/jenkins.sh A ttcn3-pcap-client-test/osmo-pcap-client.cfg 5 files changed, 91 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-pcap-client-test/Dockerfile b/ttcn3-pcap-client-test/Dockerfile new file mode 100644 index 0000000..2a3799f --- /dev/null +++ b/ttcn3-pcap-client-test/Dockerfile @@ -0,0 +1,13 @@ +ARG REGISTRY +ARG USER +FROM $REGISTRY/$USER/debian-stretch-titan +ARG OSMO_TTCN3_BRANCH="master" + +ADD http://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit +RUN ttcn3-docker-prepare "$OSMO_TTCN3_BRANCH" pcap-client + +VOLUME /data + +COPY OPCAP_CLIENT_Tests.cfg /data/OPCAP_CLIENT_Tests.cfg + +CMD ttcn3-docker-run pcap-client OPCAP_CLIENT_Tests diff --git a/ttcn3-pcap-client-test/Makefile b/ttcn3-pcap-client-test/Makefile new file mode 100644 index 0000000..1c6de69 --- /dev/null +++ b/ttcn3-pcap-client-test/Makefile @@ -0,0 +1,3 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm + +include ../make/Makefile diff --git a/ttcn3-pcap-client-test/OPCAP_CLIENT_Tests.cfg b/ttcn3-pcap-client-test/OPCAP_CLIENT_Tests.cfg new file mode 100644 index 0000000..e76fc4f --- /dev/null +++ b/ttcn3-pcap-client-test/OPCAP_CLIENT_Tests.cfg @@ -0,0 +1,22 @@ +[ORDERED_INCLUDE] +"/osmo-ttcn3-hacks/Common.cfg" +"/osmo-ttcn3-hacks/pcap-client/OPCAP_CLIENT_Tests.default" + +# Local configuration below + +[LOGGING] + +[TESTPORT_PARAMETERS] +*.VTY.CTRL_HOSTNAME := "172.18.31.20"; + +[MODULE_PARAMETERS] +OPCAP_CLIENT_Tests.mp_local_opcap_ip := "172.18.31.10"; +OPCAP_CLIENT_Tests.mp_local_opcap_port := 5000; +OPCAP_CLIENT_Tests.mp_traffic_a := { "172.18.31.10", 44423 }; +OPCAP_CLIENT_Tests.mp_traffic_b := { "172.18.31.20", 44442 }; + + +[MAIN_CONTROLLER] + +[EXECUTE] +OPCAP_CLIENT_Tests.control diff --git a/ttcn3-pcap-client-test/jenkins.sh b/ttcn3-pcap-client-test/jenkins.sh new file mode 100755 index 0000000..60d44e6 --- /dev/null +++ b/ttcn3-pcap-client-test/jenkins.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +. ../jenkins-common.sh +IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" +docker_images_require \ + "osmo-pcap-$IMAGE_SUFFIX" \ + "ttcn3-pcap-client-test" + +set_clean_up_trap +set -e + +mkdir $VOL_BASE_DIR/pcap-client-tester +cp OPCAP_CLIENT_Tests.cfg $VOL_BASE_DIR/pcap-client-tester/ + +mkdir $VOL_BASE_DIR/pcap-client +cp osmo-pcap-client.cfg $VOL_BASE_DIR/pcap-client/ + +SUBNET=31 +network_create $SUBNET + +echo Starting container with pcap-client +docker run --rm \ + $(docker_network_params $SUBNET 20) \ + --ulimit core=-1 \ + -v $VOL_BASE_DIR/pcap-client:/data \ + --name ${BUILD_TAG}-pcap-client -d \ + $DOCKER_ARGS \ + $REPO_USER/osmo-pcap-$IMAGE_SUFFIX + +echo Starting container with pcap-client testsuite +docker run --rm \ + $(docker_network_params $SUBNET 10) \ + --ulimit core=-1 \ + -e "TTCN3_PCAP_PATH=/data" \ + -v $VOL_BASE_DIR/pcap-client-tester:/data \ + --name ${BUILD_TAG}-ttcn3-pcap-client-test \ + $DOCKER_ARGS \ + $REPO_USER/ttcn3-pcap-client-test diff --git a/ttcn3-pcap-client-test/osmo-pcap-client.cfg b/ttcn3-pcap-client-test/osmo-pcap-client.cfg new file mode 100644 index 0000000..7394c96 --- /dev/null +++ b/ttcn3-pcap-client-test/osmo-pcap-client.cfg @@ -0,0 +1,15 @@ +! +! OsmoPCAPClient (UNKNOWN-dirty) configuration saved from vty +!! +! +! +line vty + no login + bind 0.0.0.0 +! +client + pcap device eth0 + pcap filter udp port 44423 + pcap detect-loop 0 + server ip 172.18.31.10 + server port 5000 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ie94106b1d1f348cd66f4b5304be6021dbaf732e1 Gerrit-Change-Number: 23885 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 25 11:25:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:25:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcap-client: Don't bind to second 'traffic' udp port In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23882 ) Change subject: pcap-client: Don't bind to second 'traffic' udp port ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If826705c78c7a0ad0e633b7a320d7dd5e5561c27 Gerrit-Change-Number: 23882 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 11:25: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 Apr 25 11:25:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 11:25:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcap-client: Don't bind to second 'traffic' udp port In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23882 ) Change subject: pcap-client: Don't bind to second 'traffic' udp port ...................................................................... pcap-client: Don't bind to second 'traffic' udp port if the tester runs on a different host/IP than the IUT (like in our dockerized jenkins tests), then of course we cannot assume that traffic sent by the tester can be received by the tester again. So rather than binding/connecting two sockets, let's only use one and send packets without caring if there is a remote receiver. Change-Id: If826705c78c7a0ad0e633b7a320d7dd5e5561c27 --- M pcap-client/OPCAP_CLIENT_Tests.ttcn 1 file changed, 3 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pcap-client/OPCAP_CLIENT_Tests.ttcn b/pcap-client/OPCAP_CLIENT_Tests.ttcn index 5f59caf..e9fe406 100644 --- a/pcap-client/OPCAP_CLIENT_Tests.ttcn +++ b/pcap-client/OPCAP_CLIENT_Tests.ttcn @@ -34,7 +34,7 @@ /* port to generate IP traffic that may or may not be captured */ port IPL4asp_PT IP; - var integer g_traffic_conn_id[2]; + var integer g_traffic_conn_id; }; private altstep as_Tguard() runs on test_CT { @@ -70,24 +70,12 @@ /* 0 -> 1 */ res := f_IPL4_connect(IP, mp_traffic_b.ip, mp_traffic_b.udp_port, mp_traffic_a.ip, mp_traffic_a.udp_port, -1, { udp:={} }); - g_traffic_conn_id[0] := res.connId; - - /* 1 -> 0 */ - res := f_IPL4_connect(IP, mp_traffic_a.ip, mp_traffic_a.udp_port, - mp_traffic_b.ip, mp_traffic_b.udp_port, -1, { udp:={} }); - g_traffic_conn_id[1] := res.connId; + g_traffic_conn_id := res.connId; } /* generate user traffic from A -> B */ function f_trafic_pkt_ab(octetstring payload) runs on test_CT { - IP.send(ASP_Send:{g_traffic_conn_id[0], omit, payload}) - IP.receive(ASP_RecvFrom:{g_traffic_conn_id[1], ?, ?, ?, ?, { udp:={} }, ?, payload}); -} - -/* generate user traffic from B -> A */ -function f_trafic_pkt_ba(octetstring payload) runs on test_CT { - IP.send(ASP_Send:{g_traffic_conn_id[1], omit, payload}) - IP.receive(ASP_RecvFrom:{g_traffic_conn_id[0], ?, ?, ?, ?, { udp:={} }, ?, payload}); + IP.send(ASP_Send:{g_traffic_conn_id, omit, payload}) } /* expect a specified UDP payload on the OPCAP connection 'idx' */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If826705c78c7a0ad0e633b7a320d7dd5e5561c27 Gerrit-Change-Number: 23882 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 Apr 25 12:29:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 12:29:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: stp: Add TC_ipa_to_m3ua_ni() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23886 ) Change subject: stp: Add TC_ipa_to_m3ua_ni() ...................................................................... stp: Add TC_ipa_to_m3ua_ni() This tests sets a non-zero default network-indicator in the ss7 instance and then performs an IPA -> M3UA translation while checking if the M3UA side now uses the specified default network-indicator (NATIONAL). Change-Id: Id4f9d0ff67e114a119ab032d44ac0dfd34f5c402 Related: SYS#5421 --- M library/M3UA_Templates.ttcn M stp/STP_Tests.ttcn 2 files changed, 40 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/23886/1 diff --git a/library/M3UA_Templates.ttcn b/library/M3UA_Templates.ttcn index 5881b40..3667ca0 100644 --- a/library/M3UA_Templates.ttcn +++ b/library/M3UA_Templates.ttcn @@ -17,6 +17,9 @@ const OCT1 c_M3UA_VERSION := '01'O; +const OCT1 c_M3UA_NI_NATIONAL := '02'O; +const OCT1 c_M3UA_NI_INTERNATIONAL := '00'O; + const OCT2 c_M3UA_ST_T_STATE_CHG := '0001'O; const OCT2 c_M3UA_ST_I_RESERVED := '0001'O; const OCT2 c_M3UA_ST_I_AS_INACTIVE := '0002'O; diff --git a/stp/STP_Tests.ttcn b/stp/STP_Tests.ttcn index 990518c..004af05 100644 --- a/stp/STP_Tests.ttcn +++ b/stp/STP_Tests.ttcn @@ -120,6 +120,42 @@ f_clear_m3ua(); } +/* test routing an SCCP message from IPA ASP to M3UA ASP using national network indicator */ +testcase TC_ipa_to_m3ua_ni() runs on IPA_M3UA_CT { + var OCT4 pc_sender := int2oct(5, 4); + var OCT4 rctx_receiver := int2oct(1023, 4); + var OCT4 pc_receiver := int2oct(23, 4); + + f_init_common(); + f_vty_config2(VTY, {"cs7 instance 0", "as ipa-as-dynamic-asp ipa"}, + "point-code override patch-sccp disabled"); + + f_init_m3ua(); + f_init_ipa(); + + f_connect_ipa(3); + f_M3UA_asp_up_act(0, omit, omit); // TODO: rctx + + /* send a well-formed, encoded SCCP message via IPA */ + var octetstring data := f_rnd_octstring(f_rnd_int(100)); + var SCCP_PAR_Address called := valueof(ts_SccpAddr_GT('1234'H)); + var SCCP_PAR_Address calling := valueof(ts_SccpAddr_GT('5678'H)); + var PDU_SCCP sccp := valueof(ts_SCCP_UDT(called, calling, data)); + var octetstring sccp_enc := enc_PDU_SCCP(sccp); + f_vty_config2(VTY, {"cs7 instance 0"}, "network-indicator national"); + f_IPA_send(3, sccp_enc); + f_vty_config2(VTY, {"cs7 instance 0"}, "network-indicator international"); + + /* expect to receive it via M3UA */ + var template (present) M3UA_Protocol_Data rx_pd; + rx_pd := tr_M3UA_protocol_data(pc_sender, pc_receiver, c_M3UA_SI_SCCP, c_M3UA_NI_NATIONAL, + '00'O, '00'O, sccp_enc); + f_M3UA_exp(0, tr_M3UA_DATA(rctx_receiver, rx_pd)); + + f_clear_m3ua(); +} + + /* test routing an SCCP message from IPA ASP to M3UA ASP while patching PC into SCCP addresses */ testcase TC_ipa_to_m3ua_patch_sccp() runs on IPA_M3UA_CT { var OCT4 pc_sender := int2oct(5, 4); @@ -163,6 +199,7 @@ /* M3UA <-> IPA Tests */ execute( TC_m3ua_to_ipa() ); execute( TC_ipa_to_m3ua() ); + execute( TC_ipa_to_m3ua_ni() ); execute( TC_ipa_to_m3ua_patch_sccp() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id4f9d0ff67e114a119ab032d44ac0dfd34f5c402 Gerrit-Change-Number: 23886 Gerrit-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 Apr 25 12:29:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 12:29:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add GBProxy_Tests_Outage References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23887 ) Change subject: gbproxy: Add GBProxy_Tests_Outage ...................................................................... gbproxy: Add GBProxy_Tests_Outage This test runs TC_BVC_bringup, terminates all components, waits long enough for all NSVCs to go dead, and then re-starts TC_BVC_bringup to see if it still recovers. Change-Id: I421baa83611baf5df9374ef1598f7c37189dd961 --- M gbproxy/GBProxy_Tests.cfg A gbproxy/GBProxy_Tests_Outage.ttcn 2 files changed, 30 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/23887/1 diff --git a/gbproxy/GBProxy_Tests.cfg b/gbproxy/GBProxy_Tests.cfg index d610e40..1aeb7eb 100644 --- a/gbproxy/GBProxy_Tests.cfg +++ b/gbproxy/GBProxy_Tests.cfg @@ -25,3 +25,4 @@ [EXECUTE] GBProxy_Tests.control +GBProxy_Tests_Outage.control diff --git a/gbproxy/GBProxy_Tests_Outage.ttcn b/gbproxy/GBProxy_Tests_Outage.ttcn new file mode 100644 index 0000000..3433c9c --- /dev/null +++ b/gbproxy/GBProxy_Tests_Outage.ttcn @@ -0,0 +1,29 @@ +module GBProxy_Tests_Outage { + +/* Osmocom GBProxy test suite in TTCN-3 + * (C) 2020-2021 Harald Welte + * (C) 2020 sysmocom - s.f.m.c. GmbH + * All rights reserved. + * + * Author: Daniel Willmann + + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +import from GBProxy_Tests all; +import from Osmocom_Types all; + +/* we want to test recovery after an outage of some sort. So we first bring + * up everything, wait for some time until all state is lost, and then re-start + * from scratch */ +control { + execute( TC_BVC_bringup() ); + f_sleep(90.0); + execute( TC_BVC_bringup() ); +} + + +} -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23887 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I421baa83611baf5df9374ef1598f7c37189dd961 Gerrit-Change-Number: 23887 Gerrit-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 Apr 25 12:31:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 12:31:42 +0000 Subject: Change in libosmo-sccp[master]: ipa: Use VTY-configured default network indicator References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23888 ) Change subject: ipa: Use VTY-configured default network indicator ...................................................................... ipa: Use VTY-configured default network indicator When we receive a message from an IPA/SCCPlite connection, we only have SCCP global titles and no underlying M3UA. We since have to introduce a fake M3UA header. While we correctly set the SI, OPC and DPC, we didn't set the NI to what is configured as default for the cs7 instance in the VTY. For international, this problem was hidden by the fact that international is '0' and hence our default memory initialization. Change-Id: I02c618fa0a0aa2a859fcd56397df9637043c8e6e Closes: SYS#5421 --- M src/ipa.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/88/23888/1 diff --git a/src/ipa.c b/src/ipa.c index d7a929d..93edef8 100644 --- a/src/ipa.c +++ b/src/ipa.c @@ -273,6 +273,7 @@ data_hdr.si = MTP_SI_SCCP; data_hdr.opc = osmo_htonl(opc); data_hdr.dpc = osmo_htonl(dpc); + data_hdr.ni = as->inst->cfg.network_indicator; /* Create M3UA message in XUA structure */ xua = m3ua_xfer_from_data(&data_hdr, msgb_l2(msg), msgb_l2len(msg)); msgb_free(msg); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I02c618fa0a0aa2a859fcd56397df9637043c8e6e Gerrit-Change-Number: 23888 Gerrit-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 Apr 25 12:33:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 12:33:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: stp: Add TC_ipa_to_m3ua_ni() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23886 ) Change subject: stp: Add TC_ipa_to_m3ua_ni() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id4f9d0ff67e114a119ab032d44ac0dfd34f5c402 Gerrit-Change-Number: 23886 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 12:33: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 Apr 25 12:33:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 12:33:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: stp: Add TC_ipa_to_m3ua_ni() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23886 ) Change subject: stp: Add TC_ipa_to_m3ua_ni() ...................................................................... stp: Add TC_ipa_to_m3ua_ni() This tests sets a non-zero default network-indicator in the ss7 instance and then performs an IPA -> M3UA translation while checking if the M3UA side now uses the specified default network-indicator (NATIONAL). Change-Id: Id4f9d0ff67e114a119ab032d44ac0dfd34f5c402 Related: SYS#5421 --- M library/M3UA_Templates.ttcn M stp/STP_Tests.ttcn 2 files changed, 40 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/M3UA_Templates.ttcn b/library/M3UA_Templates.ttcn index 5881b40..3667ca0 100644 --- a/library/M3UA_Templates.ttcn +++ b/library/M3UA_Templates.ttcn @@ -17,6 +17,9 @@ const OCT1 c_M3UA_VERSION := '01'O; +const OCT1 c_M3UA_NI_NATIONAL := '02'O; +const OCT1 c_M3UA_NI_INTERNATIONAL := '00'O; + const OCT2 c_M3UA_ST_T_STATE_CHG := '0001'O; const OCT2 c_M3UA_ST_I_RESERVED := '0001'O; const OCT2 c_M3UA_ST_I_AS_INACTIVE := '0002'O; diff --git a/stp/STP_Tests.ttcn b/stp/STP_Tests.ttcn index 990518c..004af05 100644 --- a/stp/STP_Tests.ttcn +++ b/stp/STP_Tests.ttcn @@ -120,6 +120,42 @@ f_clear_m3ua(); } +/* test routing an SCCP message from IPA ASP to M3UA ASP using national network indicator */ +testcase TC_ipa_to_m3ua_ni() runs on IPA_M3UA_CT { + var OCT4 pc_sender := int2oct(5, 4); + var OCT4 rctx_receiver := int2oct(1023, 4); + var OCT4 pc_receiver := int2oct(23, 4); + + f_init_common(); + f_vty_config2(VTY, {"cs7 instance 0", "as ipa-as-dynamic-asp ipa"}, + "point-code override patch-sccp disabled"); + + f_init_m3ua(); + f_init_ipa(); + + f_connect_ipa(3); + f_M3UA_asp_up_act(0, omit, omit); // TODO: rctx + + /* send a well-formed, encoded SCCP message via IPA */ + var octetstring data := f_rnd_octstring(f_rnd_int(100)); + var SCCP_PAR_Address called := valueof(ts_SccpAddr_GT('1234'H)); + var SCCP_PAR_Address calling := valueof(ts_SccpAddr_GT('5678'H)); + var PDU_SCCP sccp := valueof(ts_SCCP_UDT(called, calling, data)); + var octetstring sccp_enc := enc_PDU_SCCP(sccp); + f_vty_config2(VTY, {"cs7 instance 0"}, "network-indicator national"); + f_IPA_send(3, sccp_enc); + f_vty_config2(VTY, {"cs7 instance 0"}, "network-indicator international"); + + /* expect to receive it via M3UA */ + var template (present) M3UA_Protocol_Data rx_pd; + rx_pd := tr_M3UA_protocol_data(pc_sender, pc_receiver, c_M3UA_SI_SCCP, c_M3UA_NI_NATIONAL, + '00'O, '00'O, sccp_enc); + f_M3UA_exp(0, tr_M3UA_DATA(rctx_receiver, rx_pd)); + + f_clear_m3ua(); +} + + /* test routing an SCCP message from IPA ASP to M3UA ASP while patching PC into SCCP addresses */ testcase TC_ipa_to_m3ua_patch_sccp() runs on IPA_M3UA_CT { var OCT4 pc_sender := int2oct(5, 4); @@ -163,6 +199,7 @@ /* M3UA <-> IPA Tests */ execute( TC_m3ua_to_ipa() ); execute( TC_ipa_to_m3ua() ); + execute( TC_ipa_to_m3ua_ni() ); execute( TC_ipa_to_m3ua_patch_sccp() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id4f9d0ff67e114a119ab032d44ac0dfd34f5c402 Gerrit-Change-Number: 23886 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 Apr 25 12:44:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 12:44:09 +0000 Subject: Change in libosmo-sccp[master]: ipa: Use VTY-configured default network indicator In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23888 ) Change subject: ipa: Use VTY-configured default network indicator ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I02c618fa0a0aa2a859fcd56397df9637043c8e6e Gerrit-Change-Number: 23888 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 12: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 Sun Apr 25 12:44:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 12:44:12 +0000 Subject: Change in libosmo-sccp[master]: ipa: Use VTY-configured default network indicator In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23888 ) Change subject: ipa: Use VTY-configured default network indicator ...................................................................... ipa: Use VTY-configured default network indicator When we receive a message from an IPA/SCCPlite connection, we only have SCCP global titles and no underlying M3UA. We since have to introduce a fake M3UA header. While we correctly set the SI, OPC and DPC, we didn't set the NI to what is configured as default for the cs7 instance in the VTY. For international, this problem was hidden by the fact that international is '0' and hence our default memory initialization. Change-Id: I02c618fa0a0aa2a859fcd56397df9637043c8e6e Closes: SYS#5421 --- M src/ipa.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/ipa.c b/src/ipa.c index d7a929d..93edef8 100644 --- a/src/ipa.c +++ b/src/ipa.c @@ -273,6 +273,7 @@ data_hdr.si = MTP_SI_SCCP; data_hdr.opc = osmo_htonl(opc); data_hdr.dpc = osmo_htonl(dpc); + data_hdr.ni = as->inst->cfg.network_indicator; /* Create M3UA message in XUA structure */ xua = m3ua_xfer_from_data(&data_hdr, msgb_l2(msg), msgb_l2len(msg)); msgb_free(msg); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I02c618fa0a0aa2a859fcd56397df9637043c8e6e Gerrit-Change-Number: 23888 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 Apr 25 13:02:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 13:02:56 +0000 Subject: Change in libosmo-sccp[master]: ipa_asp_fsm_del_route(): Log what happens if we bail out early References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23889 ) Change subject: ipa_asp_fsm_del_route(): Log what happens if we bail out early ...................................................................... ipa_asp_fsm_del_route(): Log what happens if we bail out early Let's inform the user about situations in which we'd want to delete the route for an IPA client, but we run into some problem and bail out early. Change-Id: Ie3f57d22901f169afb2c844476b5839cc36752aa Related: SYS#5422 --- M src/xua_asp_fsm.c 1 file changed, 16 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/89/23889/1 diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c index c8dcac6..4630f5b 100644 --- a/src/xua_asp_fsm.c +++ b/src/xua_asp_fsm.c @@ -1010,8 +1010,9 @@ } } -static void ipa_asp_fsm_del_route(struct ipa_asp_fsm_priv *iafp) +static void ipa_asp_fsm_del_route(struct osmo_fsm_inst *fi) { + struct ipa_asp_fsm_priv *iafp = fi->priv; struct osmo_ss7_asp *asp = iafp->asp; struct osmo_ss7_instance *inst = asp->inst; /* We use routing-context '0' here, as that's the only one we support in IPA */ @@ -1023,11 +1024,20 @@ /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */ rt = osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff); /* no route found, bail out */ - if (!rt) + if (!rt) { + LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but cannot " + "find route for DPC %s. Did you manually delete it?\n", + osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc)); return; + } + /* route points to different AS, bail out */ - if (rt->dest.as != as) + if (rt->dest.as != as) { + LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but found " + "route for DPC %s points to different AS (%s)\n", + osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc), rt->dest.as->cfg.name); return; + } osmo_ss7_route_destroy(rt); /* FIXME: Why don't we also delete this timer if we return early above? @@ -1041,7 +1051,7 @@ switch (event) { case XUA_ASP_E_M_ASP_DOWN_REQ: case XUA_ASP_E_M_ASP_INACTIVE_REQ: - ipa_asp_fsm_del_route(fi->priv); + ipa_asp_fsm_del_route(fi); osmo_fsm_inst_state_chg(fi, IPA_ASP_S_DOWN, 0, 0); break; } @@ -1051,7 +1061,7 @@ { switch (event) { case XUA_ASP_E_M_ASP_DOWN_REQ: - ipa_asp_fsm_del_route(fi->priv); + ipa_asp_fsm_del_route(fi); osmo_fsm_inst_state_chg(fi, IPA_ASP_S_DOWN, 0, 0); break; } @@ -1178,7 +1188,7 @@ static void ipa_asp_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) { - ipa_asp_fsm_del_route(fi->priv); + ipa_asp_fsm_del_route(fi); } struct osmo_fsm ipa_asp_fsm = { -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ie3f57d22901f169afb2c844476b5839cc36752aa Gerrit-Change-Number: 23889 Gerrit-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 Apr 25 13:09:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 13:09:24 +0000 Subject: Change in libosmo-sccp[master]: Don't create duplicate routes in osmo_ss7_route_create() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 ) Change subject: Don't create duplicate routes in osmo_ss7_route_create() ...................................................................... Don't create duplicate routes in osmo_ss7_route_create() Let's refuse to create exactly identical routes Change-Id: I520415d4499a4017dfdbdfc3cd67522e1bbd1627 Related: SYS#5422 --- M src/osmo_ss7.c 1 file changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/90/23890/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 5ff4ca4..f8e12e7 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -783,6 +783,15 @@ return NULL; } + /* check for duplicates */ + rt = osmo_ss7_route_find_dpc_mask(rtbl, pc, mask); + if (rt && !strcmp(rt->cfg.linkset_name, linkset_name)) { + LOGSS7(rtbl->inst, LOGL_ERROR, "Refusing to create duplicate route: " + "pc=%u=%s mask=0x%x via linkset/AS '%s'\n", + pc, osmo_ss7_pointcode_print(rtbl->inst, pc), mask, linkset_name); + return NULL; + } + rt = talloc_zero(rtbl, struct osmo_ss7_route); if (!rt) return NULL; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I520415d4499a4017dfdbdfc3cd67522e1bbd1627 Gerrit-Change-Number: 23890 Gerrit-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 Apr 25 15:33:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 15:33:04 +0000 Subject: Change in libosmo-sccp[master]: ipa_asp_fsm: Fix AS lookup from IPA ASP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23891 ) Change subject: ipa_asp_fsm: Fix AS lookup from IPA ASP ...................................................................... ipa_asp_fsm: Fix AS lookup from IPA ASP Contrary to proper SIGTRAN, IPA/SCCPlite cannot support multiple AS within one AS. When looking up the AS from the ASP, we cannot blindly use routing context 0 to find the AS, as there may very well be multiple IPA AS, and all of those have routing context 0. As a result, the exiting look-up by osmo_ss7_as_find_by_rctx(inst, 0) will return the wrong AS, and we will try to add/delete routes for a completely different AS when ASPs are coming up or going down. Instead, we need to use xua_find_as_for_asp() in order do the look-up: It will resolve the single AS within the ASP. Change-Id: Id295daf84f6ba1cc56cbe1761f874bea329e17ea Cloess: SYS#5422 --- M src/xua_asp_fsm.c 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/91/23891/1 diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c index 4630f5b..f8683d5 100644 --- a/src/xua_asp_fsm.c +++ b/src/xua_asp_fsm.c @@ -29,6 +29,7 @@ #include "xua_asp_fsm.h" #include "xua_as_fsm.h" +#include "xua_internal.h" #define S(x) (1 << (x)) @@ -941,9 +942,9 @@ struct ipa_asp_fsm_priv *iafp = fi->priv; struct osmo_ss7_asp *asp = iafp->asp; struct osmo_ss7_instance *inst = asp->inst; - /* We use routing-context '0' here, as that's the only one we support in IPA */ - struct osmo_ss7_as *as = osmo_ss7_as_find_by_rctx(inst, 0); + struct osmo_ss7_as *as; + xua_find_as_for_asp(&as, asp, NULL); OSMO_ASSERT(as); switch (event) { @@ -1015,10 +1016,10 @@ struct ipa_asp_fsm_priv *iafp = fi->priv; struct osmo_ss7_asp *asp = iafp->asp; struct osmo_ss7_instance *inst = asp->inst; - /* We use routing-context '0' here, as that's the only one we support in IPA */ - struct osmo_ss7_as *as = osmo_ss7_as_find_by_rctx(inst, 0); + struct osmo_ss7_as *as; struct osmo_ss7_route *rt; + xua_find_as_for_asp(&as, asp, NULL); OSMO_ASSERT(as); /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */ -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id295daf84f6ba1cc56cbe1761f874bea329e17ea Gerrit-Change-Number: 23891 Gerrit-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 Apr 25 15:33:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 15:33:05 +0000 Subject: Change in libosmo-sccp[master]: don't log "SCTP connection close" if an IPA/TCP connection closes References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23892 ) Change subject: don't log "SCTP connection close" if an IPA/TCP connection closes ...................................................................... don't log "SCTP connection close" if an IPA/TCP connection closes The xua_srv_conn_closed_cb() function is shared/generic. Let's simply write "connection closed" to avoid any confusion. As the ASP name is printed, it should be clear which L4 protocol was used. Change-Id: I506ccc2665a6b0af0fde3961e7e7937af7a81219 --- M src/osmo_ss7.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/92/23892/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 5ff4ca4..0b11f11 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1834,8 +1834,7 @@ { struct osmo_ss7_asp *asp = osmo_stream_srv_get_data(srv); - LOGP(DLSS7, LOGL_INFO, "%s: SCTP connection closed\n", - asp ? asp->cfg.name : "?"); + LOGP(DLSS7, LOGL_INFO, "%s: connection closed\n", asp ? asp->cfg.name : "?"); if (!asp) return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I506ccc2665a6b0af0fde3961e7e7937af7a81219 Gerrit-Change-Number: 23892 Gerrit-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 Apr 25 16:49:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 16:49:28 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Log route destruction (like we log route creation) References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23893 ) Change subject: osmo_ss7: Log route destruction (like we log route creation) ...................................................................... osmo_ss7: Log route destruction (like we log route creation) Change-Id: I503cc97db5f907610074cb513299a3a8505e00e5 --- M src/osmo_ss7.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/93/23893/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 0b11f11..7021fa8 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -809,7 +809,13 @@ /*! \brief Destroy a given SS7 route */ void osmo_ss7_route_destroy(struct osmo_ss7_route *rt) { + struct osmo_ss7_route_table *rtbl = rt->rtable; + OSMO_ASSERT(ss7_initialized); + + LOGSS7(rtbl->inst, LOGL_INFO, "Destroying route: pc=%u=%s mask=0x%x via linkset/ASP '%s'\n", + rt->cfg.pc, osmo_ss7_pointcode_print(rtbl->inst, rt->cfg.pc), rt->cfg.mask, rt->cfg.linkset_name); + llist_del(&rt->list); talloc_free(rt); } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I503cc97db5f907610074cb513299a3a8505e00e5 Gerrit-Change-Number: 23893 Gerrit-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 Apr 25 16:49:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 16:49:29 +0000 Subject: Change in libosmo-sccp[master]: ipa: Move automatic route add/del from ASP to AS level References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 ) Change subject: ipa: Move automatic route add/del from ASP to AS level ...................................................................... ipa: Move automatic route add/del from ASP to AS level SS7 routes operate on AS level, not ASP level. However, the automatic SS7 route creation/destruction for IPA was implemented at the ASP level. This works for single-connection ASs, but obviously fails in load-share situations: We attempt to add the same route several times, and we delete it at the first ASP disconnect, even while other ASPs still exist. This patch moves the IPA route creation/deletion from the ASP level to the AS level. When the AS becomes active, the route is added; when it goes to DOWN state, it is removed. Change-Id: Idb602beae3e9bc19f7bd96355c02ec8dfd9c5d6c --- M src/xua_as_fsm.c M src/xua_asp_fsm.c 2 files changed, 64 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/94/23894/1 diff --git a/src/xua_as_fsm.c b/src/xua_as_fsm.c index 7c791cf..f66ba88 100644 --- a/src/xua_as_fsm.c +++ b/src/xua_as_fsm.c @@ -202,6 +202,66 @@ } recovery; }; +/* is the given AS one with a single ASP of IPA type? */ +static bool is_single_ipa_asp(struct osmo_ss7_as *as) +{ + unsigned int asp_count = 0; + int i; + + for (i = 0; i < ARRAY_SIZE(as->cfg.asps); i++) { + struct osmo_ss7_asp *asp = as->cfg.asps[i]; + if (!asp) + continue; + asp_count++; + if (asp->cfg.proto != OSMO_SS7_ASP_PROT_IPA) + return false; + } + if (asp_count == 1) + return true; + return false; +} + +static void ipa_add_route(struct osmo_fsm_inst *fi) +{ + struct xua_as_fsm_priv *xafp = (struct xua_as_fsm_priv *) fi->priv; + struct osmo_ss7_as *as = xafp->as; + struct osmo_ss7_instance *inst = as->inst; + + /* As opposed to M3UA, there is no RKM and we have to implicitly + * automatically add a route once an IPA connection has come up */ + osmo_ss7_route_create(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff, as->cfg.name); +} + +static void ipa_del_route(struct osmo_fsm_inst *fi) +{ + struct xua_as_fsm_priv *xafp = (struct xua_as_fsm_priv *) fi->priv; + struct osmo_ss7_as *as = xafp->as; + struct osmo_ss7_instance *inst = as->inst; + struct osmo_ss7_route *rt; + + /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */ + rt = osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff); + /* no route found, bail out */ + if (!rt) { + LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA AS, but cannot " + "find route for DPC %s. Did you manually delete it?\n", + osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc)); + return; + } + + /* route points to different AS, bail out */ + if (rt->dest.as != as) { + LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but found " + "route for DPC %s points to different AS (%s)\n", + osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc), rt->dest.as->cfg.name); + return; + } + + osmo_ss7_route_destroy(rt); +} + + + /* is any other ASP in this AS in state != DOWN? */ static bool check_any_other_asp_not_down(struct osmo_ss7_as *as, struct osmo_ss7_asp *asp_cmp) { @@ -309,12 +369,16 @@ npar.status_info = M3UA_NOTIFY_I_AS_INACT; break; case XUA_AS_S_ACTIVE: + if (is_single_ipa_asp(as)) + ipa_add_route(fi); npar.status_info = M3UA_NOTIFY_I_AS_ACT; break; case XUA_AS_S_PENDING: npar.status_info = M3UA_NOTIFY_I_AS_PEND; break; case XUA_AS_S_DOWN: + if (is_single_ipa_asp(as)) + ipa_del_route(fi); /* RFC4666 sec 4.3.2 AS States: If we end up here, it means no ASP is ACTIVE or INACTIVE, meaning no ASP can have already configured the traffic mode diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c index f8683d5..ec85d21 100644 --- a/src/xua_asp_fsm.c +++ b/src/xua_asp_fsm.c @@ -939,23 +939,11 @@ /* Server: We're waiting for an ID ACK */ static void ipa_asp_fsm_wait_id_ack2(struct osmo_fsm_inst *fi, uint32_t event, void *data) { - struct ipa_asp_fsm_priv *iafp = fi->priv; - struct osmo_ss7_asp *asp = iafp->asp; - struct osmo_ss7_instance *inst = asp->inst; - struct osmo_ss7_as *as; - - xua_find_as_for_asp(&as, asp, NULL); - OSMO_ASSERT(as); - switch (event) { case IPA_ASP_E_ID_ACK: /* ACK received, we can go to active state now. The * ACTIVE onenter function will inform the AS */ osmo_fsm_inst_state_chg(fi, IPA_ASP_S_ACTIVE, 0, 0); - /* As opposed to M3UA, there is no RKM and we have to implicitly automatically add - * a route once an IPA connection has come up */ - osmo_ss7_route_create(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff, - as->cfg.name); break; } } @@ -1011,48 +999,12 @@ } } -static void ipa_asp_fsm_del_route(struct osmo_fsm_inst *fi) -{ - struct ipa_asp_fsm_priv *iafp = fi->priv; - struct osmo_ss7_asp *asp = iafp->asp; - struct osmo_ss7_instance *inst = asp->inst; - struct osmo_ss7_as *as; - struct osmo_ss7_route *rt; - - xua_find_as_for_asp(&as, asp, NULL); - OSMO_ASSERT(as); - - /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */ - rt = osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff); - /* no route found, bail out */ - if (!rt) { - LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but cannot " - "find route for DPC %s. Did you manually delete it?\n", - osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc)); - return; - } - - /* route points to different AS, bail out */ - if (rt->dest.as != as) { - LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but found " - "route for DPC %s points to different AS (%s)\n", - osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc), rt->dest.as->cfg.name); - return; - } - - osmo_ss7_route_destroy(rt); - /* FIXME: Why don't we also delete this timer if we return early above? - * FIXME: Where is this timer even scheduled? */ - osmo_timer_del(&iafp->pong_timer); -} - /* Server + Client: We're actively transmitting user data */ static void ipa_asp_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data) { switch (event) { case XUA_ASP_E_M_ASP_DOWN_REQ: case XUA_ASP_E_M_ASP_INACTIVE_REQ: - ipa_asp_fsm_del_route(fi); osmo_fsm_inst_state_chg(fi, IPA_ASP_S_DOWN, 0, 0); break; } @@ -1062,7 +1014,6 @@ { switch (event) { case XUA_ASP_E_M_ASP_DOWN_REQ: - ipa_asp_fsm_del_route(fi); osmo_fsm_inst_state_chg(fi, IPA_ASP_S_DOWN, 0, 0); break; } @@ -1187,11 +1138,6 @@ }, }; -static void ipa_asp_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) -{ - ipa_asp_fsm_del_route(fi); -} - struct osmo_fsm ipa_asp_fsm = { .name = "IPA_ASP", .states = ipa_asp_states, @@ -1204,7 +1150,6 @@ S(XUA_ASP_E_ASPSM_BEAT) | S(XUA_ASP_E_ASPSM_BEAT_ACK), .allstate_action = ipa_asp_allstate, - .cleanup = ipa_asp_fsm_cleanup, }; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Idb602beae3e9bc19f7bd96355c02ec8dfd9c5d6c Gerrit-Change-Number: 23894 Gerrit-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 Apr 25 19:09:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:09:34 +0000 Subject: Change in libosmocore[master]: sim: Obtain card ATR when opening the card References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23895 ) Change subject: sim: Obtain card ATR when opening the card ...................................................................... sim: Obtain card ATR when opening the card Change-Id: I42e387535c40f371b06f384af0ca5dc1e42ed00e --- M TODO-RELEASE M include/osmocom/sim/sim.h M src/sim/reader_pcsc.c 3 files changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/23895/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index ed04a14..7ba9347 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -9,3 +9,4 @@ #library what description / commit summary line libosmovty _LAST_OSMOVTY_NODE Raise _LAST_OSMOVTY_NODE by introducing some RESERVED*_NODE libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size), gsm0808_old_bss_to_new_bss_info_att_tlvdef symbol added +libosmosim osim_card_hdl ABI + API breakage due to new struct members diff --git a/include/osmocom/sim/sim.h b/include/osmocom/sim/sim.h index 72e7904..16b9f1f 100644 --- a/include/osmocom/sim/sim.h +++ b/include/osmocom/sim/sim.h @@ -11,6 +11,13 @@ #define APDU_HDR_LEN 5 #define MAX_AID_LEN 16 /* Table 13.2 of TS 102 221 */ + +/*! Maximum Answer-To-Reset (ATR) size in bytes + * @note defined in ISO/IEC 7816-3:2006(E) section 8.2.1 as 32, on top the initial character TS of section 8.1 + * @remark technical there is no size limitation since Yi present in T0,TDi will indicate if more interface bytes are present, including TDi+i + */ +#define OSIM_MAX_ATR_LEN 33 + /*! command-response pairs cases * * Enumeration used to identify the APDU structure based on command-response pair case , as specified in ISO/IEC 7816-3:2006(E) ?12.1. @@ -409,6 +416,10 @@ /*! list of applications found on card */ struct llist_head apps; + + /*! ATR (Answer To Reset) of the card */ + uint8_t atr[OSIM_MAX_ATR_LEN]; + unsigned int atr_len; }; struct osim_chan_hdl { diff --git a/src/sim/reader_pcsc.c b/src/sim/reader_pcsc.c index c37380a..7d424b8 100644 --- a/src/sim/reader_pcsc.c +++ b/src/sim/reader_pcsc.c @@ -56,6 +56,27 @@ char *name; }; +static int pcsc_get_atr(struct osim_card_hdl *card) +{ + struct osim_reader_hdl *rh = card->reader; + struct pcsc_reader_state *st = rh->priv; + char pbReader[MAX_READERNAME]; + DWORD dwReaderLen = sizeof(pbReader); + DWORD dwAtrLen = sizeof(card->atr); + DWORD dwState, dwProt; + long rc; + + rc = SCardStatus(st->hCard, pbReader, &dwReaderLen, &dwState, &dwProt, + card->atr, &dwAtrLen); + PCSC_ERROR(rc, "SCardStatus"); + card->atr_len = dwAtrLen; + + return 0; + +end: + return -EIO; +} + static struct osim_reader_hdl *pcsc_reader_open(int num, const char *id, void *ctx) { struct osim_reader_hdl *rh; @@ -130,6 +151,8 @@ chan->card = card; llist_add(&chan->list, &card->channels); + pcsc_get_atr(card); + return card; end: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I42e387535c40f371b06f384af0ca5dc1e42ed00e Gerrit-Change-Number: 23895 Gerrit-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 Apr 25 19:09:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:09:34 +0000 Subject: Change in libosmocore[master]: sim: Remove 'printf' from library code References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23896 ) Change subject: sim: Remove 'printf' from library code ...................................................................... sim: Remove 'printf' from library code Those were really meant as an early debugging aid and should not have survived this long. Change-Id: I4e9a80ced15686734d4485c232c5936f566cfd76 --- M src/sim/reader.c M src/sim/reader_pcsc.c 2 files changed, 0 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/96/23896/1 diff --git a/src/sim/reader.c b/src/sim/reader.c index d5292ba..ae0aba9 100644 --- a/src/sim/reader.c +++ b/src/sim/reader.c @@ -123,7 +123,6 @@ /* save SW */ sw = msgb_apdu_sw(tmsg); - printf("sw = 0x%04x\n", sw); msgb_apdu_sw(amsg) = sw; switch (msgb_apdu_case(amsg)) { diff --git a/src/sim/reader_pcsc.c b/src/sim/reader_pcsc.c index 7d424b8..234a9a7 100644 --- a/src/sim/reader_pcsc.c +++ b/src/sim/reader_pcsc.c @@ -41,12 +41,9 @@ if (rv != SCARD_S_SUCCESS) { \ fprintf(stderr, text ": %s (0x%lX)\n", pcsc_stringify_error(rv), rv); \ goto end; \ -} else { \ - printf(text ": OK\n\n"); \ } - struct pcsc_reader_state { SCARDCONTEXT hContext; SCARDHANDLE hCard; @@ -166,13 +163,10 @@ DWORD rlen = msgb_tailroom(msg); LONG rc; - printf("TX: %s\n", osmo_hexdump(msg->data, msg->len)); - rc = SCardTransmit(st->hCard, st->pioSendPci, msg->data, msgb_length(msg), &st->pioRecvPci, msg->tail, &rlen); PCSC_ERROR(rc, "SCardEndTransaction"); - printf("RX: %s\n", osmo_hexdump(msg->tail, rlen)); msgb_put(msg, rlen); msgb_apdu_le(msg) = rlen; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e9a80ced15686734d4485c232c5936f566cfd76 Gerrit-Change-Number: 23896 Gerrit-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 Apr 25 19:17:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:17:45 +0000 Subject: Change in simtrace2[master]: st2-cardem-pcsc: Use ATR of real card by default References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23897 ) Change subject: st2-cardem-pcsc: Use ATR of real card by default ...................................................................... st2-cardem-pcsc: Use ATR of real card by default Before this patch, we would always use either a hard-coded default ATR from the source code, or we would use one that the user specified on the command line. The more sane default is to pass-through the real ATR of the card. Change-Id: I75bf618a6b0d983727de4c2f19b4b48ec3e12af8 Closes: OS#5107 Requires: libosmocore.git 22117a7164012d6d88fc202cd63df79c6068484d --- M host/src/simtrace2-cardem-pcsc.c 1 file changed, 19 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/97/23897/1 diff --git a/host/src/simtrace2-cardem-pcsc.c b/host/src/simtrace2-cardem-pcsc.c index 543780f..9a3c7e3 100644 --- a/host/src/simtrace2-cardem-pcsc.c +++ b/host/src/simtrace2-cardem-pcsc.c @@ -1,7 +1,7 @@ /* simtrace2-cardem-pcsc - main program for the host PC to provide a remote SIM * using the SIMtrace 2 firmware in card emulation mode * - * (C) 2016-2020 by Harald Welte + * (C) 2016-2021 by Harald Welte * (C) 2018, sysmocom -s.f.m.c. GmbH, Author: Kevin Redon * * This program is free software; you can redistribute it and/or @@ -51,29 +51,8 @@ #include #include -#define ATR_MAX_LEN 33 - #define LOGCI(ci, lvl, fmt, args ...) printf(fmt, ## args) -/* reasonable ATR offering all protocols and voltages - * smartphones might not care, but other readers do - * - * TS = 0x3B Direct Convention - * T0 = 0x80 Y(1): b1000, K: 0 (historical bytes) - * TD(1) = 0x80 Y(i+1) = b1000, Protocol T=0 - * ---- - * TD(2) = 0x81 Y(i+1) = b1000, Protocol T=1 - * ---- - * TD(3) = 0x1F Y(i+1) = b0001, Protocol T=15 - * ---- - * TA(4) = 0xC7 Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V - * ---- - * Historical bytes - * TCK = 0x59 correct checksum - */ -#define DEFAULT_ATR_STR "3B8080811FC759" - - static void atr_update_csum(uint8_t *atr, unsigned int atr_len) { uint8_t csum = 0; @@ -415,9 +394,9 @@ int rc; int c, ret = 1; int skip_atr = 0; - char *atr = DEFAULT_ATR_STR; - uint8_t real_atr[ATR_MAX_LEN]; - int atr_len; + char *atr = NULL; + uint8_t override_atr[OSIM_MAX_ATR_LEN]; + int override_atr_len = 0; int keep_running = 0; int if_num = 0, vendor_id = -1, product_id = -1; int config_id = -1, altsetting = 0, addr = -1; @@ -484,11 +463,13 @@ } } - atr_len = osmo_hexparse(atr,real_atr,ATR_MAX_LEN); - if (atr_len < 2) { - fprintf(stderr, "Invalid ATR - please omit a leading 0x and only use valid hex " - "digits and whitespace. ATRs need to be between 2 and 33 bytes long.\n"); - goto do_exit; + if (atr) { + override_atr_len = osmo_hexparse(atr, override_atr, sizeof(override_atr)); + if (override_atr_len < 2) { + fprintf(stderr, "Invalid ATR - please omit a leading 0x and only use valid hex " + "digits and whitespace. ATRs need to be between 2 and 33 bytes long.\n"); + goto do_exit; + } } if (vendor_id < 0 || product_id < 0) { @@ -576,8 +557,14 @@ if (!skip_atr) { /* set the ATR */ - atr_update_csum(real_atr, atr_len); - osmo_st2_cardem_request_set_atr(ci, real_atr, atr_len); + if (override_atr_len) { + /* user has specified an override-ATR */ + atr_update_csum(override_atr, override_atr_len); + osmo_st2_cardem_request_set_atr(ci, override_atr, override_atr_len); + } else { + /* use the real ATR of the card */ + osmo_st2_cardem_request_set_atr(ci, card->atr, card->atr_len); + } } /* select remote (forwarded) SIM */ -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I75bf618a6b0d983727de4c2f19b4b48ec3e12af8 Gerrit-Change-Number: 23897 Gerrit-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 Apr 25 19:19:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:19:07 +0000 Subject: Change in libosmocore[master]: sim: Obtain card ATR when opening the card In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23895 ) Change subject: sim: Obtain card ATR when opening the card ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I42e387535c40f371b06f384af0ca5dc1e42ed00e Gerrit-Change-Number: 23895 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 19:19: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 Sun Apr 25 19:19:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:19:09 +0000 Subject: Change in libosmocore[master]: sim: Obtain card ATR when opening the card In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23895 ) Change subject: sim: Obtain card ATR when opening the card ...................................................................... sim: Obtain card ATR when opening the card Change-Id: I42e387535c40f371b06f384af0ca5dc1e42ed00e --- M TODO-RELEASE M include/osmocom/sim/sim.h M src/sim/reader_pcsc.c 3 files changed, 35 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index ed04a14..7ba9347 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -9,3 +9,4 @@ #library what description / commit summary line libosmovty _LAST_OSMOVTY_NODE Raise _LAST_OSMOVTY_NODE by introducing some RESERVED*_NODE libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size), gsm0808_old_bss_to_new_bss_info_att_tlvdef symbol added +libosmosim osim_card_hdl ABI + API breakage due to new struct members diff --git a/include/osmocom/sim/sim.h b/include/osmocom/sim/sim.h index 72e7904..16b9f1f 100644 --- a/include/osmocom/sim/sim.h +++ b/include/osmocom/sim/sim.h @@ -11,6 +11,13 @@ #define APDU_HDR_LEN 5 #define MAX_AID_LEN 16 /* Table 13.2 of TS 102 221 */ + +/*! Maximum Answer-To-Reset (ATR) size in bytes + * @note defined in ISO/IEC 7816-3:2006(E) section 8.2.1 as 32, on top the initial character TS of section 8.1 + * @remark technical there is no size limitation since Yi present in T0,TDi will indicate if more interface bytes are present, including TDi+i + */ +#define OSIM_MAX_ATR_LEN 33 + /*! command-response pairs cases * * Enumeration used to identify the APDU structure based on command-response pair case , as specified in ISO/IEC 7816-3:2006(E) ?12.1. @@ -409,6 +416,10 @@ /*! list of applications found on card */ struct llist_head apps; + + /*! ATR (Answer To Reset) of the card */ + uint8_t atr[OSIM_MAX_ATR_LEN]; + unsigned int atr_len; }; struct osim_chan_hdl { diff --git a/src/sim/reader_pcsc.c b/src/sim/reader_pcsc.c index c37380a..7d424b8 100644 --- a/src/sim/reader_pcsc.c +++ b/src/sim/reader_pcsc.c @@ -56,6 +56,27 @@ char *name; }; +static int pcsc_get_atr(struct osim_card_hdl *card) +{ + struct osim_reader_hdl *rh = card->reader; + struct pcsc_reader_state *st = rh->priv; + char pbReader[MAX_READERNAME]; + DWORD dwReaderLen = sizeof(pbReader); + DWORD dwAtrLen = sizeof(card->atr); + DWORD dwState, dwProt; + long rc; + + rc = SCardStatus(st->hCard, pbReader, &dwReaderLen, &dwState, &dwProt, + card->atr, &dwAtrLen); + PCSC_ERROR(rc, "SCardStatus"); + card->atr_len = dwAtrLen; + + return 0; + +end: + return -EIO; +} + static struct osim_reader_hdl *pcsc_reader_open(int num, const char *id, void *ctx) { struct osim_reader_hdl *rh; @@ -130,6 +151,8 @@ chan->card = card; llist_add(&chan->list, &card->channels); + pcsc_get_atr(card); + return card; end: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I42e387535c40f371b06f384af0ca5dc1e42ed00e Gerrit-Change-Number: 23895 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 Apr 25 19:20:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:20:16 +0000 Subject: Change in libosmocore[master]: sim: Remove 'printf' from library code In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23896 ) Change subject: sim: Remove 'printf' from library code ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e9a80ced15686734d4485c232c5936f566cfd76 Gerrit-Change-Number: 23896 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 19:20: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 Apr 25 19:20:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:20:22 +0000 Subject: Change in libosmocore[master]: sim: Remove 'printf' from library code In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23896 ) Change subject: sim: Remove 'printf' from library code ...................................................................... sim: Remove 'printf' from library code Those were really meant as an early debugging aid and should not have survived this long. Change-Id: I4e9a80ced15686734d4485c232c5936f566cfd76 --- M src/sim/reader.c M src/sim/reader_pcsc.c 2 files changed, 0 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/sim/reader.c b/src/sim/reader.c index d5292ba..ae0aba9 100644 --- a/src/sim/reader.c +++ b/src/sim/reader.c @@ -123,7 +123,6 @@ /* save SW */ sw = msgb_apdu_sw(tmsg); - printf("sw = 0x%04x\n", sw); msgb_apdu_sw(amsg) = sw; switch (msgb_apdu_case(amsg)) { diff --git a/src/sim/reader_pcsc.c b/src/sim/reader_pcsc.c index 7d424b8..234a9a7 100644 --- a/src/sim/reader_pcsc.c +++ b/src/sim/reader_pcsc.c @@ -41,12 +41,9 @@ if (rv != SCARD_S_SUCCESS) { \ fprintf(stderr, text ": %s (0x%lX)\n", pcsc_stringify_error(rv), rv); \ goto end; \ -} else { \ - printf(text ": OK\n\n"); \ } - struct pcsc_reader_state { SCARDCONTEXT hContext; SCARDHANDLE hCard; @@ -166,13 +163,10 @@ DWORD rlen = msgb_tailroom(msg); LONG rc; - printf("TX: %s\n", osmo_hexdump(msg->data, msg->len)); - rc = SCardTransmit(st->hCard, st->pioSendPci, msg->data, msgb_length(msg), &st->pioRecvPci, msg->tail, &rlen); PCSC_ERROR(rc, "SCardEndTransaction"); - printf("RX: %s\n", osmo_hexdump(msg->tail, rlen)); msgb_put(msg, rlen); msgb_apdu_le(msg) = rlen; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e9a80ced15686734d4485c232c5936f566cfd76 Gerrit-Change-Number: 23896 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 Apr 25 19:20:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:20:23 +0000 Subject: Change in libosmocore[master]: frame_relay: Export osmo_fr_network_free() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23545 ) Change subject: frame_relay: Export osmo_fr_network_free() ...................................................................... frame_relay: Export osmo_fr_network_free() The function already existed, it was just not declared and not exported. Change-Id: I3f2a7e2fd1a4eda6bbed8510cf82951d73bb3f84 --- M include/osmocom/gprs/frame_relay.h M src/gb/libosmogb.map 2 files changed, 2 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/include/osmocom/gprs/frame_relay.h b/include/osmocom/gprs/frame_relay.h index e316707..8ab9790 100644 --- a/include/osmocom/gprs/frame_relay.h +++ b/include/osmocom/gprs/frame_relay.h @@ -131,6 +131,7 @@ /* allocate a frame relay network */ struct osmo_fr_network *osmo_fr_network_alloc(void *ctx); +void osmo_fr_network_free(struct osmo_fr_network *net); /* allocate a frame relay link in a given network */ struct osmo_fr_link *osmo_fr_link_alloc(struct osmo_fr_network *net, enum osmo_fr_role role, const char *name); diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index fc8ab45..ed9b822 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -100,6 +100,7 @@ bssgp_bvc_fsm_get_max_pdu_len; osmo_fr_network_alloc; +osmo_fr_network_free; osmo_fr_link_alloc; osmo_fr_link_free; osmo_fr_dlc_alloc; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3f2a7e2fd1a4eda6bbed8510cf82951d73bb3f84 Gerrit-Change-Number: 23545 Gerrit-PatchSet: 2 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 Sun Apr 25 19:30:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:30:56 +0000 Subject: Change in simtrace2[master]: st2-cardem-pcsc: Fix goto-in-while mess References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23898 ) Change subject: st2-cardem-pcsc: Fix goto-in-while mess ...................................................................... st2-cardem-pcsc: Fix goto-in-while mess There's some code that wasnts to goto within the while loop, and there's some other code that wants to goto after the while loop. Don't jump from outside the while loop into the while loop. Change-Id: Ic2a94ad034dd259f15712687443b569f0d18ff3f --- M host/src/simtrace2-cardem-pcsc.c 1 file changed, 12 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/98/23898/1 diff --git a/host/src/simtrace2-cardem-pcsc.c b/host/src/simtrace2-cardem-pcsc.c index 543780f..931d9d7 100644 --- a/host/src/simtrace2-cardem-pcsc.c +++ b/host/src/simtrace2-cardem-pcsc.c @@ -545,20 +545,20 @@ transp->usb_devh = osmo_libusb_open_claim_interface(NULL, NULL, ifm); if (!transp->usb_devh) { fprintf(stderr, "can't open USB device\n"); - goto close_exit; + goto close; } rc = libusb_claim_interface(transp->usb_devh, if_num); if (rc < 0) { fprintf(stderr, "can't claim interface %d; rc=%d\n", if_num, rc); - goto close_exit; + goto close; } rc = osmo_libusb_get_ep_addrs(transp->usb_devh, if_num, &transp->usb_ep.out, &transp->usb_ep.in, &transp->usb_ep.irq_in); if (rc < 0) { fprintf(stderr, "can't obtain EP addrs; rc=%d\n", rc); - goto close_exit; + goto close; } allocate_and_submit_irq(ci); @@ -587,13 +587,20 @@ ret = 0; libusb_release_interface(transp->usb_devh, 0); -close_exit: - if (transp->usb_devh) + +close: + if (transp->usb_devh) { libusb_close(transp->usb_devh); + transp->usb_devh = NULL; + } if (keep_running) sleep(1); } while (keep_running); +close_exit: + if (transp->usb_devh) + libusb_close(transp->usb_devh); + libusb_exit(NULL); do_exit: return ret; -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ic2a94ad034dd259f15712687443b569f0d18ff3f Gerrit-Change-Number: 23898 Gerrit-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 Apr 25 19:35:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:35:18 +0000 Subject: Change in simtrace2[master]: st2-cardem-pcsc: Fix goto-in-while mess In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23898 ) Change subject: st2-cardem-pcsc: Fix goto-in-while mess ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ic2a94ad034dd259f15712687443b569f0d18ff3f Gerrit-Change-Number: 23898 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 19:35:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 25 19:35:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:35:25 +0000 Subject: Change in simtrace2[master]: st2-cardem-pcsc: Use ATR of real card by default In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23897 ) Change subject: st2-cardem-pcsc: Use ATR of real card by default ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I75bf618a6b0d983727de4c2f19b4b48ec3e12af8 Gerrit-Change-Number: 23897 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 19:35: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 Sun Apr 25 19:35:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:35:27 +0000 Subject: Change in simtrace2[master]: st2-cardem-pcsc: Fix goto-in-while mess In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23898 ) Change subject: st2-cardem-pcsc: Fix goto-in-while mess ...................................................................... st2-cardem-pcsc: Fix goto-in-while mess There's some code that wasnts to goto within the while loop, and there's some other code that wants to goto after the while loop. Don't jump from outside the while loop into the while loop. Change-Id: Ic2a94ad034dd259f15712687443b569f0d18ff3f --- M host/src/simtrace2-cardem-pcsc.c 1 file changed, 12 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/host/src/simtrace2-cardem-pcsc.c b/host/src/simtrace2-cardem-pcsc.c index 543780f..931d9d7 100644 --- a/host/src/simtrace2-cardem-pcsc.c +++ b/host/src/simtrace2-cardem-pcsc.c @@ -545,20 +545,20 @@ transp->usb_devh = osmo_libusb_open_claim_interface(NULL, NULL, ifm); if (!transp->usb_devh) { fprintf(stderr, "can't open USB device\n"); - goto close_exit; + goto close; } rc = libusb_claim_interface(transp->usb_devh, if_num); if (rc < 0) { fprintf(stderr, "can't claim interface %d; rc=%d\n", if_num, rc); - goto close_exit; + goto close; } rc = osmo_libusb_get_ep_addrs(transp->usb_devh, if_num, &transp->usb_ep.out, &transp->usb_ep.in, &transp->usb_ep.irq_in); if (rc < 0) { fprintf(stderr, "can't obtain EP addrs; rc=%d\n", rc); - goto close_exit; + goto close; } allocate_and_submit_irq(ci); @@ -587,13 +587,20 @@ ret = 0; libusb_release_interface(transp->usb_devh, 0); -close_exit: - if (transp->usb_devh) + +close: + if (transp->usb_devh) { libusb_close(transp->usb_devh); + transp->usb_devh = NULL; + } if (keep_running) sleep(1); } while (keep_running); +close_exit: + if (transp->usb_devh) + libusb_close(transp->usb_devh); + libusb_exit(NULL); do_exit: return ret; -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ic2a94ad034dd259f15712687443b569f0d18ff3f Gerrit-Change-Number: 23898 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 Apr 25 19:35:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:35:28 +0000 Subject: Change in simtrace2[master]: st2-cardem-pcsc: Use ATR of real card by default In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/23897 ) Change subject: st2-cardem-pcsc: Use ATR of real card by default ...................................................................... st2-cardem-pcsc: Use ATR of real card by default Before this patch, we would always use either a hard-coded default ATR from the source code, or we would use one that the user specified on the command line. The more sane default is to pass-through the real ATR of the card. Change-Id: I75bf618a6b0d983727de4c2f19b4b48ec3e12af8 Closes: OS#5107 Requires: libosmocore.git 22117a7164012d6d88fc202cd63df79c6068484d --- M host/src/simtrace2-cardem-pcsc.c 1 file changed, 19 insertions(+), 32 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/host/src/simtrace2-cardem-pcsc.c b/host/src/simtrace2-cardem-pcsc.c index 931d9d7..66e3e7a 100644 --- a/host/src/simtrace2-cardem-pcsc.c +++ b/host/src/simtrace2-cardem-pcsc.c @@ -1,7 +1,7 @@ /* simtrace2-cardem-pcsc - main program for the host PC to provide a remote SIM * using the SIMtrace 2 firmware in card emulation mode * - * (C) 2016-2020 by Harald Welte + * (C) 2016-2021 by Harald Welte * (C) 2018, sysmocom -s.f.m.c. GmbH, Author: Kevin Redon * * This program is free software; you can redistribute it and/or @@ -51,29 +51,8 @@ #include #include -#define ATR_MAX_LEN 33 - #define LOGCI(ci, lvl, fmt, args ...) printf(fmt, ## args) -/* reasonable ATR offering all protocols and voltages - * smartphones might not care, but other readers do - * - * TS = 0x3B Direct Convention - * T0 = 0x80 Y(1): b1000, K: 0 (historical bytes) - * TD(1) = 0x80 Y(i+1) = b1000, Protocol T=0 - * ---- - * TD(2) = 0x81 Y(i+1) = b1000, Protocol T=1 - * ---- - * TD(3) = 0x1F Y(i+1) = b0001, Protocol T=15 - * ---- - * TA(4) = 0xC7 Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V - * ---- - * Historical bytes - * TCK = 0x59 correct checksum - */ -#define DEFAULT_ATR_STR "3B8080811FC759" - - static void atr_update_csum(uint8_t *atr, unsigned int atr_len) { uint8_t csum = 0; @@ -415,9 +394,9 @@ int rc; int c, ret = 1; int skip_atr = 0; - char *atr = DEFAULT_ATR_STR; - uint8_t real_atr[ATR_MAX_LEN]; - int atr_len; + char *atr = NULL; + uint8_t override_atr[OSIM_MAX_ATR_LEN]; + int override_atr_len = 0; int keep_running = 0; int if_num = 0, vendor_id = -1, product_id = -1; int config_id = -1, altsetting = 0, addr = -1; @@ -484,11 +463,13 @@ } } - atr_len = osmo_hexparse(atr,real_atr,ATR_MAX_LEN); - if (atr_len < 2) { - fprintf(stderr, "Invalid ATR - please omit a leading 0x and only use valid hex " - "digits and whitespace. ATRs need to be between 2 and 33 bytes long.\n"); - goto do_exit; + if (atr) { + override_atr_len = osmo_hexparse(atr, override_atr, sizeof(override_atr)); + if (override_atr_len < 2) { + fprintf(stderr, "Invalid ATR - please omit a leading 0x and only use valid hex " + "digits and whitespace. ATRs need to be between 2 and 33 bytes long.\n"); + goto do_exit; + } } if (vendor_id < 0 || product_id < 0) { @@ -576,8 +557,14 @@ if (!skip_atr) { /* set the ATR */ - atr_update_csum(real_atr, atr_len); - osmo_st2_cardem_request_set_atr(ci, real_atr, atr_len); + if (override_atr_len) { + /* user has specified an override-ATR */ + atr_update_csum(override_atr, override_atr_len); + osmo_st2_cardem_request_set_atr(ci, override_atr, override_atr_len); + } else { + /* use the real ATR of the card */ + osmo_st2_cardem_request_set_atr(ci, card->atr, card->atr_len); + } } /* select remote (forwarded) SIM */ -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I75bf618a6b0d983727de4c2f19b4b48ec3e12af8 Gerrit-Change-Number: 23897 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 25 19:55:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:55:25 +0000 Subject: Change in osmo-ci[master]: release-tarballs: Don't rely on system-installed 'known_hosts' References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23899 ) Change subject: release-tarballs: Don't rely on system-installed 'known_hosts' ...................................................................... release-tarballs: Don't rely on system-installed 'known_hosts' We should do like the various contrib/jenkins.sh scripts and bring our own known_hosts file to deploy to ftp.osmocom.org. This fixes deploying after merging If0d57ef9edc4d6b3fdf435e44573a15d64245b6a recently. Change-Id: Ia598739f820c8b00c33382afbbe88bf2638241dc --- M jobs/osmocom-release-tarballs.yml 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/99/23899/1 diff --git a/jobs/osmocom-release-tarballs.yml b/jobs/osmocom-release-tarballs.yml index 9ecffca..930fb42 100644 --- a/jobs/osmocom-release-tarballs.yml +++ b/jobs/osmocom-release-tarballs.yml @@ -38,7 +38,13 @@ -e KEEP_TEMP="$KEEP_TEMP" \ "$USER/debian-stretch-build-dist" /osmo-ci/scripts/osmocom-release-tarballs.sh - SSH_COMMAND="ssh -p 48" + cat > "$WORKSPACE/known_hosts" < Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 25 19:55:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:55:25 +0000 Subject: Change in osmo-ci[master]: add jenkins jobs for TTCN3 tests of osmo-pcap-client References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23900 ) Change subject: add jenkins jobs for TTCN3 tests of osmo-pcap-client ...................................................................... add jenkins jobs for TTCN3 tests of osmo-pcap-client Change-Id: I4283c3f578a9baccddc693d4b09043502212a8e5 --- M jobs/ttcn3-testsuites.yml 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/00/23900/1 diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml index deaceae..87a6237 100644 --- a/jobs/ttcn3-testsuites.yml +++ b/jobs/ttcn3-testsuites.yml @@ -126,6 +126,9 @@ blocking: "^(ttcn3|TTCN3-.*)-ns-test-fr.*" timer: 20 11 * * * node: hdlc + - ttcn3-pcap-client-test: + blocking: "^(ttcn3|TTCN3-.*)-pcap-client-test.*" + timer: 40 11 * * * # debian-stretch latest stable - nplab-m3ua-test-latest: @@ -190,6 +193,10 @@ - ttcn3-cbc-test-latest: blocking: "^(ttcn3|TTCN3-.*)-cbc-test.*" timer: 40 10 * * * + - ttcn3-pcap-client-test-latest: + blocking: "^(ttcn3|TTCN3-.*)-pcap-client-test.*" + timer: 40 11 * * * + # Jobs below use uppercase TTCN3-$DISTRO, so they get listed separately from the ttcn3-* (debian-stretch) jobs -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4283c3f578a9baccddc693d4b09043502212a8e5 Gerrit-Change-Number: 23900 Gerrit-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 Apr 25 19:57:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:57:26 +0000 Subject: Change in osmo-ci[master]: release-tarballs: Don't rely on system-installed 'known_hosts' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23899 ) Change subject: release-tarballs: Don't rely on system-installed 'known_hosts' ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ia598739f820c8b00c33382afbbe88bf2638241dc Gerrit-Change-Number: 23899 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Sun, 25 Apr 2021 19:57: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 Apr 25 19:57:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:57:28 +0000 Subject: Change in osmo-ci[master]: release-tarballs: Don't rely on system-installed 'known_hosts' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23899 ) Change subject: release-tarballs: Don't rely on system-installed 'known_hosts' ...................................................................... release-tarballs: Don't rely on system-installed 'known_hosts' We should do like the various contrib/jenkins.sh scripts and bring our own known_hosts file to deploy to ftp.osmocom.org. This fixes deploying after merging If0d57ef9edc4d6b3fdf435e44573a15d64245b6a recently. Change-Id: Ia598739f820c8b00c33382afbbe88bf2638241dc --- M jobs/osmocom-release-tarballs.yml 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/jobs/osmocom-release-tarballs.yml b/jobs/osmocom-release-tarballs.yml index 9ecffca..930fb42 100644 --- a/jobs/osmocom-release-tarballs.yml +++ b/jobs/osmocom-release-tarballs.yml @@ -38,7 +38,13 @@ -e KEEP_TEMP="$KEEP_TEMP" \ "$USER/debian-stretch-build-dist" /osmo-ci/scripts/osmocom-release-tarballs.sh - SSH_COMMAND="ssh -p 48" + cat > "$WORKSPACE/known_hosts" < Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 25 19:57:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:57:36 +0000 Subject: Change in osmo-ci[master]: add jenkins jobs for TTCN3 tests of osmo-pcap-client In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23900 ) Change subject: add jenkins jobs for TTCN3 tests of osmo-pcap-client ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4283c3f578a9baccddc693d4b09043502212a8e5 Gerrit-Change-Number: 23900 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 25 Apr 2021 19:57:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Apr 25 19:57:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 25 Apr 2021 19:57:38 +0000 Subject: Change in osmo-ci[master]: add jenkins jobs for TTCN3 tests of osmo-pcap-client In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23900 ) Change subject: add jenkins jobs for TTCN3 tests of osmo-pcap-client ...................................................................... add jenkins jobs for TTCN3 tests of osmo-pcap-client Change-Id: I4283c3f578a9baccddc693d4b09043502212a8e5 --- M jobs/ttcn3-testsuites.yml 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml index deaceae..87a6237 100644 --- a/jobs/ttcn3-testsuites.yml +++ b/jobs/ttcn3-testsuites.yml @@ -126,6 +126,9 @@ blocking: "^(ttcn3|TTCN3-.*)-ns-test-fr.*" timer: 20 11 * * * node: hdlc + - ttcn3-pcap-client-test: + blocking: "^(ttcn3|TTCN3-.*)-pcap-client-test.*" + timer: 40 11 * * * # debian-stretch latest stable - nplab-m3ua-test-latest: @@ -190,6 +193,10 @@ - ttcn3-cbc-test-latest: blocking: "^(ttcn3|TTCN3-.*)-cbc-test.*" timer: 40 10 * * * + - ttcn3-pcap-client-test-latest: + blocking: "^(ttcn3|TTCN3-.*)-pcap-client-test.*" + timer: 40 11 * * * + # Jobs below use uppercase TTCN3-$DISTRO, so they get listed separately from the ttcn3-* (debian-stretch) jobs -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4283c3f578a9baccddc693d4b09043502212a8e5 Gerrit-Change-Number: 23900 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 Mon Apr 26 08:06:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 26 Apr 2021 08:06:07 +0000 Subject: Change in osmo-gbproxy[master]: examples/osmo-gbproxy.cfg: fix osmo-sgsn conflict References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23901 ) Change subject: examples/osmo-gbproxy.cfg: fix osmo-sgsn conflict ...................................................................... examples/osmo-gbproxy.cfg: fix osmo-sgsn conflict Adjust the config, so osmo-gbproxy and osmo-sgsn can be started with their default configs on the same machine. Fixes: OS#5130 Change-Id: I7959ea8ebd1f5c60177f37dd6eb01724308e0fc0 --- M doc/examples/osmo-gbproxy/osmo-gbproxy.cfg 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/01/23901/1 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg index 3ab0d7a..15c53d2 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg @@ -10,7 +10,7 @@ name main ns bind udp sgsn-side - listen 127.0.0.1 23000 + listen 127.0.0.10 23000 nse 101 ip-sns-bind sgsn-side ip-sns-remote 127.0.1.1 23000 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I7959ea8ebd1f5c60177f37dd6eb01724308e0fc0 Gerrit-Change-Number: 23901 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 08:06:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 26 Apr 2021 08:06:26 +0000 Subject: Change in osmo-ci[master]: repo-install-test: get journal of failed services References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23902 ) Change subject: repo-install-test: get journal of failed services ...................................................................... repo-install-test: get journal of failed services Depending on the service, error messages are not shown with the systemctl command. Run journalctl for failed services so we get the reason for the failure in the jenkins log. Related: OS#5130 Change-Id: Ib454424d7867137246fadd73255d4dbff63731a6 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/02/23902/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 4a5f01a..91c8375 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -379,6 +379,7 @@ for service in $services_feed; do if ! systemctl --no-pager -l -n 200 status $service; then failed="$failed $service" + journalctl -u "$service" -n 200 fi done -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib454424d7867137246fadd73255d4dbff63731a6 Gerrit-Change-Number: 23902 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 08:10:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 08:10:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Take into account TbfStartingTime In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 ) Change subject: pcu: Take into account TbfStartingTime ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/1/pcu/PCU_Tests.ttcn at 3738 PS1, Line 3738: fn := ms.ul_tbf.start_time_fn > Now we have a lot of code duplication with this optional argument. [?] No we can't, because that only needs to be used on the first UL block after Imm Ass on CCCH, so it depends totally on the test details. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced Gerrit-Change-Number: 23877 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 26 Apr 2021 08:10:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 08:11:09 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 26 Apr 2021 08:11:09 +0000 Subject: Change in osmo-gbproxy[master]: examples/osmo-gbproxy.cfg: fix osmo-sgsn conflict In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23901 ) Change subject: examples/osmo-gbproxy.cfg: fix osmo-sgsn conflict ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I7959ea8ebd1f5c60177f37dd6eb01724308e0fc0 Gerrit-Change-Number: 23901 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 26 Apr 2021 08:11:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 08:19:38 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 26 Apr 2021 08:19:38 +0000 Subject: Change in osmo-gbproxy[master]: examples/osmo-gbproxy.cfg: fix osmo-sgsn conflict In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23901 ) Change subject: examples/osmo-gbproxy.cfg: fix osmo-sgsn conflict ...................................................................... examples/osmo-gbproxy.cfg: fix osmo-sgsn conflict Adjust the config, so osmo-gbproxy and osmo-sgsn can be started with their default configs on the same machine. Fixes: OS#5130 Change-Id: I7959ea8ebd1f5c60177f37dd6eb01724308e0fc0 --- M doc/examples/osmo-gbproxy/osmo-gbproxy.cfg 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg index 3ab0d7a..15c53d2 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg @@ -10,7 +10,7 @@ name main ns bind udp sgsn-side - listen 127.0.0.1 23000 + listen 127.0.0.10 23000 nse 101 ip-sns-bind sgsn-side ip-sns-remote 127.0.1.1 23000 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I7959ea8ebd1f5c60177f37dd6eb01724308e0fc0 Gerrit-Change-Number: 23901 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 08:25:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 08:25:39 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: enlarge and share TRXD message buffer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23865 ) Change subject: osmo-bts-trx: enlarge and share TRXD message buffer ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Gerrit-Change-Number: 23865 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08: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 Mon Apr 26 08:31:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 08:31:15 +0000 Subject: Change in libosmo-sccp[master]: ipa_asp_fsm_del_route(): Log what happens if we bail out early In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23889 ) Change subject: ipa_asp_fsm_del_route(): Log what happens if we bail out early ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ie3f57d22901f169afb2c844476b5839cc36752aa Gerrit-Change-Number: 23889 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:31: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 Apr 26 08:32:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 08:32:53 +0000 Subject: Change in libosmo-sccp[master]: Don't create duplicate routes in osmo_ss7_route_create() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 ) Change subject: Don't create duplicate routes in osmo_ss7_route_create() ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23890/2/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23890/2/src/osmo_ss7.c at 792 PS2, Line 792: return NULL; It probably makes sense to return rt here? -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I520415d4499a4017dfdbdfc3cd67522e1bbd1627 Gerrit-Change-Number: 23890 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:32: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 Apr 26 08:40:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 08:40:56 +0000 Subject: Change in libosmo-sccp[master]: ipa_asp_fsm: Fix AS lookup from IPA ASP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23891 ) Change subject: ipa_asp_fsm: Fix AS lookup from IPA ASP ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23891/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmo-sccp/+/23891/2//COMMIT_MSG at 10 PS2, Line 10: AS within one AS. When looking up the AS from the ASP, we cannot ASP -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id295daf84f6ba1cc56cbe1761f874bea329e17ea Gerrit-Change-Number: 23891 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:40: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 Mon Apr 26 08:41:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 08:41:46 +0000 Subject: Change in libosmo-sccp[master]: don't log "SCTP connection close" if an IPA/TCP connection closes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23892 ) Change subject: don't log "SCTP connection close" if an IPA/TCP connection closes ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I506ccc2665a6b0af0fde3961e7e7937af7a81219 Gerrit-Change-Number: 23892 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:41: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 Apr 26 08:43:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 08:43:45 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Log route destruction (like we log route creation) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23893 ) Change subject: osmo_ss7: Log route destruction (like we log route creation) ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I503cc97db5f907610074cb513299a3a8505e00e5 Gerrit-Change-Number: 23893 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:43: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 Apr 26 08:51:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 08:51:47 +0000 Subject: Change in libosmo-sccp[master]: ipa: Move automatic route add/del from ASP to AS level In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 ) Change subject: ipa: Move automatic route add/del from ASP to AS level ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23894/1/src/xua_as_fsm.c File src/xua_as_fsm.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23894/1/src/xua_as_fsm.c at 381 PS1, Line 381: ipa_del_route(fi); Shouldn't this be done in INACTIVE? -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Idb602beae3e9bc19f7bd96355c02ec8dfd9c5d6c Gerrit-Change-Number: 23894 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:51: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 Mon Apr 26 08:53:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:53:09 +0000 Subject: Change in osmo-ci[master]: repo-install-test: get journal of failed services In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23902 ) Change subject: repo-install-test: get journal of failed services ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib454424d7867137246fadd73255d4dbff63731a6 Gerrit-Change-Number: 23902 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 08:53:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 08:54:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:54:09 +0000 Subject: Change in libosmo-sccp[master]: ipa_asp_fsm: Fix AS lookup from IPA ASP 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/libosmo-sccp/+/23891 to look at the new patch set (#3). Change subject: ipa_asp_fsm: Fix AS lookup from IPA ASP ...................................................................... ipa_asp_fsm: Fix AS lookup from IPA ASP Contrary to proper SIGTRAN, IPA/SCCPlite cannot support multiple AS within one ASP. When looking up the AS from the ASP, we cannot blindly use routing context 0 to find the AS, as there may very well be multiple IPA AS, and all of those have routing context 0. As a result, the exiting look-up by osmo_ss7_as_find_by_rctx(inst, 0) will return the wrong AS, and we will try to add/delete routes for a completely different AS when ASPs are coming up or going down. Instead, we need to use xua_find_as_for_asp() in order do the look-up: It will resolve the single AS within the ASP. Change-Id: Id295daf84f6ba1cc56cbe1761f874bea329e17ea Cloess: SYS#5422 --- M src/xua_asp_fsm.c 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/91/23891/3 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id295daf84f6ba1cc56cbe1761f874bea329e17ea Gerrit-Change-Number: 23891 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 Mon Apr 26 08:54:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:54:25 +0000 Subject: Change in libosmo-sccp[master]: ipa_asp_fsm: Fix AS lookup from IPA ASP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23891 ) Change subject: ipa_asp_fsm: Fix AS lookup from IPA ASP ...................................................................... Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23891/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmo-sccp/+/23891/2//COMMIT_MSG at 10 PS2, Line 10: AS within one AS. When looking up the AS from the ASP, we cannot > ASP Done -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id295daf84f6ba1cc56cbe1761f874bea329e17ea Gerrit-Change-Number: 23891 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:54:25 +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 Apr 26 08:54:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:54:29 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Log route destruction (like we log route creation) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23893 ) Change subject: osmo_ss7: Log route destruction (like we log route creation) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I503cc97db5f907610074cb513299a3a8505e00e5 Gerrit-Change-Number: 23893 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:54:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 08:54:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:54:31 +0000 Subject: Change in libosmo-sccp[master]: don't log "SCTP connection close" if an IPA/TCP connection closes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23892 ) Change subject: don't log "SCTP connection close" if an IPA/TCP connection closes ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I506ccc2665a6b0af0fde3961e7e7937af7a81219 Gerrit-Change-Number: 23892 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:54: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 Apr 26 08:54:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:54:34 +0000 Subject: Change in libosmo-sccp[master]: ipa_asp_fsm_del_route(): Log what happens if we bail out early In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23889 ) Change subject: ipa_asp_fsm_del_route(): Log what happens if we bail out early ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ie3f57d22901f169afb2c844476b5839cc36752aa Gerrit-Change-Number: 23889 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:54: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 Apr 26 08:54:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:54:42 +0000 Subject: Change in libosmo-sccp[master]: ipa_asp_fsm_del_route(): Log what happens if we bail out early In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23889 ) Change subject: ipa_asp_fsm_del_route(): Log what happens if we bail out early ...................................................................... ipa_asp_fsm_del_route(): Log what happens if we bail out early Let's inform the user about situations in which we'd want to delete the route for an IPA client, but we run into some problem and bail out early. Change-Id: Ie3f57d22901f169afb2c844476b5839cc36752aa Related: SYS#5422 --- M src/xua_asp_fsm.c 1 file changed, 16 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/xua_asp_fsm.c b/src/xua_asp_fsm.c index c8dcac6..4630f5b 100644 --- a/src/xua_asp_fsm.c +++ b/src/xua_asp_fsm.c @@ -1010,8 +1010,9 @@ } } -static void ipa_asp_fsm_del_route(struct ipa_asp_fsm_priv *iafp) +static void ipa_asp_fsm_del_route(struct osmo_fsm_inst *fi) { + struct ipa_asp_fsm_priv *iafp = fi->priv; struct osmo_ss7_asp *asp = iafp->asp; struct osmo_ss7_instance *inst = asp->inst; /* We use routing-context '0' here, as that's the only one we support in IPA */ @@ -1023,11 +1024,20 @@ /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */ rt = osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff); /* no route found, bail out */ - if (!rt) + if (!rt) { + LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but cannot " + "find route for DPC %s. Did you manually delete it?\n", + osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc)); return; + } + /* route points to different AS, bail out */ - if (rt->dest.as != as) + if (rt->dest.as != as) { + LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but found " + "route for DPC %s points to different AS (%s)\n", + osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc), rt->dest.as->cfg.name); return; + } osmo_ss7_route_destroy(rt); /* FIXME: Why don't we also delete this timer if we return early above? @@ -1041,7 +1051,7 @@ switch (event) { case XUA_ASP_E_M_ASP_DOWN_REQ: case XUA_ASP_E_M_ASP_INACTIVE_REQ: - ipa_asp_fsm_del_route(fi->priv); + ipa_asp_fsm_del_route(fi); osmo_fsm_inst_state_chg(fi, IPA_ASP_S_DOWN, 0, 0); break; } @@ -1051,7 +1061,7 @@ { switch (event) { case XUA_ASP_E_M_ASP_DOWN_REQ: - ipa_asp_fsm_del_route(fi->priv); + ipa_asp_fsm_del_route(fi); osmo_fsm_inst_state_chg(fi, IPA_ASP_S_DOWN, 0, 0); break; } @@ -1178,7 +1188,7 @@ static void ipa_asp_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) { - ipa_asp_fsm_del_route(fi->priv); + ipa_asp_fsm_del_route(fi); } struct osmo_fsm ipa_asp_fsm = { -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ie3f57d22901f169afb2c844476b5839cc36752aa Gerrit-Change-Number: 23889 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 Apr 26 08:54:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:54:43 +0000 Subject: Change in libosmo-sccp[master]: don't log "SCTP connection close" if an IPA/TCP connection closes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23892 ) Change subject: don't log "SCTP connection close" if an IPA/TCP connection closes ...................................................................... don't log "SCTP connection close" if an IPA/TCP connection closes The xua_srv_conn_closed_cb() function is shared/generic. Let's simply write "connection closed" to avoid any confusion. As the ASP name is printed, it should be clear which L4 protocol was used. Change-Id: I506ccc2665a6b0af0fde3961e7e7937af7a81219 --- M src/osmo_ss7.c 1 file changed, 1 insertion(+), 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/osmo_ss7.c b/src/osmo_ss7.c index 5ff4ca4..0b11f11 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1834,8 +1834,7 @@ { struct osmo_ss7_asp *asp = osmo_stream_srv_get_data(srv); - LOGP(DLSS7, LOGL_INFO, "%s: SCTP connection closed\n", - asp ? asp->cfg.name : "?"); + LOGP(DLSS7, LOGL_INFO, "%s: connection closed\n", asp ? asp->cfg.name : "?"); if (!asp) return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I506ccc2665a6b0af0fde3961e7e7937af7a81219 Gerrit-Change-Number: 23892 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 Apr 26 08:54:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:54:44 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Log route destruction (like we log route creation) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23893 ) Change subject: osmo_ss7: Log route destruction (like we log route creation) ...................................................................... osmo_ss7: Log route destruction (like we log route creation) Change-Id: I503cc97db5f907610074cb513299a3a8505e00e5 --- M src/osmo_ss7.c 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/src/osmo_ss7.c b/src/osmo_ss7.c index 0b11f11..7021fa8 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -809,7 +809,13 @@ /*! \brief Destroy a given SS7 route */ void osmo_ss7_route_destroy(struct osmo_ss7_route *rt) { + struct osmo_ss7_route_table *rtbl = rt->rtable; + OSMO_ASSERT(ss7_initialized); + + LOGSS7(rtbl->inst, LOGL_INFO, "Destroying route: pc=%u=%s mask=0x%x via linkset/ASP '%s'\n", + rt->cfg.pc, osmo_ss7_pointcode_print(rtbl->inst, rt->cfg.pc), rt->cfg.mask, rt->cfg.linkset_name); + llist_del(&rt->list); talloc_free(rt); } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I503cc97db5f907610074cb513299a3a8505e00e5 Gerrit-Change-Number: 23893 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 Apr 26 08:54:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:54:44 +0000 Subject: Change in libosmo-sccp[master]: ipa_asp_fsm: Fix AS lookup from IPA ASP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23891 ) Change subject: ipa_asp_fsm: Fix AS lookup from IPA ASP ...................................................................... ipa_asp_fsm: Fix AS lookup from IPA ASP Contrary to proper SIGTRAN, IPA/SCCPlite cannot support multiple AS within one ASP. When looking up the AS from the ASP, we cannot blindly use routing context 0 to find the AS, as there may very well be multiple IPA AS, and all of those have routing context 0. As a result, the exiting look-up by osmo_ss7_as_find_by_rctx(inst, 0) will return the wrong AS, and we will try to add/delete routes for a completely different AS when ASPs are coming up or going down. Instead, we need to use xua_find_as_for_asp() in order do the look-up: It will resolve the single AS within the ASP. Change-Id: Id295daf84f6ba1cc56cbe1761f874bea329e17ea Cloess: SYS#5422 --- M src/xua_asp_fsm.c 1 file changed, 5 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c index 4630f5b..f8683d5 100644 --- a/src/xua_asp_fsm.c +++ b/src/xua_asp_fsm.c @@ -29,6 +29,7 @@ #include "xua_asp_fsm.h" #include "xua_as_fsm.h" +#include "xua_internal.h" #define S(x) (1 << (x)) @@ -941,9 +942,9 @@ struct ipa_asp_fsm_priv *iafp = fi->priv; struct osmo_ss7_asp *asp = iafp->asp; struct osmo_ss7_instance *inst = asp->inst; - /* We use routing-context '0' here, as that's the only one we support in IPA */ - struct osmo_ss7_as *as = osmo_ss7_as_find_by_rctx(inst, 0); + struct osmo_ss7_as *as; + xua_find_as_for_asp(&as, asp, NULL); OSMO_ASSERT(as); switch (event) { @@ -1015,10 +1016,10 @@ struct ipa_asp_fsm_priv *iafp = fi->priv; struct osmo_ss7_asp *asp = iafp->asp; struct osmo_ss7_instance *inst = asp->inst; - /* We use routing-context '0' here, as that's the only one we support in IPA */ - struct osmo_ss7_as *as = osmo_ss7_as_find_by_rctx(inst, 0); + struct osmo_ss7_as *as; struct osmo_ss7_route *rt; + xua_find_as_for_asp(&as, asp, NULL); OSMO_ASSERT(as); /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */ -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id295daf84f6ba1cc56cbe1761f874bea329e17ea Gerrit-Change-Number: 23891 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 Mon Apr 26 08:56:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 08:56:43 +0000 Subject: Change in libosmo-sccp[master]: ipa: Move automatic route add/del from ASP to AS level In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 ) Change subject: ipa: Move automatic route add/del from ASP to AS level ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23894/1/src/xua_as_fsm.c File src/xua_as_fsm.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23894/1/src/xua_as_fsm.c at 381 PS1, Line 381: ipa_del_route(fi); > Shouldn't this be done in INACTIVE? AFAIR, In theory, the INACTIVE state allows queueing of messages which are then sent once it becomes ACTIVE again. We don't really support this yet. I'll check once more how it works with the RKM on M3UA to ensure IPA is following that as closely as possible. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Idb602beae3e9bc19f7bd96355c02ec8dfd9c5d6c Gerrit-Change-Number: 23894 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 08:56:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 09:00:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 09:00:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Take into account TbfStartingTime 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/+/23877 to look at the new patch set (#2). Change subject: pcu: Take into account TbfStartingTime ...................................................................... pcu: Take into account TbfStartingTime New versions of osmo-pcu will validate the Pkt Resource Request is sent on the correct FN, so we must send first UL block exactly when requested. Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 49 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/77/23877/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced Gerrit-Change-Number: 23877 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 09:47:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 09:47:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Drop test TC_t3169 References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23903 ) Change subject: pcu: Drop test TC_t3169 ...................................................................... pcu: Drop test TC_t3169 This test was added a long time ago to test what used to be the previous early implementation of T3169, which didn't follow specs as per TS 44.060. Since recently, osmo-pcu supports tracking UL PDCH blocks and hence properly implementing N3101 and N3101, finally also implementing T3169 correctly. The counters N3101/3 and timer T3169 are already being tested in following tests: TC_n3101_max_t3169 TC_n3103_max_t3169 Since osmo-pcu I2cec531e2633281b88f69ba065c0105580c81076, time-based T3169 is dropped and TC_t3169 doesn't pass anymore, since it had wrong expectancies (because it's not sending RTS to osmo-pcu, hence not triggering USF/RRBP N3101/3 timeouts). Change-Id: I023fb406f1df6e67e16982cb11dc1fcb6fb9b544 --- M pcu/PCU_Tests.ttcn 1 file changed, 0 insertions(+), 44 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/03/23903/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 2509e2b..5345bc7 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1270,49 +1270,6 @@ f_dl_data_exp_cs(f_rlcmac_block_int2cs_mcs(g_mcs_max_dl, true), bssgp_ms_racap_egprs_def); } -/* Verify PCU drops TBF after some time of inactivity. */ -testcase TC_t3169() runs on RAW_PCU_Test_CT { - var PCUIF_info_ind info_ind; - var RlcmacDlBlock dl_block; - var uint32_t unused_fn; - var GprsMS ms; - - /* 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 */ - - info_ind := valueof(ts_PCUIF_INFO_default(c_PCUIF_Flags_noMCS)); - /* Set timer to 1 sec (default 5) to speedup test: */ - info_ind.t3169 := 1; - - /* Initialize the PCU interface abstraction */ - f_init_raw(testcasename(), info_ind); - - /* Establish BSSGP connection to the PCU */ - f_bssgp_establish(); - f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); - - /* Establish an Uplink TBF */ - f_ms_establish_ul_tbf(ms); - - /* Send one UL block (with TLLI since we are in One-Phase Access - contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(10), cv := 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn) - f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn); - /* UL block should NOT be received in SGSN, since we didn't get CV=0 */ - - /* Wait until T3169 fires (plus 1 extra sec to make sure) */ - f_sleep(int2float(info_ind.t3169) + 1.0); - - /* Send an UL block once again, the TBF should be gone by now so no ACK */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(10), cv := 0) - f_rx_rlcmac_dl_block_exp_dummy(dl_block); - - f_shutdown(__BFILE__, __LINE__, final := true); -} - /* Validate what happens when RACH to get UL TBF and then PCU receives no UL * data. It should end up in N3101 reaching N3101_MAX and finally triggering * T3169. See OS#5033 */ @@ -5773,7 +5730,6 @@ execute( TC_mcs_max_ul() ); execute( TC_mcs_initial_dl() ); execute( TC_mcs_max_dl() ); - execute( TC_t3169() ); execute( TC_n3101_max_t3169() ); execute( TC_n3103_max_t3169() ); execute( TC_x2031_t3191() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I023fb406f1df6e67e16982cb11dc1fcb6fb9b544 Gerrit-Change-Number: 23903 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 Apr 26 10:31:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 10:31:40 +0000 Subject: Change in osmo-pcu[master]: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23871 ) Change subject: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING ...................................................................... Patch Set 1: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibb471e727388512d42794d3faa26597e2545b852 Gerrit-Change-Number: 23871 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 26 Apr 2021 10:31: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 Mon Apr 26 10:31:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 10:31:43 +0000 Subject: Change in osmo-pcu[master]: Stop abusing T3169 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23872 ) Change subject: Stop abusing T3169 ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2cec531e2633281b88f69ba065c0105580c81076 Gerrit-Change-Number: 23872 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 26 Apr 2021 10:31: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 Apr 26 11:07:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 11:07:04 +0000 Subject: Change in libosmo-sccp[master]: Don't create duplicate routes in osmo_ss7_route_create() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 ) Change subject: Don't create duplicate routes in osmo_ss7_route_create() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23890/2/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23890/2/src/osmo_ss7.c at 792 PS2, Line 792: return NULL; > It probably makes sense to return rt here? Ack -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I520415d4499a4017dfdbdfc3cd67522e1bbd1627 Gerrit-Change-Number: 23890 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 11:07:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 11:07:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 11:07:21 +0000 Subject: Change in libosmo-sccp[master]: Don't create duplicate routes in osmo_ss7_route_create() 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/libosmo-sccp/+/23890 to look at the new patch set (#3). Change subject: Don't create duplicate routes in osmo_ss7_route_create() ...................................................................... Don't create duplicate routes in osmo_ss7_route_create() Let's refuse to create exactly identical routes Change-Id: I520415d4499a4017dfdbdfc3cd67522e1bbd1627 Related: SYS#5422 --- M src/osmo_ss7.c 1 file changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/90/23890/3 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I520415d4499a4017dfdbdfc3cd67522e1bbd1627 Gerrit-Change-Number: 23890 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 Mon Apr 26 11:15:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 11:15:35 +0000 Subject: Change in libosmo-sccp[master]: Don't create duplicate routes in osmo_ss7_route_create() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 ) Change subject: Don't create duplicate routes in osmo_ss7_route_create() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I520415d4499a4017dfdbdfc3cd67522e1bbd1627 Gerrit-Change-Number: 23890 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 11:15: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 Apr 26 11:15:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 11:15:52 +0000 Subject: Change in libosmo-sccp[master]: Don't create duplicate routes in osmo_ss7_route_create() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 ) Change subject: Don't create duplicate routes in osmo_ss7_route_create() ...................................................................... Don't create duplicate routes in osmo_ss7_route_create() Let's refuse to create exactly identical routes Change-Id: I520415d4499a4017dfdbdfc3cd67522e1bbd1627 Related: SYS#5422 --- M src/osmo_ss7.c 1 file changed, 9 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 7021fa8..98dfc0c 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -783,6 +783,15 @@ return NULL; } + /* check for duplicates */ + rt = osmo_ss7_route_find_dpc_mask(rtbl, pc, mask); + if (rt && !strcmp(rt->cfg.linkset_name, linkset_name)) { + LOGSS7(rtbl->inst, LOGL_ERROR, "Refusing to create duplicate route: " + "pc=%u=%s mask=0x%x via linkset/AS '%s'\n", + pc, osmo_ss7_pointcode_print(rtbl->inst, pc), mask, linkset_name); + return rt; + } + rt = talloc_zero(rtbl, struct osmo_ss7_route); if (!rt) return NULL; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I520415d4499a4017dfdbdfc3cd67522e1bbd1627 Gerrit-Change-Number: 23890 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 Mon Apr 26 11:58:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 11:58:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_TC_egprs_pkt_chan_req_reject: Validate WaitIndication in ImmAssRej References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23904 ) Change subject: f_TC_egprs_pkt_chan_req_reject: Validate WaitIndication in ImmAssRej ...................................................................... f_TC_egprs_pkt_chan_req_reject: Validate WaitIndication in ImmAssRej Related: OS#3928 Change-Id: Id277f11b411d7b18e3a0445e0c76cbd107c6857d --- M pcu/PCU_Tests.ttcn 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/04/23904/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 5345bc7..4d96829 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3342,7 +3342,8 @@ private function f_TC_egprs_pkt_chan_req_reject(bitstring ra11, uint32_t fn, template IARRestOctets rest := ?, - PCUIF_BurstType bt := BURST_TYPE_1) + PCUIF_BurstType bt := BURST_TYPE_1, + template WaitIndication wi := ?) runs on RAW_PCU_Test_CT { var template ReqRefWaitInd tr_ref; var GsmRrMessage rr_msg; @@ -3361,7 +3362,7 @@ /* Make sure that Request Reference list contains at least one entry * with our TDMA frame number, and RA is set to 'reserved' value 127. */ - tr_ref := tr_ReqRefWaitInd(f_compute_ReqRef(127, fn)); + tr_ref := tr_ReqRefWaitInd(f_compute_ReqRef(127, fn), wi); if (not match(iar.payload, { *, tr_ref, * })) { setverdict(fail, "Request Reference list does not match"); f_shutdown(__BFILE__, __LINE__); @@ -3439,6 +3440,7 @@ var BIT11 ra11; info_ind := valueof(ts_PCUIF_INFO_default); + info_ind.t3142 := 3; /* Only the first TRX is enabled. */ f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (1 .. 7)); @@ -3467,7 +3469,7 @@ rest := tr_IARRestOctets({ *, tr_ExtRAOpt(substr(ra11, 6, 5)), * }); /* At this point, the IUT should run out of free USFs */ - f_TC_egprs_pkt_chan_req_reject(ra11, 1870, rest); + f_TC_egprs_pkt_chan_req_reject(ra11, 1870, rest, wi := info_ind.t3142); f_shutdown(__BFILE__, __LINE__, final := true); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id277f11b411d7b18e3a0445e0c76cbd107c6857d Gerrit-Change-Number: 23904 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 Apr 26 11:59:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 11:59:04 +0000 Subject: Change in osmo-pcu[master]: Make use of T3142 received from BTS References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23905 ) Change subject: Make use of T3142 received from BTS ...................................................................... Make use of T3142 received from BTS Related: OS#3928 Change-Id: I4e26f181db9693d3a267a879e2aebda12eab2a8c --- M src/bts.cpp M src/encoding.cpp M src/encoding.h M tests/types/TypesTest.cpp 4 files changed, 11 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/05/23905/1 diff --git a/src/bts.cpp b/src/bts.cpp index 3d935a1..9798402 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -76,7 +76,7 @@ } static struct osmo_tdef T_defs_bts[] = { - { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="timer (s)", .val=0 }, + { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (s)", .val=0, .min_val = 0, .max_val = 255 }, /* TS 44.018 10.5.2.43 */ { .T=3169, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of USF and TFI(s) after the MS uplink TBF assignment is invalid (s)", .val=0 }, { .T=3191, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of TFI(s) after sending (1) last RLC Data Block on TBF(s), or (2) PACKET TBF RELEASE for an MBMS radio bearer (s)", .val=0 }, { .T=3193, .default_val=100, .unit=OSMO_TDEF_MS, .desc="Reuse of TFI(s) after reception of final PACKET DOWNLINK ACK/NACK from MS for TBF (ms)", .val=0 }, @@ -890,7 +890,8 @@ if (rc != 0) { LOGP(DRLCMAC, LOGL_DEBUG, "Tx Immediate Assignment Reject on AGCH\n"); plen = Encoding::write_immediate_assignment_reject( - bv, rip->ra, Fn, rip->burst_type); + bv, rip->ra, Fn, rip->burst_type, + (uint8_t)osmo_tdef_get(bts->T_defs_bts, 3142, OSMO_TDEF_S, 0)); bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_REJ); } else { LOGP(DRLCMAC, LOGL_DEBUG, "Tx Immediate Assignment on AGCH: " diff --git a/src/encoding.cpp b/src/encoding.cpp index 8bc8d15..f91c638 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -361,10 +361,8 @@ * Immediate assignment reject, sent on the CCCH/AGCH * see GSM 44.018, 9.1.20 + 10.5.2.30 */ -int Encoding::write_immediate_assignment_reject( - bitvec *dest, uint16_t ra, - uint32_t ref_fn, - enum ph_burst_type burst_type) +int Encoding::write_immediate_assignment_reject(bitvec *dest, uint16_t ra, + uint32_t ref_fn, enum ph_burst_type burst_type, uint8_t t3142) { unsigned wp = 0; int plen; @@ -404,8 +402,8 @@ bitvec_write_field(dest, &wp, ref_fn % 51, 6); // T3 bitvec_write_field(dest, &wp, ref_fn % 26, 5); // T2 - /* TODO: Make it configurable */ - bitvec_write_field(dest, &wp, 20, 8); //Wait Indication 1 + /* 10.5.2.43 Wait Indication */ + bitvec_write_field(dest, &wp, t3142, 8); } plen = wp / 8; diff --git a/src/encoding.h b/src/encoding.h index 89d057c..e7046e2 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -59,7 +59,8 @@ static int write_immediate_assignment_reject( bitvec *dest, uint16_t ra, uint32_t ref_fn, - enum ph_burst_type burst_type + enum ph_burst_type burst_type, + uint8_t t3142 ); static void write_packet_uplink_assignment( diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index 643ce4c..480a9ac 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -877,7 +877,7 @@ bitvec_unhex(immediate_assignment_rej, DUMMY_VEC); plen = Encoding::write_immediate_assignment_reject( immediate_assignment_rej, 112, 100, - GSM_L1_BURST_TYPE_ACCESS_1); + GSM_L1_BURST_TYPE_ACCESS_1, 20); printf("assignment reject: %s\n", osmo_hexdump(immediate_assignment_rej->data, 22)); @@ -892,7 +892,7 @@ plen = Encoding::write_immediate_assignment_reject( immediate_assignment_rej, 112, 100, - GSM_L1_BURST_TYPE_ACCESS_0); + GSM_L1_BURST_TYPE_ACCESS_0, 20); printf("assignment reject: %s\n", osmo_hexdump(immediate_assignment_rej->data, 22)); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4e26f181db9693d3a267a879e2aebda12eab2a8c Gerrit-Change-Number: 23905 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 Apr 26 12:10:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 12:10:14 +0000 Subject: Change in osmo-pcu[master]: Make use of T3142 received from BTS In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-pcu/+/23905 ) Change subject: Make use of T3142 received from BTS ...................................................................... Make use of T3142 received from BTS Related: OS#3928 Change-Id: I4e26f181db9693d3a267a879e2aebda12eab2a8c --- M src/bts.cpp M src/encoding.cpp M src/encoding.h M tests/types/TypesTest.cpp 4 files changed, 11 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/05/23905/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4e26f181db9693d3a267a879e2aebda12eab2a8c Gerrit-Change-Number: 23905 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 12:15:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 12:15:42 +0000 Subject: Change in osmo-pcu[master]: Use negative numbers for non-spec osmo-specific timers References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23906 ) Change subject: Use negative numbers for non-spec osmo-specific timers ...................................................................... Use negative numbers for non-spec osmo-specific timers (values -1 and -2 cannot be used because they are already taken). Related: OS#3928 Change-Id: Ibcdb05ff5bb8efe6cb95cf94e2c8e418dc8deced --- M src/gprs_bssgp_pcu.c M src/gprs_pcu.c 2 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/06/23906/1 diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 4170a66..06e1814 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -975,7 +975,7 @@ if (!the_pcu->bssgp.bvc_sig_reset) { LOGP(DBSSGP, LOGL_INFO, "Sending reset on BVCI 0\n"); bssgp_tx_bvc_reset(the_pcu->bssgp.bctx, 0, BSSGP_CAUSE_OML_INTERV); - secs = osmo_tdef_get(the_pcu->T_defs, 2, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, -102, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } @@ -984,7 +984,7 @@ LOGP(DBSSGP, LOGL_INFO, "Sending reset on BVCI %d\n", the_pcu->bssgp.bctx->bvci); bssgp_tx_bvc_reset(the_pcu->bssgp.bctx, the_pcu->bssgp.bctx->bvci, BSSGP_CAUSE_OML_INTERV); - secs = osmo_tdef_get(the_pcu->T_defs, 2, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, -102, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } @@ -993,7 +993,7 @@ LOGP(DBSSGP, LOGL_INFO, "Sending unblock on BVCI %d\n", the_pcu->bssgp.bctx->bvci); bssgp_tx_bvc_unblock(the_pcu->bssgp.bctx); - secs = osmo_tdef_get(the_pcu->T_defs, 1, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, -101, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 52e9825..226b861 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -30,13 +30,13 @@ struct gprs_pcu *the_pcu; static struct osmo_tdef T_defs_pcu[] = { - { .T=1, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, - { .T=2, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, { .T=3190, .default_val=5, .unit=OSMO_TDEF_S, .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0}, { .T=PCU_TDEF_NEIGH_RESOLVE_TO, .default_val=1000, .unit=OSMO_TDEF_MS, .desc="[ARFCN+BSIC]->[RAC+CI] resolution timeout (ms)", .val=0 }, { .T=PCU_TDEF_SI_RESOLVE_TO, .default_val=1000, .unit=OSMO_TDEF_MS, .desc="RIM RAN-INFO response timeout (ms)", .val=0 }, { .T=PCU_TDEF_NEIGH_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[ARFCN+BSIC]->[RAC+CI] resolution cache entry storage timeout (s)", .val=0 }, { .T=PCU_TDEF_SI_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[RAC+CI]->[SI] resolution cache entry storage timeout (s)", .val=0 }, + { .T=-101, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, + { .T=-102, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timer (s)", .val=0 }, { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 }, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibcdb05ff5bb8efe6cb95cf94e2c8e418dc8deced Gerrit-Change-Number: 23906 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 Apr 26 14:59:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 14:59:07 +0000 Subject: Change in osmo-pcu[master]: ul_tbf: Clean up handle_tbf_reject() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23907 ) Change subject: ul_tbf: Clean up handle_tbf_reject() ...................................................................... ul_tbf: Clean up handle_tbf_reject() Document the function, make it look similar to usual TBF creation path tbf_alloc_ul()->tbf_alloc_ul_tbf->tbf::setup(), which it mimics with some differences. Get rid of unneeded stuff like creating MS and settings its TLLI (that's already done in only caller of the function). There's no need for calling update_ms() either. Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e --- M src/pdch.cpp M src/tbf_ul.cpp M src/tbf_ul.h M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 5 files changed, 21 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/07/23907/1 diff --git a/src/pdch.cpp b/src/pdch.cpp index 76ca1d0..5389763 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -685,8 +685,7 @@ ul_tbf = tbf_alloc_ul(bts(), ms, trx_no(), tlli); if (!ul_tbf) { - handle_tbf_reject(bts(), ms, tlli, - trx_no(), ts_no); + handle_tbf_reject(bts(), ms, trx_no(), ts_no); goto return_unref; } diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 7a4e3a3..29d79d6 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -162,30 +162,23 @@ return tbf; } +/* Create a temporary dummy TBF to Tx a ImmAssReject if allocating a new one during + * packet resource Request failed. This is similar as tbf_alloc_ul() but without + * calling tbf->setup() (in charge of TFI/USF allocation), and reusing resources + * from Packet Resource Request we received. */ 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) + GprsMs *ms, uint8_t trx_no, uint8_t ts) { struct gprs_rlcmac_ul_tbf *ul_tbf = NULL; struct gprs_rlcmac_trx *trx = &bts->trx[trx_no]; - - if (!ms) - ms = bts_alloc_ms(bts, 0, 0); - ms_set_tlli(ms, tlli); + OSMO_ASSERT(ms); ul_tbf = talloc(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); if (!ul_tbf) return ul_tbf; - talloc_set_destructor(ul_tbf, ul_tbf_dtor); new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms); - llist_add(tbf_bts_list((struct gprs_rlcmac_tbf *)ul_tbf), &bts->ul_tbfs); - bts_do_rate_ctr_inc(ul_tbf->bts, CTR_TBF_UL_ALLOCATED); - TBF_SET_ASS_ON(ul_tbf, GPRS_RLCMAC_FLAG_PACCH, false); - - ms_attach_tbf(ms, ul_tbf); - 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; ul_tbf->trx = trx; ul_tbf->m_ctrs = rate_ctr_group_alloc(ul_tbf, &tbf_ctrg_desc, next_tbf_ctr_group_id++); @@ -201,6 +194,12 @@ return NULL; } + ms_attach_tbf(ms, ul_tbf); + llist_add(tbf_bts_list((struct gprs_rlcmac_tbf *)ul_tbf), &bts->ul_tbfs); + bts_do_rate_ctr_inc(ul_tbf->bts, CTR_TBF_UL_ALLOCATED); + TBF_SET_ASS_ON(ul_tbf, GPRS_RLCMAC_FLAG_PACCH, false); + TBF_SET_ASS_STATE_UL(ul_tbf, GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ); + return ul_tbf; } diff --git a/src/tbf_ul.h b/src/tbf_ul.h index a2ad25e..53c7ad8 100644 --- a/src/tbf_ul.h +++ b/src/tbf_ul.h @@ -121,7 +121,7 @@ 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); + GprsMs *ms, uint8_t trx_no, uint8_t ts_no); #else /* ifdef __cplusplus */ struct gprs_rlcmac_ul_tbf; diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index c839ee0..cf8e083 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3160,7 +3160,8 @@ int ts_no = 7; uint8_t trx_no = 0; uint32_t tlli = 0xffeeddcc; - struct gprs_rlcmac_ul_tbf *ul_tbf = NULL; + struct gprs_rlcmac_ul_tbf *ul_tbf; + struct GprsMs *ms; fprintf(stderr, "=== start %s ===\n", __func__); @@ -3168,8 +3169,9 @@ int rc = 0; - ul_tbf = handle_tbf_reject(bts, NULL, tlli, - trx_no, ts_no); + ms = bts_alloc_ms(bts, 0, 0); + ms_set_tlli(ms, tlli); + ul_tbf = handle_tbf_reject(bts, ms, trx_no, ts_no); OSMO_ASSERT(ul_tbf != 0); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 4b38aec..e700fe2 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -7956,8 +7956,8 @@ [UL] algo A (suggested TRX: 0): failed to allocate a TS, no USF available TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=NULL EGPRS) Timeslot Allocation failed: trx = 0, single_slot = 0 MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) No PDCH resource +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=ASSIGN) TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ PDCH(bts=0,trx=0,ts=7) Expiring FN=82 but previous FN=2654231 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) @@ -7974,8 +7974,8 @@ === start test_packet_access_rej_prr_no_other_tbfs === Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddcc, not yet confirmed +MS(TLLI=0xffeeddcc, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL) changes state from NULL to ASSIGN -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) starting timer T0 [reject (PACCH)] with 0 sec. 2000 microsec, cur_fn=2654167 PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e Gerrit-Change-Number: 23907 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 Apr 26 15:10:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 15:10:40 +0000 Subject: Change in osmo-pcu[master]: ul_tbf: Clean up handle_tbf_reject() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/23907 to look at the new patch set (#2). Change subject: ul_tbf: Clean up handle_tbf_reject() ...................................................................... ul_tbf: Clean up handle_tbf_reject() Document the function, make it look similar to usual TBF creation path tbf_alloc_ul()->tbf_alloc_ul_tbf->tbf::setup(), which it mimics with some differences. Get rid of unneeded stuff like creating MS and settings its TLLI (that's already done in only caller of the function). There's no need for calling update_ms() either. Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e --- M src/pdch.cpp M src/tbf_ul.cpp M src/tbf_ul.h M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 5 files changed, 24 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/07/23907/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e Gerrit-Change-Number: 23907 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 Apr 26 15:19:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 15:19:15 +0000 Subject: Change in osmo-pcu[master]: ul_tbf: Clean up handle_tbf_reject() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/23907 to look at the new patch set (#3). Change subject: ul_tbf: Clean up handle_tbf_reject() ...................................................................... ul_tbf: Clean up handle_tbf_reject() Document the function, make it look similar to usual TBF creation path tbf_alloc_ul()->tbf_alloc_ul_tbf->tbf::setup(), which it mimics with some differences. Get rid of unneeded stuff like creating MS and settings its TLLI (that's already done in only caller of the function). There's no need for calling update_ms() either. Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e --- M src/pdch.cpp M src/tbf_ul.cpp M src/tbf_ul.h M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 5 files changed, 24 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/07/23907/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e Gerrit-Change-Number: 23907 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 15:54:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 15:54:00 +0000 Subject: Change in osmo-pcu[master]: Make WaitIndication T3172 configurable References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23908 ) Change subject: Make WaitIndication T3172 configurable ...................................................................... Make WaitIndication T3172 configurable Tbftest expectatins need to change because 5000/20 = 250 < 255, hence the message is now sent as units of 20ms instead of seconds. Related: OS#3928 Change-Id: I48b34b94b1a5dfb046a3a6cf8a0d944a7c9b6754 --- M src/bts.cpp M src/encoding.cpp M src/encoding.h M src/tbf.cpp M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 6 files changed, 18 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/08/23908/1 diff --git a/src/bts.cpp b/src/bts.cpp index 9065c4e..449e1ac 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -76,8 +76,9 @@ } static struct osmo_tdef T_defs_bts[] = { - { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (s)", .val=0, .min_val = 0, .max_val = 255 }, /* TS 44.018 10.5.2.43 */ + { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (CCCH) (s)", .val=0, .min_val = 0, .max_val = 255 }, /* TS 44.018 10.5.2.43, TS 44.060 7.1.3.2.1 (T3172) */ { .T=3169, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of USF and TFI(s) after the MS uplink TBF assignment is invalid (s)", .val=0 }, + { .T=3172, .default_val=5000,.unit=OSMO_TDEF_MS, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (PACCH) (s)", .val=0, .min_val = 0, .max_val = 255000 }, /* TS 44.060 7.1.3.2.1 */ { .T=3191, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of TFI(s) after sending (1) last RLC Data Block on TBF(s), or (2) PACKET TBF RELEASE for an MBMS radio bearer (s)", .val=0 }, { .T=3193, .default_val=100, .unit=OSMO_TDEF_MS, .desc="Reuse of TFI(s) after reception of final PACKET DOWNLINK ACK/NACK from MS for TBF (ms)", .val=0 }, { .T=3195, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of TFI(s) upon no response from the MS (radio failure or cell change) for TBF/MBMS radio bearer (s)", .val=0 }, diff --git a/src/encoding.cpp b/src/encoding.cpp index f91c638..2f58759 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -1711,7 +1711,7 @@ * 8.1.2.5 Establishment of uplink TBF */ void Encoding::write_packet_access_reject( - bitvec * dest, uint32_t tlli) + bitvec * dest, uint32_t tlli, unsigned long t3172_ms) { unsigned wp = 0; @@ -1725,9 +1725,15 @@ bitvec_write_field(dest, &wp, 0x0, 1); // TLLI / G-RNTI : bit (32) bitvec_write_field(dest, &wp, tlli, 32); // CONTENTION_RESOLUTION_TLLI bitvec_write_field(dest, &wp, 1, 1); // WAIT_INDICATION size in seconds - /* TODO: make it configurable */ - bitvec_write_field(dest, &wp, 5, 8); // WAIT_INDICATION value - bitvec_write_field(dest, &wp, 0, 1); // WAIT_INDICATION size in seconds + + /* WAIT_INDICATION, WAIT_INDICATION_SIZE */ + if (t3172_ms / 20 <= 255) { /* In units of 20 milliseconds */ + bitvec_write_field(dest, &wp, t3172_ms/20, 8); + bitvec_write_field(dest, &wp, 1, 1); + } else { /* value too big to fit in ms, do it in seconds */ + bitvec_write_field(dest, &wp, t3172_ms/1000, 8); + bitvec_write_field(dest, &wp, 0, 1); + } } void write_packet_neighbour_cell_data(RlcMacDownlink_t *block, diff --git a/src/encoding.h b/src/encoding.h index e7046e2..665bd77 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -78,8 +78,8 @@ static void encode_rbb(const char *show_rbb, uint8_t *rbb); - static void write_packet_access_reject( - bitvec * dest, uint32_t tlli); + static void write_packet_access_reject(bitvec * dest, uint32_t tlli, + unsigned long t3172_ms); static void write_packet_uplink_ack( bitvec * dest, struct gprs_rlcmac_ul_tbf *tbf, bool is_final, diff --git a/src/tbf.cpp b/src/tbf.cpp index 69c35f8..b51e7de 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -955,8 +955,8 @@ bitvec_unhex(packet_access_rej, DUMMY_VEC); - Encoding::write_packet_access_reject( - packet_access_rej, tlli()); + Encoding::write_packet_access_reject(packet_access_rej, tlli(), + osmo_tdef_get(bts->T_defs_bts, 3172, OSMO_TDEF_MS, -1)); bts_do_rate_ctr_inc(bts, CTR_PKT_ACCESS_REJ); diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index cf8e083..e0fd9cc 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3264,7 +3264,7 @@ the_pcu = gprs_pcu_alloc(tall_pcu_ctx); struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t tlli = 0xffeeddcc; - static uint8_t exp[] = { 0x40, 0x84, 0x7f, 0xf7, 0x6e, 0xe6, 0x41, 0x4b, + static uint8_t exp[] = { 0x40, 0x84, 0x7f, 0xf7, 0x6e, 0xe6, 0x7e, 0xab, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b }; diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index e700fe2..be7caf0 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -7615,7 +7615,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 -packet reject: 40 84 7f f7 6e e6 41 4b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +packet reject: 40 84 7f f7 6e e6 7e ab 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b === end test_packet_access_rej_epdan === === start test_packet_access_rej_prr === MS requests Uplink resource on CCCH/RACH: ra=0x70 (8 bit) Fn=2654167 qta=31 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I48b34b94b1a5dfb046a3a6cf8a0d944a7c9b6754 Gerrit-Change-Number: 23908 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 Apr 26 16:10:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 16:10:33 +0000 Subject: Change in osmo-pcu[master]: sched: Simplify else-if condition References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23909 ) Change subject: sched: Simplify else-if condition ...................................................................... sched: Simplify else-if condition The code path running into first call of "create_packet_access_reject()" is a superset condition of the second one, so the second one will never be hit. As a result first, this block: """ 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 = tbfs->ul_ass->create_packet_access_reject(); else msg = tbfs->ul_ass->create_ul_ass(fn, ts); """ Can be simplified into: """ else if (tbf == tbfs->ul_ass && tbf->direction == GPRS_RLCMAC_DL_TBF && !tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) msg = tbfs->ul_ass->create_ul_ass(fn, ts); """ Next, one can see that previous condition still forces !tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ) to be always true if we ever reach that code, so it can be dropped. Change-Id: I62e2255e28fc4f43fe0a31259ebf18ad00e7e357 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 2 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/09/23909/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index ab7e57e..85c9be8 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -175,12 +175,8 @@ */ 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 = tbfs->ul_ass->create_packet_access_reject(); - else - msg = tbfs->ul_ass->create_ul_ass(fn, ts); + else if (tbf == tbfs->ul_ass && tbf->direction == GPRS_RLCMAC_DL_TBF) + 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) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I62e2255e28fc4f43fe0a31259ebf18ad00e7e357 Gerrit-Change-Number: 23909 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 Apr 26 16:50:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 16:50:14 +0000 Subject: Change in osmo-pcu[master]: Clarify, document Assignment related timers References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23910 ) Change subject: Clarify, document Assignment related timers ...................................................................... Clarify, document Assignment related timers Related: OS#3928 Change-Id: Iad31a5c6f83cd78793adf05a6af782ceacae8b11 --- M src/bts.cpp M src/gprs_pcu.c M src/tbf.cpp M src/tbf_dl.cpp 4 files changed, 12 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/10/23910/1 diff --git a/src/bts.cpp b/src/bts.cpp index 449e1ac..bcf4d1b 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -602,8 +602,10 @@ LOGP(DRLCMAC, LOGL_DEBUG, "Got IMM.ASS confirm for TLLI=%08x\n", tlli); - if (dl_tbf->m_wait_confirm) + if (dl_tbf->m_wait_confirm) { + /* Transition to FLOW in gprs_rlcmac_tbf::handle_timeout() when timer expires */ T_START(dl_tbf, T0, -2002, "assignment (AGCH)", true); + } return 0; } diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 226b861..3875e09 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -37,8 +37,8 @@ { .T=PCU_TDEF_SI_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[RAC+CI]->[SI] resolution cache entry storage timeout (s)", .val=0 }, { .T=-101, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, { .T=-102, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, - { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, - { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timer (s)", .val=0 }, + { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Delay release of UL TBF after tx Packet Access Reject (PACCH) (ms)", .val=0 }, + { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timeout (s)", .val=0 }, { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 }, { .T=-2030, .default_val=60, .unit=OSMO_TDEF_S, .desc="Time to keep an idle MS object alive (s)", .val=0 }, /* slightly above T3314 (default 44s, 24.008, 11.2.2) */ { .T=-2031, .default_val=2000, .unit=OSMO_TDEF_MS, .desc="Time to keep an idle DL TBF alive (ms)", .val=0 }, diff --git a/src/tbf.cpp b/src/tbf.cpp index b51e7de..672146f 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -775,7 +775,7 @@ LOGPTBF(this, LOGL_DEBUG, "timer 0 expired. cur_fn=%d\n", current_fn); - /* assignment */ + /* PACCH assignment timeout (see timers X2000, X2001) */ if ((state_flags & (1 << GPRS_RLCMAC_FLAG_PACCH))) { if (state_is(GPRS_RLCMAC_ASSIGN)) { LOGPTBF(this, LOGL_NOTICE, "releasing due to PACCH assignment timeout.\n"); @@ -785,6 +785,7 @@ LOGPTBF(this, LOGL_ERROR, "Error: TBF is not in assign state\n"); } + /* Finish waiting after IMM.ASS confirm timer for CCCH assignment (see timer X2002) */ if ((state_flags & (1 << GPRS_RLCMAC_FLAG_CCCH))) { gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(this); dl_tbf->m_wait_confirm = 0; @@ -965,9 +966,11 @@ bitvec_free(packet_access_rej); ul_ass_state = GPRS_RLCMAC_UL_ASS_NONE; - /* Start Tmr only if it is UL TBF */ - if (direction == GPRS_RLCMAC_UL_TBF) + /* Start release only if it is UL TBF */ + if (direction == GPRS_RLCMAC_UL_TBF) { + /* tbf_free() called in gprs_rlcmac_tbf::handle_timeout */ T_START(this, T0, -2000, "reject (PACCH)", true); + } return msg; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index dd5d0f2..fc53c84 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -603,7 +603,7 @@ /* change state */ TBF_SET_ASS_ON(this, GPRS_RLCMAC_FLAG_PACCH, true); - /* start timer */ + /* Start timer, expiry in gprs_rlcmac_tbf::handle_timeout tbf_free()s the TBF */ T_START(this, T0, -2001, "assignment (PACCH)", true); } else { LOGPTBFDL(this, LOGL_DEBUG, "Send dowlink assignment on PCH, no TBF exist (IMSI=%s)\n", -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iad31a5c6f83cd78793adf05a6af782ceacae8b11 Gerrit-Change-Number: 23910 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 Apr 26 17:22:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 26 Apr 2021 17:22:57 +0000 Subject: Change in osmo-pcu[master]: doc/tbf.txt: Update and improve some information References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23911 ) Change subject: doc/tbf.txt: Update and improve some information ...................................................................... doc/tbf.txt: Update and improve some information Change-Id: I3cd643ef462637708c69895c62c488554a428571 --- M doc/tbf.txt 1 file changed, 24 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/11/23911/1 diff --git a/doc/tbf.txt b/doc/tbf.txt index 9d0db1a..cef15d5 100644 --- a/doc/tbf.txt +++ b/doc/tbf.txt @@ -117,13 +117,17 @@ Polling: In order to poll uplink control block from MS, a special poll state and - frame number is stored at TBF. The scheduler reads that value and will not - assign uplink resource for other TBFs at that frame number. + frame number is stored at PDCH UL Controller. The scheduler reads that value + and will not assign uplink resource for other TBFs at that frame number. - When there is no uplink transmission received on the block, a timeout is - indicated by layer 1 interface. There are two ways of checking timeout: - - The received frame is bad (BFI). - - The GSM indicates that the block should have been already received. + On uplink transmission Rx, it's the duty of each specific message handler to + release the expectancies previously stored in the PDCH UL Controller. After + the specific handler returns, the generic return path will expire all reserved + events up to the curent FN for that PDCH, eventually calling timeout functions + on TBFs and SBAs owning those reservations. + Hence, the layer 1 interface is expected to provide DATA.ind for each FN + block, containing data=0 if decoding failed, in order to keep the clock + up-to-date in upper layers. Because polling requires uplink response from MS, the polling must be performed at control TS. @@ -131,13 +135,21 @@ Data structures of TBFs and PDCHs: - There is a global structure for BTS. + There is a global structure for PCU (struct gprs_pcu the_pcu). - The BTS structure has 8 TRX structures. + A BTS is created and put into PCU's list for each PCUIF INFO_IND with a unique + bts_nr received. + + Each BTS structure has 8 TRX structures. Each TRX structure has 8 PDCH structures, one for each timeslot. - There are two linked lists of TBF instances: + Each BTS structure has a list of MS (struct GprsMs). + + Each MS can have 1 UL TBF and 1 DL TBF, and 1 TBF is always assigned to an + existing GprsMS structure. + + Each BTS also has two linked lists of TBF instances: - uplink TBFs - downlink TBFs @@ -158,4 +170,6 @@ On release of a TBF, the link to this PDCH is removed from all assigned PDCHs. The TBF is removed from the list of TBFs. The TBF is destroyed. - + MS structures are kept alive for a while once they become unused, in order to + have a cache of MS related information it would otherwise need to acquire + again once it interacts with the PCU again. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3cd643ef462637708c69895c62c488554a428571 Gerrit-Change-Number: 23911 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 Apr 26 19:42:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:42:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Take into account TbfStartingTime In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 ) Change subject: pcu: Take into account TbfStartingTime ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced Gerrit-Change-Number: 23877 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 26 Apr 2021 19:42:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 19:42:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:42:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Drop test TC_t3169 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23903 ) Change subject: pcu: Drop test TC_t3169 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I023fb406f1df6e67e16982cb11dc1fcb6fb9b544 Gerrit-Change-Number: 23903 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19:42: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 Apr 26 19:42:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:42:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_TC_egprs_pkt_chan_req_reject: Validate WaitIndication in ImmAssRej In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23904 ) Change subject: f_TC_egprs_pkt_chan_req_reject: Validate WaitIndication in ImmAssRej ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id277f11b411d7b18e3a0445e0c76cbd107c6857d Gerrit-Change-Number: 23904 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19: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 Mon Apr 26 19:43:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:43:16 +0000 Subject: Change in osmo-ci[master]: repo-install-test: get journal of failed services In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23902 ) Change subject: repo-install-test: get journal of failed services ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib454424d7867137246fadd73255d4dbff63731a6 Gerrit-Change-Number: 23902 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19: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 Mon Apr 26 19:43:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:43:17 +0000 Subject: Change in osmo-ci[master]: repo-install-test: get journal of failed services In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23902 ) Change subject: repo-install-test: get journal of failed services ...................................................................... repo-install-test: get journal of failed services Depending on the service, error messages are not shown with the systemctl command. Run journalctl for failed services so we get the reason for the failure in the jenkins log. Related: OS#5130 Change-Id: Ib454424d7867137246fadd73255d4dbff63731a6 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 1 insertion(+), 0 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 4a5f01a..91c8375 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -379,6 +379,7 @@ for service in $services_feed; do if ! systemctl --no-pager -l -n 200 status $service; then failed="$failed $service" + journalctl -u "$service" -n 200 fi done -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib454424d7867137246fadd73255d4dbff63731a6 Gerrit-Change-Number: 23902 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 19:44:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:44:07 +0000 Subject: Change in libosmo-sccp[master]: ipa: Move automatic route add/del from ASP to AS level In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 ) Change subject: ipa: Move automatic route add/del from ASP to AS level ...................................................................... Patch Set 2: Code-Review+2 too many other tasks pending right now. So I will merge this now (it clearly improves the situation) and we can later revisit if route shall be deleted in INACTIVE or DOWN state. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Idb602beae3e9bc19f7bd96355c02ec8dfd9c5d6c Gerrit-Change-Number: 23894 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 19:44: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 Apr 26 19:44:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:44:08 +0000 Subject: Change in libosmo-sccp[master]: ipa: Move automatic route add/del from ASP to AS level In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 ) Change subject: ipa: Move automatic route add/del from ASP to AS level ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Idb602beae3e9bc19f7bd96355c02ec8dfd9c5d6c Gerrit-Change-Number: 23894 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 26 Apr 2021 19:44: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 Apr 26 19:44:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:44:11 +0000 Subject: Change in libosmo-sccp[master]: ipa: Move automatic route add/del from ASP to AS level In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 ) Change subject: ipa: Move automatic route add/del from ASP to AS level ...................................................................... Removed Verified+1 by laforge -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Idb602beae3e9bc19f7bd96355c02ec8dfd9c5d6c Gerrit-Change-Number: 23894 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Mon Apr 26 19:44:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:44:22 +0000 Subject: Change in osmo-pcu[master]: pdch: rcv_resource_request: Improve robustness In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23870 ) Change subject: pdch: rcv_resource_request: Improve robustness ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I157e72160317340ee7742c78c62a25d3d98fc01e Gerrit-Change-Number: 23870 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19: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 Apr 26 19:45:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:45:06 +0000 Subject: Change in osmo-pcu[master]: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23871 ) Change subject: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibb471e727388512d42794d3faa26597e2545b852 Gerrit-Change-Number: 23871 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19:45: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 Apr 26 19:45:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:45:30 +0000 Subject: Change in osmo-pcu[master]: Stop abusing T3169 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23872 ) Change subject: Stop abusing T3169 ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2cec531e2633281b88f69ba065c0105580c81076 Gerrit-Change-Number: 23872 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19:45: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 Apr 26 19:45:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:45:52 +0000 Subject: Change in osmo-pcu[master]: Make use of T3142 received from BTS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23905 ) Change subject: Make use of T3142 received from BTS ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4e26f181db9693d3a267a879e2aebda12eab2a8c Gerrit-Change-Number: 23905 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19:45: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 Apr 26 19:46:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:46:07 +0000 Subject: Change in osmo-pcu[master]: Use negative numbers for non-spec osmo-specific timers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23906 ) Change subject: Use negative numbers for non-spec osmo-specific timers ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibcdb05ff5bb8efe6cb95cf94e2c8e418dc8deced Gerrit-Change-Number: 23906 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19:46: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 Apr 26 19:46:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:46:55 +0000 Subject: Change in osmo-pcu[master]: Make WaitIndication T3172 configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23908 ) Change subject: Make WaitIndication T3172 configurable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I48b34b94b1a5dfb046a3a6cf8a0d944a7c9b6754 Gerrit-Change-Number: 23908 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19:46: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 Apr 26 19:47:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:47:16 +0000 Subject: Change in osmo-pcu[master]: Clarify, document Assignment related timers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23910 ) Change subject: Clarify, document Assignment related timers ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iad31a5c6f83cd78793adf05a6af782ceacae8b11 Gerrit-Change-Number: 23910 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19:47:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Apr 26 19:47:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 26 Apr 2021 19:47:29 +0000 Subject: Change in osmo-pcu[master]: doc/tbf.txt: Update and improve some information In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23911 ) Change subject: doc/tbf.txt: Update and improve some information ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3cd643ef462637708c69895c62c488554a428571 Gerrit-Change-Number: 23911 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 26 Apr 2021 19:47: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 Apr 27 06:56:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 27 Apr 2021 06:56:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Take into account TbfStartingTime In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 ) Change subject: pcu: Take into account TbfStartingTime ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/GPRS_Components.ttcn File pcu/GPRS_Components.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/GPRS_Components.ttcn at 691 PS2, Line 691: i == 1 After reading the comment below, I wonder if this should be i > 0 https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/GPRS_Components.ttcn at 693 PS2, Line 693: avaialble (available) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/PCU_Tests.ttcn at 2768 PS2, Line 2768: ms.ul_tbf.start_time_fn this is passed as "cv" parameter here, is this correct? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced Gerrit-Change-Number: 23877 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 27 Apr 2021 06:56:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 06:56:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 27 Apr 2021 06:56:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Drop test TC_t3169 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23903 ) Change subject: pcu: Drop test TC_t3169 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I023fb406f1df6e67e16982cb11dc1fcb6fb9b544 Gerrit-Change-Number: 23903 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 27 Apr 2021 06: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 Tue Apr 27 08:23:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 08:23:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Take into account TbfStartingTime In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 ) Change subject: pcu: Take into account TbfStartingTime ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/GPRS_Components.ttcn File pcu/GPRS_Components.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/GPRS_Components.ttcn at 691 PS2, Line 691: i == 1 > After reading the comment below, I wonder if this should be i > 0 It doesn't matter, the imporant part is that we set fn=0 once after first round, so i==1 is actually better than i>0 (to avoid setting the variable on each loop pass). https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/GPRS_Components.ttcn at 693 PS2, Line 693: avaialble > (available) Ack https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/PCU_Tests.ttcn at 2768 PS2, Line 2768: ms.ul_tbf.start_time_fn > this is passed as "cv" parameter here, is this correct? indeed, that's a typo ;) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced Gerrit-Change-Number: 23877 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 27 Apr 2021 08:23:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 08:29:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 08:29:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Take into account TbfStartingTime In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, daniel, lynxis lazus, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 to look at the new patch set (#3). Change subject: pcu: Take into account TbfStartingTime ...................................................................... pcu: Take into account TbfStartingTime New versions of osmo-pcu will validate the Pkt Resource Request is sent on the correct FN, so we must send first UL block exactly when requested. Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 49 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/77/23877/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced Gerrit-Change-Number: 23877 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 08:41:02 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Tue, 27 Apr 2021 08:41:02 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 3: Hi Daniel, Just bumping this up again so it doesn't get dusty. Any feedback at all? Thanks, -Michael -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 3 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 08:41: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 Apr 27 08:55:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 27 Apr 2021 08:55:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Take into account TbfStartingTime In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 ) Change subject: pcu: Take into account TbfStartingTime ...................................................................... Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/GPRS_Components.ttcn File pcu/GPRS_Components.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877/2/pcu/GPRS_Components.ttcn at 691 PS2, Line 691: i == 1 > It doesn't matter, the imporant part is that we set fn=0 once after first round, so i==1 is actually [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced Gerrit-Change-Number: 23877 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 27 Apr 2021 08:55:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 09:30:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:30:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Take into account TbfStartingTime In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 ) Change subject: pcu: Take into account TbfStartingTime ...................................................................... pcu: Take into account TbfStartingTime New versions of osmo-pcu will validate the Pkt Resource Request is sent on the correct FN, so we must send first UL block exactly when requested. Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 49 insertions(+), 23 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 57cd837..d3ace4d 100644 --- a/pcu/GPRS_Components.ttcn +++ b/pcu/GPRS_Components.ttcn @@ -96,7 +96,8 @@ uint3_t usf[8], boolean is_egprs, uint14_t bsn, - CodingScheme tx_cs_mcs + CodingScheme tx_cs_mcs, + GsmFrameNumber start_time_fn }; type record GprsMS { @@ -160,7 +161,8 @@ usf := { USF_UNUSED, USF_UNUSED, USF_UNUSED, USF_UNUSED, USF_UNUSED, USF_UNUSED, USF_UNUSED, USF_UNUSED }, is_egprs := false, bsn := 0, - tx_cs_mcs := CS_1 + tx_cs_mcs := CS_1, + start_time_fn := 0 }; type component MS_BTS_IFACE_CT { @@ -233,6 +235,12 @@ return mp_base_arfcn + trx_nr; } +/* 3GPP TS 44.018 10.5.2.38 Starting Time */ +function f_tbf_starting_time_2_fn_mod_42432(TbfStartingTime st) +runs on MS_BTS_IFACE_CT return GsmFrameNumber { + return 51 * ((st.t3 - st.t2) mod 26) + st.t3 + 51 * 26 * st.t1; +} + function f_ultbf_new_from_rr_imm_ass(in GsmRrMessage rr_imm_ass) runs on MS_BTS_IFACE_CT return UlTbf { var UlTbf ul_tbf := valueof(t_UlTbf_def); @@ -254,8 +262,11 @@ ul_tbf.tfi := ul_tbf.ass.ccch.dynamic.tfi_assignment; ul_tbf.tx_cs_mcs := f_rlcmac_block_ChCodingCommand2cs_mcs(ul_tbf.ass.ccch.dynamic.ch_coding_cmd); ul_tbf.usf[tn_allocated] := ul_tbf.ass.ccch.dynamic.usf; + if (ul_tbf.ass.ccch.dynamic.tbf_starting_time_present == '1'B) { + ul_tbf.start_time_fn := f_tbf_starting_time_2_fn_mod_42432(ul_tbf.ass.ccch.dynamic.tbf_starting_time); + } } else if (match(ul_tbf.ass.ccch, tr_PacketUlSglAssign)) { - /* Nothing to do here yet */ + ul_tbf.start_time_fn := f_tbf_starting_time_2_fn_mod_42432(ul_tbf.ass.ccch.single.tbf_starting_time); } } else if (match(rr_imm_ass, tr_IMM_TBF_ASS(dl := false, rest := tr_IaRestOctets_EGPRSULAss(?)))) { ul_tbf.ass.ccch_egprs := rr_imm_ass.payload.imm_ass.rest_octets.lh.egprs_ul; @@ -265,7 +276,11 @@ ul_tbf.tfi := ul_tbf.ass.ccch_egprs.dynamic.tfi_assignment; ul_tbf.tx_cs_mcs := f_rlcmac_block_EgprsChCodingCommand2cs_mcs(ul_tbf.ass.ccch_egprs.dynamic.egprs_ch_coding_cmd); ul_tbf.usf[tn_allocated] := ul_tbf.ass.ccch_egprs.dynamic.usf; + if (ul_tbf.ass.ccch_egprs.dynamic.tbf_starting_time_present == '1'B) { + ul_tbf.start_time_fn := f_tbf_starting_time_2_fn_mod_42432(ul_tbf.ass.ccch_egprs.dynamic.tbf_starting_time); + } } else if (match(ul_tbf.ass.ccch_egprs, tr_EgprsUlAssMultiblock)) { + ul_tbf.start_time_fn := f_tbf_starting_time_2_fn_mod_42432(ul_tbf.ass.ccch_egprs.multiblock.tbf_starting_time); /* Nothing to do here yet */ } } else { @@ -661,7 +676,7 @@ /* Send random payload for last "num_blocks" blocks in Ul TBF (ending with CV=0). */ function f_ms_tx_ul_data_block_multi(inout GprsMS ms, integer num_blocks := 1, boolean with_tlli := false, - template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum) + uint32_t fn := 0, template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum) runs on MS_BTS_IFACE_CT return octetstring { var octetstring total_payload := ''O; var uint32_t payload_fill_len := f_ultbf_payload_fill_length(ms.ul_tbf, with_tlli, 0); @@ -673,7 +688,12 @@ if (cv > g_bs_cv_max) { cv := 15; } - f_ms_tx_ul_data_block(ms, payload, cv := cv, with_tlli := with_tlli, nr := nr); + if (i == 1) { + /* We use FN on i=0 to jump to wanted FN time, then simply submit on next + * available frame (fn=0) */ + fn := 0; + } + f_ms_tx_ul_data_block(ms, payload, cv := cv, with_tlli := with_tlli, fn := fn, nr := nr); total_payload := total_payload & payload; } return total_payload; diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index a466732..52d6271 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -316,7 +316,7 @@ var RlcmacDlBlock dl_block; var uint32_t poll_fn; - f_ms_tx_ul_data_block(g_ms[i], dummy, with_tlli := true, nr := nr); + f_ms_tx_ul_data_block(g_ms[i], dummy, with_tlli := true, fn := g_ms[i].ul_tbf.start_time_fn, nr := nr); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, poll_fn, nr := nr); } } @@ -354,7 +354,7 @@ pkt_res_req := ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, omit); } - f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(valueof(pkt_res_req)), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(valueof(pkt_res_req)), ms.ul_tbf.start_time_fn, nr := f_ms_tx_TsTrxBtsNum(ms)); /* Store 1st UlTBF context before receiving next one, will * overwrite the TS allocation on MS with info from new UL TBF: */ @@ -420,7 +420,7 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -765,7 +765,7 @@ contention resoultion) and make sure it is ACKED fine. */ /* 16 bytes fills the llc block (because TLLI takes 4 bytes) */ /* Set CV = 15 to signal there's still more than BS_CV_MAX blocks to be sent */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true) + f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true, fn := ms.ul_tbf.start_time_fn) f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -849,7 +849,7 @@ contention resoultion) and make sure it is ACKED fine. */ /* 16 bytes fills the llc block (because TLLI takes 4 bytes) */ /* Set CV = 15 to signal there's still more than BS_CV_MAX blocks to be sent */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true) + f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true, fn := ms.ul_tbf.start_time_fn) f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -921,7 +921,7 @@ contention resoultion) and make sure it is ACKED fine. */ /* 16 bytes fills the llc block (because TLLI takes 4 bytes) */ /* Set CV = 15 to signal there's still more than BS_CV_MAX blocks to be sent */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true) + f_ms_tx_ul_data_block(ms, f_rnd_octstring(16), cv := 15, with_tlli := true, fn := ms.ul_tbf.start_time_fn) f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -1299,7 +1299,7 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(10), cv := 1, with_tlli := true) + f_ms_tx_ul_data_block(ms, f_rnd_octstring(10), cv := 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn) f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn); /* UL block should NOT be received in SGSN, since we didn't get CV=0 */ @@ -1905,7 +1905,7 @@ contention resoultion) and make sure it is ACKED fine. */ total_payload := f_rnd_octstring(f_ultbf_payload_fill_length(ms.ul_tbf, true)); /* Set CV = 15 to signal there's still more than BS_CV_MAX blocks to be sent */ - f_ms_tx_ul_data_block(ms, total_payload, cv := 15, with_tlli := true) + f_ms_tx_ul_data_block(ms, total_payload, cv := 15, with_tlli := true, fn := ms.ul_tbf.start_time_fn) f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -1966,7 +1966,7 @@ blocks := blocks, tlli := ms.tlli); f_ultbf_inc_bsn(ms.ul_tbf); - f_ms_tx_ul_block(ms, ul_data); + f_ms_tx_ul_block(ms, ul_data, ms.ul_tbf.start_time_fn); /* ACK and check it was received fine */ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); @@ -2122,7 +2122,7 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -2349,7 +2349,7 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine. */ payload := f_rnd_octstring(f_ultbf_payload_fill_length(ms.ul_tbf, true)); /* 16 bytes fills the llc block (because TLLI takes 4 bytes) */ - f_ms_tx_ul_data_block(ms, payload, cv := 15, with_tlli := true); + f_ms_tx_ul_data_block(ms, payload, cv := 15, with_tlli := true, fn := ms.ul_tbf.start_time_fn); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ @@ -2580,7 +2580,7 @@ * RLCMAC block being sent. */ ul_data.data.mac_hdr.e := true; f_ultbf_inc_bsn(ms.ul_tbf); - f_ms_tx_ul_block(ms, ul_data); + f_ms_tx_ul_block(ms, ul_data, ms.ul_tbf.start_time_fn); /* UL RlcDataBlock(dataA finished, dataB starts) [BSN=1, CV=2] */ ul_data := t_RLCMAC_UL_DATA_TLLI(cs := CS_1, @@ -2765,7 +2765,8 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block(ms, data, with_tlli := true, nr := f_ms_tx_TsTrxBtsNum(ms)); + f_ms_tx_ul_data_block(ms, data, with_tlli := true, fn := ms.ul_tbf.start_time_fn, + nr := f_ms_tx_TsTrxBtsNum(ms)); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, poll_fn, nr := f_ms_tx_TsTrxBtsNum(ms)); @@ -2908,7 +2909,7 @@ /* Send one UL block (with TLLI since we are in One-Phase Access contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn); /* UL block should be received in SGSN */ BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id)); @@ -3128,7 +3129,7 @@ f_ms_establish_ul_tbf(ms); /* Fake GMM GPRS Attach or similar, PCU doesn't care about upper layers here */ - f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -3187,7 +3188,7 @@ f_ms_establish_ul_tbf(ms); /* Fake GMM GPRS Attach or similar, PCU doesn't care about upper layers here */ - f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn); f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); @@ -3676,11 +3677,16 @@ /* Initialize the PCU interface abstraction */ f_init_raw(testcasename(), info_ind); + /* Single block (two phase) packet access */ + var uint16_t ra := bit2int(chan_req_sb); + f_ms_use_ra(ms, ra, ra_is_11bit := 0); + /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); /* Send Packet Resource Request, so the network will allocate an Uplink resource */ - f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, omit))); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, omit)), + fn := ms.ul_tbf.start_time_fn); /* Expect an RLC/MAC block with Packet Uplink Assignment on PACCH (see 11.2.29) */ f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_UL_PACKET_ASS); @@ -3729,7 +3735,7 @@ f_ms_establish_ul_tbf(ms); /* Send an Uplink block, so this TBF becomes "active" */ - f_ms_tx_ul_data_block(ms, data, with_tlli := true); + f_ms_tx_ul_data_block(ms, data, with_tlli := true, fn := ms.ul_tbf.start_time_fn); /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, poll_fn); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced Gerrit-Change-Number: 23877 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 09:31:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:31:42 +0000 Subject: Change in osmo-pcu[master]: pdch: rcv_resource_request: Improve robustness In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23870 ) Change subject: pdch: rcv_resource_request: Improve robustness ...................................................................... pdch: rcv_resource_request: Improve robustness Use recently added PDCH UL Controller to verify expectancies. Test test_packet_access_rej_prr is rewritten since it didn't make sense as it was before, since it relied on osmo-pcu not checking stuff properly to trigger the reject. The RACH requests are changed to allocate 8 SBAs (maximum of 7 concurrent USFs). Allocating the SBA doesn't reserve a USF, that happens at PKT RESOURCE REQUEST, hence we end up exhausting resources there and triggering the REJECT at that point. Previous version of the patch allocated TBFs directly through RACH req, and then submitted an extra PKT RESOURCE REQUEST which PCU didn't expect to trigger the reject. Change-Id: I157e72160317340ee7742c78c62a25d3d98fc01e --- M src/pdch.cpp M src/pdch_ul_controller.h M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 4 files changed, 390 insertions(+), 178 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/pdch.cpp b/src/pdch.cpp index 0d9ebf2..baac0f7 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -594,37 +594,76 @@ struct gprs_rlcmac_sba *sba; if (request->ID.UnionType) { - struct gprs_rlcmac_ul_tbf *ul_tbf; + struct gprs_rlcmac_ul_tbf *ul_tbf = NULL; + struct pdch_ulc_node *item; uint32_t tlli = request->ID.u.TLLI; - bool ms_found = true; GprsMs *ms = bts_ms_by_tlli(bts(), tlli, GSM_RESERVED_TMSI); if (!ms) { - ms_found = false; ms = bts_alloc_ms(bts(), 0, 0); /* ms class updated later */ ms_set_tlli(ms, tlli); } - ul_tbf = ms_ul_tbf(ms); /* hence ul_tbf may be NULL */ /* Keep the ms, even if it gets idle temporarily */ ms_ref(ms); - LOGPDCH(this, DRLCMAC, LOGL_DEBUG, "MS requests UL TBF " - "in packet resource request of single " - "block, so we provide one:\n"); - sba = pdch_ulc_get_sba(this->ulc, fn); - if (sba) { + if (!(item = pdch_ulc_get_node(ulc, fn))) { + LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "FN=%u PKT RESOURCE REQ: " + "UL block not reserved\n", fn); + goto return_unref; + } + + switch (item->type) { + case PDCH_ULC_NODE_SBA: + sba = item->sba.sba; + LOGPDCH(this, DRLCMAC, LOGL_DEBUG, "FN=%u PKT RESOURCE REQ: " + "MS requests UL TBF throguh SBA\n", fn); ms_set_ta(ms, sba->ta); sba_free(sba); - } else if (!ul_tbf || !ul_tbf->state_is(GPRS_RLCMAC_FINISHED)) { - LOGPTBFUL(ul_tbf, LOGL_NOTICE, - "MS requests UL TBF in PACKET RESOURCE REQ of " - "single block, but there is no resource request " - "scheduled!\n"); + break; + case PDCH_ULC_NODE_TBF_POLL: + if (item->tbf_poll.poll_tbf->direction != GPRS_RLCMAC_UL_TBF) { + LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "FN=%u PKT RESOURCE REQ: " + "Unexpectedly received for DL TBF %s\n", fn, + tbf_name(item->tbf_poll.poll_tbf)); + /* let common path expire the poll */ + goto return_unref; + } + ul_tbf = (struct gprs_rlcmac_ul_tbf *)item->tbf_poll.poll_tbf; + if (item->tbf_poll.reason != PDCH_ULC_POLL_UL_ACK) { + LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "FN=%u PKT RESOURCE REQ: " + "Unexpectedly received, waiting for poll reason %d\n", + fn, item->tbf_poll.reason); + /* let common path expire the poll */ + goto return_unref; + } + if (ul_tbf != ms_ul_tbf(ms)) { + LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "FN=%u PKT RESOURCE REQ: " + "Unexpected TLLI 0x%08x received vs exp 0x%08x\n", + fn, tlli, ul_tbf->tlli()); + /* let common path expire the poll */ + goto return_unref; + } + /* 3GPP TS 44.060 $ 9.3.3.3 */ + LOGPTBFUL(ul_tbf, LOGL_DEBUG, "FN=%u PKT RESOURCE REQ: " + "MS requests reuse of finished UL TBF in RRBP " + "block of final UL ACK/NACK\n", fn); + ul_tbf->n_reset(N3103); + pdch_ulc_release_node(ulc, item); + break; + case PDCH_ULC_NODE_TBF_USF: + /* Is it actually valid for an MS to send a PKT Res Req during USF? */ + ul_tbf = item->tbf_usf.ul_tbf; + LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "FN=%u PKT RESOURCE REQ: " + "Unexpectedly received, waiting USF of %s\n", + fn, tbf_name(item->tbf_usf.ul_tbf)); + pdch_ulc_release_node(ulc, item); + break; + default: + OSMO_ASSERT(0); } - /* else: Resource Request can be received even if not scheduled - by the network since it's used by MS to re-establish a new UL - TBF when last one has finished. */ + + /* here ul_tbf may be NULL in SBA case (no previous TBF) */ if (request->Exist_MS_Radio_Access_capability2) { uint8_t ms_class, egprs_ms_class; @@ -637,7 +676,7 @@ } /* Get rid of previous finished UL TBF before providing a new one */ - if (ms_found && ul_tbf) { + if (ul_tbf) { if (!ul_tbf->state_is(GPRS_RLCMAC_FINISHED)) LOGPTBFUL(ul_tbf, LOGL_NOTICE, "Got PACKET RESOURCE REQ while TBF not finished, killing pending UL TBF\n"); @@ -660,10 +699,8 @@ TBF_SET_ASS_STATE_UL(ul_tbf, GPRS_RLCMAC_UL_ASS_SEND_ASS); /* get measurements */ - if (ul_tbf->ms()) { - get_meas(meas, request); - ms_update_l1_meas(ul_tbf->ms(), meas); - } + get_meas(meas, request); + ms_update_l1_meas(ul_tbf->ms(), meas); return_unref: ms_unref(ms); return; diff --git a/src/pdch_ul_controller.h b/src/pdch_ul_controller.h index ff60d2f..776f5ba 100644 --- a/src/pdch_ul_controller.h +++ b/src/pdch_ul_controller.h @@ -55,7 +55,7 @@ enum pdch_ulc_tbf_poll_reason { PDCH_ULC_POLL_UL_ASS, /* Expect CTRL ACK for UL ASS we transmit */ PDCH_ULC_POLL_DL_ASS, /* Expect CTRL ACK for DL ASS we transmit */ - PDCH_ULC_POLL_UL_ACK, /* Expect CTRL ACK for UL ACK/NACK we transmit */ + PDCH_ULC_POLL_UL_ACK, /* Expect CTRL ACK (or PKT RES REQ on final UL ACK/NACK) for UL ACK/NACK we transmit */ PDCH_ULC_POLL_DL_ACK, /* Expect DL ACK/NACK requested by RRBP */ PDCH_ULC_POLL_CELL_CHG_CONTINUE, /* Expect CTRL ACK for Pkt cell Change Continue we transmit */ }; diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 5ce2611..c839ee0 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3214,44 +3214,44 @@ /* * Trigger rach till resources(USF) exhaust */ - rc = bts_handle_rach(bts, 0x78, rach_fn, qta); - rc = bts_handle_rach(bts, 0x79, rach_fn, qta); - rc = bts_handle_rach(bts, 0x7a, rach_fn, qta); - rc = bts_handle_rach(bts, 0x7b, rach_fn, qta); - rc = bts_handle_rach(bts, 0x7c, rach_fn, qta); - rc = bts_handle_rach(bts, 0x7d, rach_fn, qta); - rc = bts_handle_rach(bts, 0x7e, rach_fn, qta); - - /* fake a resource request */ - ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; - presreq = &ulreq.u.Packet_Resource_Request; - presreq->PayloadType = GPRS_RLCMAC_CONTROL_BLOCK; - presreq->ID.UnionType = 1; /* != 0 */ - presreq->ID.u.TLLI = tlli; - presreq->Exist_MS_Radio_Access_capability2 = 1; - pmsradiocap = &presreq->MS_Radio_Access_capability2; - pmsradiocap->Count_MS_RA_capability_value = 1; - pmsradiocap->MS_RA_capability_value[0].u.Content. - Exist_Multislot_capability = 1; - pmultislotcap = &pmsradiocap->MS_RA_capability_value[0]. - u.Content.Multislot_capability; - - pmultislotcap->Exist_GPRS_multislot_class = 1; - pmultislotcap->GPRS_multislot_class = ms_class; - if (egprs_ms_class) { - pmultislotcap->Exist_EGPRS_multislot_class = 1; - pmultislotcap->EGPRS_multislot_class = egprs_ms_class; + int i; + for (i = 0; i < 8; i++) { + rc = bts_handle_rach(bts, 0x70 + i, rach_fn, qta); } - send_ul_mac_block(bts, trx_no, ts_no, &ulreq, sba_fn); + sba_fn = 52; + for (i = 0; i < 8; i++) { + /* fake a resource request */ + ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; + presreq = &ulreq.u.Packet_Resource_Request; + presreq->PayloadType = GPRS_RLCMAC_CONTROL_BLOCK; + presreq->ID.UnionType = 1; /* != 0 */ + presreq->ID.u.TLLI = tlli + i; + presreq->Exist_MS_Radio_Access_capability2 = 1; + pmsradiocap = &presreq->MS_Radio_Access_capability2; + pmsradiocap->Count_MS_RA_capability_value = 1; + pmsradiocap->MS_RA_capability_value[0].u.Content. + Exist_Multislot_capability = 1; + pmultislotcap = &pmsradiocap->MS_RA_capability_value[0]. + u.Content.Multislot_capability; - /* trigger packet access reject */ - uint8_t bn = fn2bn(fn); + pmultislotcap->Exist_GPRS_multislot_class = 1; + pmultislotcap->GPRS_multislot_class = ms_class; + if (egprs_ms_class) { + pmultislotcap->Exist_EGPRS_multislot_class = 1; + pmultislotcap->EGPRS_multislot_class = egprs_ms_class; + } - rc = gprs_rlcmac_rcv_rts_block(bts, - trx_no, ts_no, fn, bn); + send_ul_mac_block(bts, trx_no, ts_no, &ulreq, sba_fn); + sba_fn = fn_next_block(sba_fn); - OSMO_ASSERT(rc == 0); + /* trigger packet access reject */ + uint8_t bn = fn2bn(fn); + + rc = gprs_rlcmac_rcv_rts_block(bts, + trx_no, ts_no, fn, bn); + OSMO_ASSERT(rc == 0); + } TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index b190c9a..450edc0 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1517,7 +1517,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -1601,7 +1601,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -1746,7 +1746,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654348 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf5667788, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654348 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf5667788, TA 220 -> 7 Modifying MS object, TLLI = 0xf5667788, MS class 0 -> 1 MS(TLLI=0xf5667788, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -1825,7 +1825,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -1914,7 +1914,7 @@ Detected FN jump! 2654275 -> 2654327 PDCH(bts=0,trx=0,ts=7) FN=2654327 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654327 ------------------------- RX : Uplink Control Block ------------------------- -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654327 PKT RESOURCE REQ: MS requests UL TBF throguh SBA MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, DL) ********** UL-TBF starts here ********** MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, DL) Allocating UL TBF [UL] algo A (suggested TRX: 0): Alloc start @@ -1971,7 +1971,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -2118,7 +2118,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) ********** UL-TBF starts here ********** @@ -3243,7 +3243,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 Modifying MS object, TLLI = 0xf1223344, EGPRS MS class 0 -> 1 @@ -3335,7 +3335,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 Modifying MS object, TLLI = 0xf1223344, EGPRS MS class 0 -> 1 @@ -5930,7 +5930,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 Modifying MS object, TLLI = 0xf1223344, EGPRS MS class 0 -> 1 @@ -6095,7 +6095,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 Modifying MS object, TLLI = 0xf1223344, EGPRS MS class 0 -> 1 @@ -6420,7 +6420,7 @@ PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xf1223344, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: +PDCH(bts=0,trx=0,ts=7) FN=2654270 PKT RESOURCE REQ: MS requests UL TBF throguh SBA Modifying MS object, TLLI = 0xf1223344, TA 220 -> 7 Modifying MS object, TLLI = 0xf1223344, MS class 0 -> 1 Modifying MS object, TLLI = 0xf1223344, EGPRS MS class 0 -> 1 @@ -7845,11 +7845,51 @@ packet reject: 40 84 7f f7 6e e6 41 4b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b === end test_packet_access_rej_epdan === === start test_packet_access_rej_prr === -MS requests Uplink resource on CCCH/RACH: ra=0x78 (8 bit) Fn=2654167 qta=31 +MS requests Uplink resource on CCCH/RACH: ra=0x70 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=52 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x71 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=56 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x72 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=60 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=65 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x74 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=69 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x75 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=73 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x76 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=78 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +MS requests Uplink resource on CCCH/RACH: ra=0x77 (8 bit) Fn=2654167 qta=31 +MS requests single block allocation +Allocated a single block at SBFn=82 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Detected FN jump! 2654167 -> 52 +PDCH(bts=0,trx=0,ts=7) FN=52 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=52 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddcc, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=52 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddcc, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddcc, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddcc, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7858,20 +7898,35 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=0 USF=0 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 -MS requests Uplink resource on CCCH/RACH: ra=0x79 (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS), 1 TBFs, USFs = 01, TFIs = 00000001. +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=52 +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=56 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=56 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddcd, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=56 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddcd, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddcd, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddcd, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7880,20 +7935,40 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=1 USF=1 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL), 2 TBFs, USFs = 03, TFIs = 00000003. -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=1 USF=1 -MS requests Uplink resource on CCCH/RACH: ra=0x7a (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS), 2 TBFs, USFs = 03, TFIs = 00000003. +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=56 +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=56 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 56) +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=60 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=60 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddce, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=60 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddce, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddce, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddce, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7902,20 +7977,40 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=2 USF=2 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL), 3 TBFs, USFs = 07, TFIs = 00000007. -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=2 USF=2 -MS requests Uplink resource on CCCH/RACH: ra=0x7b (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS), 3 TBFs, USFs = 07, TFIs = 00000007. +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=60 +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=60 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 60) +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=65 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=65 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddcf, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=65 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddcf, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddcf, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddcf, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7924,20 +8019,40 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=3 USF=3 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL), 4 TBFs, USFs = 0f, TFIs = 0000000f. -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=3 USF=3 -MS requests Uplink resource on CCCH/RACH: ra=0x7c (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS), 4 TBFs, USFs = 0f, TFIs = 0000000f. +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=65 +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=65 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 65) +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=69 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=69 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddd0, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=69 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddd0, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddd0, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddd0, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7946,20 +8061,40 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=4 USF=4 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL), 5 TBFs, USFs = 1f, TFIs = 0000001f. -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=4 USF=4 -MS requests Uplink resource on CCCH/RACH: ra=0x7d (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS), 5 TBFs, USFs = 1f, TFIs = 0000001f. +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=69 +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=69 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 69) +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=73 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=73 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddd1, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=73 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddd1, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddd1, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddd1, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7968,20 +8103,40 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=5 USF=5 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL), 6 TBFs, USFs = 3f, TFIs = 0000003f. -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=5 USF=5 -MS requests Uplink resource on CCCH/RACH: ra=0x7e (8 bit) Fn=2654167 qta=31 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS), 6 TBFs, USFs = 3f, TFIs = 0000003f. +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=73 +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=73 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 73) +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=78 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=78 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) ********** UL-TBF starts here ********** -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Allocating UL TBF -[UL] algo A (suggested TRX: -1): Alloc start +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddd2, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=78 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddd2, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddd2, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddd2, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11,) Allocating UL TBF +[UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -7990,27 +8145,39 @@ - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled [UL] Assign uplink TS=7 TFI=6 USF=6 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL), 7 TBFs, USFs = 7f, TFIs = 0000007f. -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 7 -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 -MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) -Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 -Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=6 USF=6 -Detected FN jump! 2654167 -> 2654270 -PDCH(bts=0,trx=0,ts=7) FN=2654270 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ -PDCH(bts=0,trx=0,ts=7) FN=2654270 ------------------------- RX : Uplink Control Block ------------------------- +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS), 7 TBFs, USFs = 7f, TFIs = 0000007f. +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) Setting Control TS 7 +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 +MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) +ws(64) +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=78 +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS +MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 +PDCH(bts=0,trx=0,ts=7) Expiring FN=78 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 78) +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) +PDCH(bts=0,trx=0,ts=7) FN=82 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=82 ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0xffffffff -Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddcc, not yet confirmed -PDCH(bts=0,trx=0,ts=7) MS requests UL TBF in packet resource request of single block, so we provide one: -(no TBF) MS requests UL TBF in PACKET RESOURCE REQ of single block, but there is no resource request scheduled! -Modifying MS object, TLLI = 0xffeeddcc, MS class 0 -> 11 -Modifying MS object, TLLI = 0xffeeddcc, EGPRS MS class 0 -> 11 -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 11/11,) Enabled EGPRS, mode EGPRS -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 11/11,) ********** UL-TBF starts here ********** -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 11/11,) Allocating UL TBF +Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddd3, not yet confirmed +PDCH(bts=0,trx=0,ts=7) FN=82 PKT RESOURCE REQ: MS requests UL TBF throguh SBA +Modifying MS object, TLLI = 0xffeeddd3, TA 220 -> 7 +Modifying MS object, TLLI = 0xffeeddd3, MS class 0 -> 11 +Modifying MS object, TLLI = 0xffeeddd3, EGPRS MS class 0 -> 11 +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) Enabled EGPRS, mode EGPRS +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) ********** UL-TBF starts here ********** +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) Allocating UL TBF [UL] algo A (suggested TRX: 0): Alloc start - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -8021,14 +8188,22 @@ - Skipping TS 6, because not enabled - Skipping TS 7, because no USF available [UL] algo A (suggested TRX: 0): failed to allocate a TS, no USF available -TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) Timeslot Allocation failed: trx = 0, single_slot = 0 -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 11/11,) No PDCH resource -TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL) changes state from NULL to ASSIGN -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 11/11,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) -TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ -Received RTS for PDCH: TRX=0 TS=7 FN=2654218 block_nr=8 scheduling USF=0 for required uplink resource of UL TFI=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) starting timer T0 [reject (PACCH)] with 0 sec. 2000 microsec, cur_fn=2654270 -PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) +TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=NULL EGPRS) Timeslot Allocation failed: trx = 0, single_slot = 0 +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) No PDCH resource +TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=NULL) changes state from NULL to ASSIGN +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=ASSIGN) +TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ +PDCH(bts=0,trx=0,ts=7) Expiring FN=82 but previous FN=2654231 is still reserved! +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) poll timeout for FN=2654231, TS=7 (curr FN 82) +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ASSIGNMENT: |Assignment was on PACCH|No uplink data received yet| +TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654218 + 13 = 2654231 +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) start Packet Uplink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Uplink Assignment ------------------------- +TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) Scheduled UL Assignment polling on PACCH (FN=2654231, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) === end test_packet_access_rej_prr === === start test_packet_access_rej_prr_no_other_tbfs === Creating MS object, TLLI = 0xffffffff -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I157e72160317340ee7742c78c62a25d3d98fc01e Gerrit-Change-Number: 23870 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 Apr 27 09:33:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:33:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Drop test TC_t3169 In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23903 ) Change subject: pcu: Drop test TC_t3169 ...................................................................... pcu: Drop test TC_t3169 This test was added a long time ago to test what used to be the previous early implementation of T3169, which didn't follow specs as per TS 44.060. Since recently, osmo-pcu supports tracking UL PDCH blocks and hence properly implementing N3101 and N3101, finally also implementing T3169 correctly. The counters N3101/3 and timer T3169 are already being tested in following tests: TC_n3101_max_t3169 TC_n3103_max_t3169 Since osmo-pcu I2cec531e2633281b88f69ba065c0105580c81076, time-based T3169 is dropped and TC_t3169 doesn't pass anymore, since it had wrong expectancies (because it's not sending RTS to osmo-pcu, hence not triggering USF/RRBP N3101/3 timeouts). Change-Id: I023fb406f1df6e67e16982cb11dc1fcb6fb9b544 --- M pcu/PCU_Tests.ttcn 1 file changed, 0 insertions(+), 44 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved osmith: Looks good to me, approved diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 52d6271..f1506a1 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1270,49 +1270,6 @@ f_dl_data_exp_cs(f_rlcmac_block_int2cs_mcs(g_mcs_max_dl, true), bssgp_ms_racap_egprs_def); } -/* Verify PCU drops TBF after some time of inactivity. */ -testcase TC_t3169() runs on RAW_PCU_Test_CT { - var PCUIF_info_ind info_ind; - var RlcmacDlBlock dl_block; - var uint32_t unused_fn; - var GprsMS ms; - - /* 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 */ - - info_ind := valueof(ts_PCUIF_INFO_default(c_PCUIF_Flags_noMCS)); - /* Set timer to 1 sec (default 5) to speedup test: */ - info_ind.t3169 := 1; - - /* Initialize the PCU interface abstraction */ - f_init_raw(testcasename(), info_ind); - - /* Establish BSSGP connection to the PCU */ - f_bssgp_establish(); - f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); - - /* Establish an Uplink TBF */ - f_ms_establish_ul_tbf(ms); - - /* Send one UL block (with TLLI since we are in One-Phase Access - contention resoultion) and make sure it is ACKED fine */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(10), cv := 1, with_tlli := true, fn := ms.ul_tbf.start_time_fn) - f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn); - /* UL block should NOT be received in SGSN, since we didn't get CV=0 */ - - /* Wait until T3169 fires (plus 1 extra sec to make sure) */ - f_sleep(int2float(info_ind.t3169) + 1.0); - - /* Send an UL block once again, the TBF should be gone by now so no ACK */ - f_ms_tx_ul_data_block(ms, f_rnd_octstring(10), cv := 0) - f_rx_rlcmac_dl_block_exp_dummy(dl_block); - - f_shutdown(__BFILE__, __LINE__, final := true); -} - /* Validate what happens when RACH to get UL TBF and then PCU receives no UL * data. It should end up in N3101 reaching N3101_MAX and finally triggering * T3169. See OS#5033 */ @@ -5773,7 +5730,6 @@ execute( TC_mcs_max_ul() ); execute( TC_mcs_initial_dl() ); execute( TC_mcs_max_dl() ); - execute( TC_t3169() ); execute( TC_n3101_max_t3169() ); execute( TC_n3103_max_t3169() ); execute( TC_x2031_t3191() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I023fb406f1df6e67e16982cb11dc1fcb6fb9b544 Gerrit-Change-Number: 23903 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 09:33:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:33:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_TC_egprs_pkt_chan_req_reject: Validate WaitIndication in ImmAssRej In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23904 ) Change subject: f_TC_egprs_pkt_chan_req_reject: Validate WaitIndication in ImmAssRej ...................................................................... f_TC_egprs_pkt_chan_req_reject: Validate WaitIndication in ImmAssRej Related: OS#3928 Change-Id: Id277f11b411d7b18e3a0445e0c76cbd107c6857d --- M pcu/PCU_Tests.ttcn 1 file changed, 5 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index f1506a1..f42a85b 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3342,7 +3342,8 @@ private function f_TC_egprs_pkt_chan_req_reject(bitstring ra11, uint32_t fn, template IARRestOctets rest := ?, - PCUIF_BurstType bt := BURST_TYPE_1) + PCUIF_BurstType bt := BURST_TYPE_1, + template WaitIndication wi := ?) runs on RAW_PCU_Test_CT { var template ReqRefWaitInd tr_ref; var GsmRrMessage rr_msg; @@ -3361,7 +3362,7 @@ /* Make sure that Request Reference list contains at least one entry * with our TDMA frame number, and RA is set to 'reserved' value 127. */ - tr_ref := tr_ReqRefWaitInd(f_compute_ReqRef(127, fn)); + tr_ref := tr_ReqRefWaitInd(f_compute_ReqRef(127, fn), wi); if (not match(iar.payload, { *, tr_ref, * })) { setverdict(fail, "Request Reference list does not match"); f_shutdown(__BFILE__, __LINE__); @@ -3439,6 +3440,7 @@ var BIT11 ra11; info_ind := valueof(ts_PCUIF_INFO_default); + info_ind.t3142 := 3; /* Only the first TRX is enabled. */ f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (1 .. 7)); @@ -3467,7 +3469,7 @@ rest := tr_IARRestOctets({ *, tr_ExtRAOpt(substr(ra11, 6, 5)), * }); /* At this point, the IUT should run out of free USFs */ - f_TC_egprs_pkt_chan_req_reject(ra11, 1870, rest); + f_TC_egprs_pkt_chan_req_reject(ra11, 1870, rest, wi := info_ind.t3142); f_shutdown(__BFILE__, __LINE__, final := true); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id277f11b411d7b18e3a0445e0c76cbd107c6857d Gerrit-Change-Number: 23904 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 09:46:05 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 09:46:05 +0000 Subject: Change in osmo-pcu[master]: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23871 ) Change subject: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibb471e727388512d42794d3faa26597e2545b852 Gerrit-Change-Number: 23871 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 27 Apr 2021 09:46: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 Apr 27 09:46:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 09:46:45 +0000 Subject: Change in osmo-pcu[master]: Stop abusing T3169 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23872 ) Change subject: Stop abusing T3169 ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2cec531e2633281b88f69ba065c0105580c81076 Gerrit-Change-Number: 23872 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 27 Apr 2021 09: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 Tue Apr 27 09:47:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 09:47:52 +0000 Subject: Change in osmo-pcu[master]: Make use of T3142 received from BTS In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23905 ) Change subject: Make use of T3142 received from BTS ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4e26f181db9693d3a267a879e2aebda12eab2a8c Gerrit-Change-Number: 23905 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 27 Apr 2021 09:47: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 Apr 27 09:48:44 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 09:48:44 +0000 Subject: Change in osmo-pcu[master]: Use negative numbers for non-spec osmo-specific timers In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23906 ) Change subject: Use negative numbers for non-spec osmo-specific timers ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibcdb05ff5bb8efe6cb95cf94e2c8e418dc8deced Gerrit-Change-Number: 23906 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 27 Apr 2021 09:48: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 Apr 27 09:50:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 09:50:08 +0000 Subject: Change in osmo-pcu[master]: ul_tbf: Clean up handle_tbf_reject() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23907 ) Change subject: ul_tbf: Clean up handle_tbf_reject() ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/23907/3/src/tbf_ul.cpp File src/tbf_ul.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/23907/3/src/tbf_ul.cpp at 152 PS3, Line 152: /* Caller will most probably send a Imm Ass Reject after return */ I would keep FIXME here, or add TODO instead? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e Gerrit-Change-Number: 23907 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 27 Apr 2021 09:50: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 Tue Apr 27 09:51:25 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 09:51:25 +0000 Subject: Change in osmo-pcu[master]: Make WaitIndication T3172 configurable In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23908 ) Change subject: Make WaitIndication T3172 configurable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I48b34b94b1a5dfb046a3a6cf8a0d944a7c9b6754 Gerrit-Change-Number: 23908 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 27 Apr 2021 09:51: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 Apr 27 09:51:53 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 09:51:53 +0000 Subject: Change in osmo-pcu[master]: sched: Simplify else-if condition In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23909 ) Change subject: sched: Simplify else-if condition ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I62e2255e28fc4f43fe0a31259ebf18ad00e7e357 Gerrit-Change-Number: 23909 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 27 Apr 2021 09:51: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 Apr 27 09:53:02 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 09:53:02 +0000 Subject: Change in osmo-pcu[master]: Clarify, document Assignment related timers In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23910 ) Change subject: Clarify, document Assignment related timers ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iad31a5c6f83cd78793adf05a6af782ceacae8b11 Gerrit-Change-Number: 23910 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 27 Apr 2021 09: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 Tue Apr 27 09:53:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:53:57 +0000 Subject: Change in osmo-pcu[master]: ul_tbf: Clean up handle_tbf_reject() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23907 ) Change subject: ul_tbf: Clean up handle_tbf_reject() ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/23907/3/src/tbf_ul.cpp File src/tbf_ul.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/23907/3/src/tbf_ul.cpp at 152 PS3, Line 152: /* Caller will most probably send a Imm Ass Reject after return */ > I would keep FIXME here, or add TODO instead? No, this is intenional, callers take care of that, since they know how to send the imm ass reject if needed. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e Gerrit-Change-Number: 23907 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 27 Apr 2021 09:53:57 +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 Tue Apr 27 09:54:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:54:06 +0000 Subject: Change in osmo-pcu[master]: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23871 ) Change subject: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibb471e727388512d42794d3faa26597e2545b852 Gerrit-Change-Number: 23871 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 09:54: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 Apr 27 09:54:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:54:09 +0000 Subject: Change in osmo-pcu[master]: Stop abusing T3169 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23872 ) Change subject: Stop abusing T3169 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2cec531e2633281b88f69ba065c0105580c81076 Gerrit-Change-Number: 23872 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 09: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 Tue Apr 27 09:54:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:54:14 +0000 Subject: Change in osmo-pcu[master]: Make use of T3142 received from BTS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23905 ) Change subject: Make use of T3142 received from BTS ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4e26f181db9693d3a267a879e2aebda12eab2a8c Gerrit-Change-Number: 23905 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 09:54:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 09:54:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:54:33 +0000 Subject: Change in osmo-pcu[master]: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23871 ) Change subject: pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING ...................................................................... pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING During RELEASING state the TFI, USFs, etc. are still reserved and assigned to the TBF, and hence the TBF may still use it. If callers of this function rely on not taking TBFs under RELEASING state, they should check that explicitly. It still makes sense being to operate on RELEASING TBFs, since under some circumstances the TBF may go under a previous state. See for instance 3GPP TS 44.060 sec 8.1.1.3a.2: """ If N3101 reaches the value N3101max, the network shall stop sending PACKET UPLINK ACK/NACK messages to the mobile station for that TBF and shall start timer T3169 for the TBF. If an RLC/MAC block is received from the TBF when timer T3169 is running, the network shall stop timer T3169 and resume sending PACKET UPLINK ACK/NACK messages to the TBF. When T3169 expires, the network may consider the TBF as released and reuse the TFI value. """ Change-Id: Ibb471e727388512d42794d3faa26597e2545b852 --- M src/pdch.cpp 1 file changed, 1 insertion(+), 8 deletions(-) Approvals: Jenkins Builder: Verified 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 diff --git a/src/pdch.cpp b/src/pdch.cpp index baac0f7..76ca1d0 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1044,14 +1044,7 @@ tbf = m_tbfs[dir][tfi]; - if (!tbf) - return NULL; - - if (tbf->state_is_not(GPRS_RLCMAC_RELEASING)) { - return tbf; - } - - return NULL; + return tbf; } void gprs_rlcmac_pdch::attach_tbf(gprs_rlcmac_tbf *tbf) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibb471e727388512d42794d3faa26597e2545b852 Gerrit-Change-Number: 23871 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 09:54:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:54:34 +0000 Subject: Change in osmo-pcu[master]: Stop abusing T3169 In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23872 ) Change subject: Stop abusing T3169 ...................................................................... Stop abusing T3169 Now that we finally handle N3101 and N3103 correctly, we can fix abuse of T3169 we were doing to make sure TBFs were freed. According to 3GPP TS 44.060, T3169 should be armed: * N3101_MAX reached * N3103_MAX reached Furthermore, when T3169 is enabled, the tbf should be in state RELEASING so that its USF is not used. See full description: https://osmocom.org/issues/5033#note-2 Related: OS#5033 Change-Id: I2cec531e2633281b88f69ba065c0105580c81076 --- M src/bts.cpp M src/tbf_ul.cpp M tests/tbf/TbfTest.err 3 files changed, 8 insertions(+), 247 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/bts.cpp b/src/bts.cpp index b61c6b4..3d935a1 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -876,7 +876,6 @@ tbf->set_ta(ta); TBF_SET_STATE(tbf, GPRS_RLCMAC_FLOW); TBF_ASS_TYPE_SET(tbf, GPRS_RLCMAC_FLAG_CCCH); - T_START(tbf, T3169, 3169, "RACH (new UL-TBF)", true); trx_no = tbf->trx->trx_no; ts_no = tbf->first_ts; usf = tbf->m_usf[ts_no]; diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index ff291ef..7a4e3a3 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -156,7 +156,6 @@ } tbf->m_contention_resolution_done = 1; TBF_SET_ASS_ON(tbf, GPRS_RLCMAC_FLAG_PACCH, false); - T_START(tbf, T3169, 3169, "allocation (UL-TBF)", true); tbf->update_ms(tlli, GPRS_RLCMAC_UL_TBF); OSMO_ASSERT(tbf->ms()); @@ -361,9 +360,6 @@ uint32_t new_tlli = GSM_RESERVED_TMSI; unsigned int block_idx; - /* restart T3169 */ - T_START(this, T3169, 3169, "acked (data)", true); - /* Increment RX-counter */ this->m_rx_counter++; update_coding_scheme_counter_ul(rlc->cs); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 450edc0..4b38aec 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1457,13 +1457,11 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654167 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xffffffff, IMSI=, TA=7, 0/0, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: CS-1 -> CS-2 -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654167 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=0, BSN=0, SPB=0, PI=0, E=1, TI=1, bitoffs=24 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) data_length=20, data=f1 22 33 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1536,7 +1534,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654270 + 13 = 2654283 @@ -1556,7 +1553,6 @@ PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1620,7 +1616,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654270 + 13 = 2654283 @@ -1640,7 +1635,6 @@ PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1765,7 +1759,6 @@ TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf5667788, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=NULL) TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654348 TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS PDCH(bts=0,trx=0,ts=7) Expiring FN=2654348 but previous FN=2654301 is still reserved! @@ -1797,7 +1790,6 @@ PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=1, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654353 Rx UL DATA from unexpected TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) UL DATA TFI=1 received (V(Q)=0 .. V(R)=0) -TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654353 TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1809,7 +1801,13 @@ IMSI 0011223344, old TBF TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED): moving DL TBF to new MS object MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) MS(TLLI=0xf5667788, IMSI=, TA=7, 1/0, UL) Attaching DL TBF: TBF(TFI=0 TLLI=0xf5667788 DIR=DL STATE=FINISHED) -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL) Clearing MS object +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL) UL RSSI: 31 dBm +TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) free +PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 1 TBFs, USFs = 02, TFIs = 00000002. +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0,) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) +********** UL-TBF ends here ********** +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0,) Clearing MS object +MS(TLLI=0xffffffff, IMSI=, TA=7, 1/0,) Destroying MS object Modifying MS object, TLLI: 0xf5667788 confirmed TBF(TFI=0 TLLI=0xf5667788 DIR=DL STATE=FINISHED) appending 4 bytes New MS: TLLI = 0xf5667788, TA = 7, IMSI = 0011223344, LLC = 1 @@ -1844,7 +1842,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: CS-1 -> CS-2 @@ -1866,7 +1863,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: CS-2 -> CS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1902,7 +1898,6 @@ Old MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) UL RSSI: 31 dBm TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) free -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) stopping timer T3169 [freeing TBF] PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) ********** UL-TBF ends here ********** @@ -1931,7 +1926,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, DL) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654327 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654327 + 13 = 2654340 @@ -1951,7 +1945,6 @@ PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654331 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654331 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -1990,7 +1983,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: CS-1 -> CS-2 @@ -2012,7 +2004,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: CS-2 -> CS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -2048,7 +2039,6 @@ Old MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) UL RSSI: 31 dBm TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) free -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) stopping timer T3169 [freeing TBF] PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) ********** UL-TBF ends here ********** @@ -2073,13 +2063,11 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654275 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xffffffff, IMSI=, TA=7, 0/0, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: CS-1 -> CS-2 -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=0, BSN=0, SPB=0, PI=0, E=1, TI=1, bitoffs=24 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) data_length=20, data=f1 22 33 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -2137,7 +2125,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 00 MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: CS-1 -> CS-2 @@ -2159,7 +2146,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/0, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: CS-2 -> CS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -2859,6 +2845,7 @@ PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654318): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 exceeded MAX (10) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) changes state from FLOW to RELEASING +TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) starting timer T3169 [MAX N3101 reached] with 5 sec. 0 microsec, cur_fn=2654379 PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654322 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654322): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 10 => 11 (< MAX 10) @@ -3266,7 +3253,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -3288,7 +3274,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -3358,7 +3343,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -3380,7 +3364,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -3390,7 +3373,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=1, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 1 storing in window (1..64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (1), TFI(0). @@ -3398,7 +3380,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=1, SPB=3, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 1 storing in window (1..64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(3) cs(MCS-3) data block with BSN (1), TFI(0). @@ -3413,7 +3394,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=2 .. V(R)=2) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=2, SPB=3, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 2 storing in window (2..65) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(3) cs(MCS-3) data block with BSN (2), TFI(0). @@ -3421,7 +3401,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=2 .. V(R)=2) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=2, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 2 storing in window (2..65) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (2), TFI(0). @@ -3436,7 +3415,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=3 .. V(R)=3) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=3, SPB=1, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 3 storing in window (3..66) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(1) cs(MCS-3) data block with BSN (3), TFI(0). @@ -3444,7 +3422,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=3 .. V(R)=3) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=3, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 3 storing in window (3..66) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (3), TFI(0). @@ -3452,7 +3429,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=3 .. V(R)=3) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=3, SPB=3, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 3 storing in window (3..66) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(3) cs(MCS-3) data block with BSN (3), TFI(0). @@ -3467,7 +3443,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=4 .. V(R)=4) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=4, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (4..67) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (4), TFI(0). @@ -3475,14 +3450,12 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=4 .. V(R)=4) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=4, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (4..67) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (4), TFI(0). PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=4 .. V(R)=4) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=4, SPB=3, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (4..67) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(3) cs(MCS-3) data block with BSN (4), TFI(0). @@ -3497,7 +3470,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=5 .. V(R)=5) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=5, SPB=3, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 5 storing in window (5..68) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(3) cs(MCS-3) data block with BSN (5), TFI(0). @@ -3505,7 +3477,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=1, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=5 .. V(R)=5) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=5, SPB=2, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 5 storing in window (5..68) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got SPB(2) cs(MCS-3) data block with BSN (5), TFI(0). @@ -5953,7 +5924,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -5975,7 +5945,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got CS-1 RLC data block: CV=15, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=24 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=20, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -5985,7 +5954,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=0, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=1, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 1 storing in window (1..64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=37, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -5996,7 +5964,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-3 RLC block: R=1, SI=0, TFI=0, CPS=5, RSB=0, rc=329 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=2 .. V(R)=2) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-3 RLC data block: CV=7, BSN=4, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (2..65) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=37, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -6118,7 +6085,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -6140,7 +6106,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=7, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -6150,7 +6115,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=1, SI=0, TFI=0, CPS=5, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=7, BSN=1, SPB=0, PI=0, E=0, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 1 storing in window (1..64) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @@ -6249,7 +6213,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 MS requests Uplink resource on CCCH/RACH: ra=0x79 (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6271,7 +6234,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=1 USF=1 MS requests Uplink resource on CCCH/RACH: ra=0x7a (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6293,7 +6255,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=2 USF=2 MS requests Uplink resource on CCCH/RACH: ra=0x7b (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6315,7 +6276,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=3 USF=3 MS requests Uplink resource on CCCH/RACH: ra=0x7c (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6337,7 +6297,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=4 USF=4 MS requests Uplink resource on CCCH/RACH: ra=0x7d (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6359,7 +6318,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=5 USF=5 MS requests Uplink resource on CCCH/RACH: ra=0x7e (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6381,7 +6339,6 @@ Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] -TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654167 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=6 USF=6 MS requests Uplink resource on CCCH/RACH: ra=0x7f (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0xffffffff @@ -6443,7 +6400,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 192, base(128) slots(1) ws_pdch(64) ws(192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=2654270 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -6465,7 +6421,6 @@ PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS(TLLI=0xf1223344, IMSI=, TA=7, 1/1, UL) Link quality 12dB (old 12dB) left window [5, 8], modifying uplink CS level: MCS-2 -> MCS-3 -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -6475,133 +6430,114 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=2, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 2 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=3) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=4, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=5) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=6, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 6 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=7) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=8, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 8 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=9) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=10, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 10 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=11) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=12, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 12 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=13) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=14, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 14 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=15) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=16, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 16 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=17) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=18, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 18 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=19) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=20, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 20 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=21) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=22, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 22 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=23) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=24, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 24 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=25) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=26, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 26 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=27) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=28, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 28 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=29) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=30, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 30 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=31) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=32, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 32 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=33) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=34, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 34 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=35) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=36, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 36 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=37) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=38, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 38 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -6610,140 +6546,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=39) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=40, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 40 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=41) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=42, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 42 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=43) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=44, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 44 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=45) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=46, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 46 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=47) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=48, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 48 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=49) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=50, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 50 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=51) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=52, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 52 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=53) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=54, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 54 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=55) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=56, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 56 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=57) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=58, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 58 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=59) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=60, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 60 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=61) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=62, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 62 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=63) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=64, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 64 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=65) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=66, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 66 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=67) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=68, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 68 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=69) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=70, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 70 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=71) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=72, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 72 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=73) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=74, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 74 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=75) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=76, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 76 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=77) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=78, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 78 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -6752,140 +6668,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=79) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=80, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 80 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=81) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=82, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 82 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=83) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=84, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 84 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=85) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=86, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 86 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=87) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=88, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 88 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=89) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=90, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 90 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=91) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=92, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 92 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=93) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=94, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 94 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=95) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=96, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 96 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=97) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=98, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 98 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=99) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=100, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 100 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=101) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=102, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 102 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=103) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=104, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 104 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=105) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=106, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 106 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=107) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=108, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 108 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=109) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=110, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 110 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=111) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=112, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 112 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=113) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=114, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 114 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=115) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=116, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 116 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=117) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=118, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 118 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -6894,140 +6790,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=119) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=120, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 120 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=121) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=122, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 122 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=123) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=124, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 124 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=125) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=126, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 126 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=127) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=128, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 128 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=129) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=130, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 130 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=131) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=132, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 132 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=133) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=134, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 134 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=135) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=136, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 136 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=137) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=138, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 138 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=139) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=140, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 140 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=141) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=142, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 142 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=143) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=144, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 144 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=145) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=146, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 146 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=147) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=148, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 148 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=149) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=150, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 150 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=151) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=152, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 152 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=153) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=154, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 154 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=155) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=156, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 156 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=157) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=158, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 158 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7037,7 +6913,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=159) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=0, BSN=64, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 64 already received Received RTS for PDCH: TRX=0 TS=7 FN=2654275 block_nr=9 scheduling USF=0 for required uplink resource of UL TFI=0 @@ -7071,7 +6946,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=0, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 0 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7081,126 +6955,108 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=1) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=2, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 2 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=3) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=4, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 4 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=5) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=6, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 6 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=7) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=8, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 8 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=9) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=10, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 10 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=11) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=12, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 12 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=13) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=14, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 14 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=15) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=16, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 16 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=17) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=18, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 18 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=19) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=20, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 20 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=21) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=22, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 22 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=23) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=24, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 24 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=25) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=26, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 26 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=27) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=28, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 28 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=29) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=30, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 30 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=31) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=32, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 32 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=33) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=34, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 34 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=35) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=36, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 36 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7209,7 +7065,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=37) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=38, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 38 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7217,7 +7072,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654279 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=39) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654279 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=0, BSN=64, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 64 storing in window (1..192) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7236,126 +7090,108 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=80, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 80 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=81) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=81, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 81 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=82) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=82, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 82 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=83) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=83, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 83 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=84) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=84, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 84 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=85) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=85, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 85 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=86) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=86, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 86 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=87) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=87, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 87 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=88) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=88, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 88 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=89) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=89, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 89 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=90) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=90, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 90 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=91) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=91, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 91 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=92) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=92, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 92 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=93) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=93, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 93 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=94) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=94, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 94 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=95) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=95, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 95 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=96) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=96, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 96 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=97) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=97, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 97 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7364,140 +7200,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=98) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=98, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 98 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=99) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=99, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 99 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=100) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=100, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 100 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=101) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=101, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 101 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=102) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=102, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 102 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=103) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=103, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 103 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=104) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=104, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 104 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=105) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=105, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 105 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=106) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=106, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 106 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=107) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=107, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 107 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=108) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=108, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 108 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=109) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=109, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 109 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=110) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=110, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 110 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=111) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=111, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 111 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=112) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=112, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 112 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=113) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=113, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 113 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=114) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=114, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 114 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=115) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=115, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 115 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=116) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=116, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 116 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=117) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=117, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 117 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7506,140 +7322,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=118) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=118, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 118 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=119) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=119, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 119 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=120) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=120, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 120 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=121) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=121, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 121 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=122) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=122, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 122 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=123) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=123, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 123 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=124) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=124, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 124 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=125) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=125, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 125 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=126) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=126, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 126 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=127) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=127, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 127 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=128) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=128, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 128 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=129) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=129, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 129 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=130) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=130, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 130 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=131) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=131, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 131 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=132) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=132, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 132 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=133) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=133, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 133 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=134) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=134, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 134 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=135) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=135, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 135 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=136) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=136, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 136 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=137) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=137, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 137 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7648,140 +7444,120 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=138) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=138, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 138 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=139) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=139, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 139 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=140) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=140, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 140 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=141) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=141, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 141 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=142) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=142, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 142 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=143) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=143, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 143 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=144) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=144, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 144 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=145) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=145, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 145 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=146) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=146, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 146 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=147) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=147, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 147 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=148) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=148, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 148 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=149) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=149, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 149 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=150) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=150, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 150 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=151) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=151, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 151 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=152) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=152, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 152 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=153) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=153, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 153 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=154) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=154, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 154 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=155) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=155, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 155 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=156) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=156, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 156 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=157) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=157, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 157 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7790,14 +7566,12 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=158) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=158, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 158 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=159) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=10, BSN=159, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 159 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=00 80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7805,7 +7579,6 @@ PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654283 Rx UL DATA from unexpected TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=0 .. V(R)=160) -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) restarting timer T3169 [acked (data)] with 5 sec. 0 microsec, cur_fn=2654283 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=0, BSN=64, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 64 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 @@ -7905,7 +7678,6 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=52 TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddcc, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -7942,7 +7714,6 @@ TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=56 TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=1 TLLI=0xffeeddcd DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddcd, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -7984,7 +7755,6 @@ TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=60 TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=2 TLLI=0xffeeddce DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddce, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -8026,7 +7796,6 @@ TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=65 TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=3 TLLI=0xffeeddcf DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddcf, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -8068,7 +7837,6 @@ TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=69 TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=4 TLLI=0xffeeddd0 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddd0, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -8110,7 +7878,6 @@ TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=73 TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=5 TLLI=0xffeeddd1 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddd1, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 @@ -8152,7 +7919,6 @@ TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) setting EGPRS UL window size to 64, base(64) slots(1) ws_pdch(0) ws(64) TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=NULL EGPRS) changes state from NULL to ASSIGN -TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) starting timer T3169 [allocation (UL-TBF)] with 5 sec. 0 microsec, cur_fn=78 TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) change control TS 7 -> 7 until assignment is complete. TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS MS(TLLI=0xffeeddd2, IMSI=, TA=7, 11/11, UL) Link quality 12dB (old 12dB) left window [-256, 6], modifying uplink CS level: MCS-1 -> MCS-2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2cec531e2633281b88f69ba065c0105580c81076 Gerrit-Change-Number: 23872 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 Tue Apr 27 09:54:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:54:34 +0000 Subject: Change in osmo-pcu[master]: Make use of T3142 received from BTS In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23905 ) Change subject: Make use of T3142 received from BTS ...................................................................... Make use of T3142 received from BTS Related: OS#3928 Change-Id: I4e26f181db9693d3a267a879e2aebda12eab2a8c --- M src/bts.cpp M src/encoding.cpp M src/encoding.h M tests/types/TypesTest.cpp 4 files changed, 11 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified 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 diff --git a/src/bts.cpp b/src/bts.cpp index 3d935a1..9065c4e 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -76,7 +76,7 @@ } static struct osmo_tdef T_defs_bts[] = { - { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="timer (s)", .val=0 }, + { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (s)", .val=0, .min_val = 0, .max_val = 255 }, /* TS 44.018 10.5.2.43 */ { .T=3169, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of USF and TFI(s) after the MS uplink TBF assignment is invalid (s)", .val=0 }, { .T=3191, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of TFI(s) after sending (1) last RLC Data Block on TBF(s), or (2) PACKET TBF RELEASE for an MBMS radio bearer (s)", .val=0 }, { .T=3193, .default_val=100, .unit=OSMO_TDEF_MS, .desc="Reuse of TFI(s) after reception of final PACKET DOWNLINK ACK/NACK from MS for TBF (ms)", .val=0 }, @@ -890,7 +890,8 @@ if (rc != 0) { LOGP(DRLCMAC, LOGL_DEBUG, "Tx Immediate Assignment Reject on AGCH\n"); plen = Encoding::write_immediate_assignment_reject( - bv, rip->ra, Fn, rip->burst_type); + bv, rip->ra, Fn, rip->burst_type, + (uint8_t)osmo_tdef_get(bts->T_defs_bts, 3142, OSMO_TDEF_S, -1)); bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_REJ); } else { LOGP(DRLCMAC, LOGL_DEBUG, "Tx Immediate Assignment on AGCH: " diff --git a/src/encoding.cpp b/src/encoding.cpp index 8bc8d15..f91c638 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -361,10 +361,8 @@ * Immediate assignment reject, sent on the CCCH/AGCH * see GSM 44.018, 9.1.20 + 10.5.2.30 */ -int Encoding::write_immediate_assignment_reject( - bitvec *dest, uint16_t ra, - uint32_t ref_fn, - enum ph_burst_type burst_type) +int Encoding::write_immediate_assignment_reject(bitvec *dest, uint16_t ra, + uint32_t ref_fn, enum ph_burst_type burst_type, uint8_t t3142) { unsigned wp = 0; int plen; @@ -404,8 +402,8 @@ bitvec_write_field(dest, &wp, ref_fn % 51, 6); // T3 bitvec_write_field(dest, &wp, ref_fn % 26, 5); // T2 - /* TODO: Make it configurable */ - bitvec_write_field(dest, &wp, 20, 8); //Wait Indication 1 + /* 10.5.2.43 Wait Indication */ + bitvec_write_field(dest, &wp, t3142, 8); } plen = wp / 8; diff --git a/src/encoding.h b/src/encoding.h index 89d057c..e7046e2 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -59,7 +59,8 @@ static int write_immediate_assignment_reject( bitvec *dest, uint16_t ra, uint32_t ref_fn, - enum ph_burst_type burst_type + enum ph_burst_type burst_type, + uint8_t t3142 ); static void write_packet_uplink_assignment( diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index 643ce4c..480a9ac 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -877,7 +877,7 @@ bitvec_unhex(immediate_assignment_rej, DUMMY_VEC); plen = Encoding::write_immediate_assignment_reject( immediate_assignment_rej, 112, 100, - GSM_L1_BURST_TYPE_ACCESS_1); + GSM_L1_BURST_TYPE_ACCESS_1, 20); printf("assignment reject: %s\n", osmo_hexdump(immediate_assignment_rej->data, 22)); @@ -892,7 +892,7 @@ plen = Encoding::write_immediate_assignment_reject( immediate_assignment_rej, 112, 100, - GSM_L1_BURST_TYPE_ACCESS_0); + GSM_L1_BURST_TYPE_ACCESS_0, 20); printf("assignment reject: %s\n", osmo_hexdump(immediate_assignment_rej->data, 22)); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4e26f181db9693d3a267a879e2aebda12eab2a8c Gerrit-Change-Number: 23905 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 Tue Apr 27 09:54:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:54:35 +0000 Subject: Change in osmo-pcu[master]: Use negative numbers for non-spec osmo-specific timers In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23906 ) Change subject: Use negative numbers for non-spec osmo-specific timers ...................................................................... Use negative numbers for non-spec osmo-specific timers (values -1 and -2 cannot be used because they are already taken). Related: OS#3928 Change-Id: Ibcdb05ff5bb8efe6cb95cf94e2c8e418dc8deced --- M src/gprs_bssgp_pcu.c M src/gprs_pcu.c 2 files changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 4170a66..06e1814 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -975,7 +975,7 @@ if (!the_pcu->bssgp.bvc_sig_reset) { LOGP(DBSSGP, LOGL_INFO, "Sending reset on BVCI 0\n"); bssgp_tx_bvc_reset(the_pcu->bssgp.bctx, 0, BSSGP_CAUSE_OML_INTERV); - secs = osmo_tdef_get(the_pcu->T_defs, 2, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, -102, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } @@ -984,7 +984,7 @@ LOGP(DBSSGP, LOGL_INFO, "Sending reset on BVCI %d\n", the_pcu->bssgp.bctx->bvci); bssgp_tx_bvc_reset(the_pcu->bssgp.bctx, the_pcu->bssgp.bctx->bvci, BSSGP_CAUSE_OML_INTERV); - secs = osmo_tdef_get(the_pcu->T_defs, 2, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, -102, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } @@ -993,7 +993,7 @@ LOGP(DBSSGP, LOGL_INFO, "Sending unblock on BVCI %d\n", the_pcu->bssgp.bctx->bvci); bssgp_tx_bvc_unblock(the_pcu->bssgp.bctx); - secs = osmo_tdef_get(the_pcu->T_defs, 1, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, -101, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 52e9825..226b861 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -30,13 +30,13 @@ struct gprs_pcu *the_pcu; static struct osmo_tdef T_defs_pcu[] = { - { .T=1, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, - { .T=2, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, { .T=3190, .default_val=5, .unit=OSMO_TDEF_S, .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0}, { .T=PCU_TDEF_NEIGH_RESOLVE_TO, .default_val=1000, .unit=OSMO_TDEF_MS, .desc="[ARFCN+BSIC]->[RAC+CI] resolution timeout (ms)", .val=0 }, { .T=PCU_TDEF_SI_RESOLVE_TO, .default_val=1000, .unit=OSMO_TDEF_MS, .desc="RIM RAN-INFO response timeout (ms)", .val=0 }, { .T=PCU_TDEF_NEIGH_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[ARFCN+BSIC]->[RAC+CI] resolution cache entry storage timeout (s)", .val=0 }, { .T=PCU_TDEF_SI_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[RAC+CI]->[SI] resolution cache entry storage timeout (s)", .val=0 }, + { .T=-101, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, + { .T=-102, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timer (s)", .val=0 }, { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 }, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibcdb05ff5bb8efe6cb95cf94e2c8e418dc8deced Gerrit-Change-Number: 23906 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 Apr 27 09:57:13 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 09:57:13 +0000 Subject: Change in osmo-pcu[master]: doc/tbf.txt: Update and improve some information In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23911 ) Change subject: doc/tbf.txt: Update and improve some information ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/23911/1/doc/tbf.txt File doc/tbf.txt: https://gerrit.osmocom.org/c/osmo-pcu/+/23911/1/doc/tbf.txt at 123 PS1, Line 123: On uplink transmission Rx Do you mean 'one receipt of an Uplink data/block' or what? I am not getting this. https://gerrit.osmocom.org/c/osmo-pcu/+/23911/1/doc/tbf.txt at 173 PS1, Line 173: MS GprsMS? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3cd643ef462637708c69895c62c488554a428571 Gerrit-Change-Number: 23911 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 27 Apr 2021 09:57:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 09:58:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 09:58:03 +0000 Subject: Change in osmo-pcu[master]: doc/tbf.txt: Update and improve some information In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23911 ) Change subject: doc/tbf.txt: Update and improve some information ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/23911/1/doc/tbf.txt File doc/tbf.txt: https://gerrit.osmocom.org/c/osmo-pcu/+/23911/1/doc/tbf.txt at 123 PS1, Line 123: On uplink transmission Rx > Do you mean 'one receipt of an Uplink data/block' or what? I am not getting this. Yes. I'll change it. https://gerrit.osmocom.org/c/osmo-pcu/+/23911/1/doc/tbf.txt at 173 PS1, Line 173: MS > GprsMS? ack -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3cd643ef462637708c69895c62c488554a428571 Gerrit-Change-Number: 23911 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 27 Apr 2021 09:58:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 09:58:46 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 09:58:46 +0000 Subject: Change in docker-playground[master]: remove deprecated 'logging level all everything' from configs In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23835 ) Change subject: remove deprecated 'logging level all everything' from configs ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6946fae497319a894d4e664ac8642340620822e Gerrit-Change-Number: 23835 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 09:58:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 10:02:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 10:02:00 +0000 Subject: Change in osmo-pcu[master]: doc/tbf.txt: Update and improve some information In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/23911 to look at the new patch set (#2). Change subject: doc/tbf.txt: Update and improve some information ...................................................................... doc/tbf.txt: Update and improve some information Change-Id: I3cd643ef462637708c69895c62c488554a428571 --- M doc/tbf.txt 1 file changed, 24 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/11/23911/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3cd643ef462637708c69895c62c488554a428571 Gerrit-Change-Number: 23911 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 10:03:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 10:03:21 +0000 Subject: Change in osmo-pcu[master]: doc/tbf.txt: Update and improve some information In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23911 ) Change subject: doc/tbf.txt: Update and improve some information ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3cd643ef462637708c69895c62c488554a428571 Gerrit-Change-Number: 23911 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 27 Apr 2021 10:03: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 Apr 27 10:05:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 10:05:05 +0000 Subject: Change in osmo-pcu[master]: ul_tbf: Clean up handle_tbf_reject() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23907 ) Change subject: ul_tbf: Clean up handle_tbf_reject() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e Gerrit-Change-Number: 23907 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 10:05:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 10:05:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 10:05:07 +0000 Subject: Change in osmo-pcu[master]: Make WaitIndication T3172 configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23908 ) Change subject: Make WaitIndication T3172 configurable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I48b34b94b1a5dfb046a3a6cf8a0d944a7c9b6754 Gerrit-Change-Number: 23908 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 10:05:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 10:05:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 10:05:13 +0000 Subject: Change in osmo-pcu[master]: Clarify, document Assignment related timers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23910 ) Change subject: Clarify, document Assignment related timers ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iad31a5c6f83cd78793adf05a6af782ceacae8b11 Gerrit-Change-Number: 23910 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 10: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 Tue Apr 27 10:05:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 10:05:17 +0000 Subject: Change in osmo-pcu[master]: ul_tbf: Clean up handle_tbf_reject() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23907 ) Change subject: ul_tbf: Clean up handle_tbf_reject() ...................................................................... ul_tbf: Clean up handle_tbf_reject() Document the function, make it look similar to usual TBF creation path tbf_alloc_ul()->tbf_alloc_ul_tbf->tbf::setup(), which it mimics with some differences. Get rid of unneeded stuff like creating MS and settings its TLLI (that's already done in only caller of the function). There's no need for calling update_ms() either. Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e --- M src/pdch.cpp M src/tbf_ul.cpp M src/tbf_ul.h M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 5 files changed, 24 insertions(+), 26 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/pdch.cpp b/src/pdch.cpp index 76ca1d0..5389763 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -685,8 +685,7 @@ ul_tbf = tbf_alloc_ul(bts(), ms, trx_no(), tlli); if (!ul_tbf) { - handle_tbf_reject(bts(), ms, tlli, - trx_no(), ts_no); + handle_tbf_reject(bts(), ms, trx_no(), ts_no); goto return_unref; } diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 7a4e3a3..c41793d 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -96,6 +96,7 @@ return 0; } +/* Generic function to alloc a UL TBF, later configured to be assigned either over CCCH or PACCH */ 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; @@ -139,19 +140,16 @@ return tbf; } - +/* Alloc a UL TBF to be assigned over PACCH */ 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 *tbf; -/* FIXME: Copy and paste with tbf_new_dl_assignment */ - /* create new TBF, use same TRX as DL TBF */ - /* use multislot class of downlink TBF */ tbf = tbf_alloc_ul_tbf(bts, ms, use_trx, false); if (!tbf) { LOGPMS(ms, DTBF, LOGL_NOTICE, "No PDCH resource\n"); - /* FIXME: send reject */ + /* Caller will most probably send a Imm Ass Reject after return */ return NULL; } tbf->m_contention_resolution_done = 1; @@ -162,30 +160,23 @@ return tbf; } +/* Create a temporary dummy TBF to Tx a ImmAssReject if allocating a new one during + * packet resource Request failed. This is similar as tbf_alloc_ul() but without + * calling tbf->setup() (in charge of TFI/USF allocation), and reusing resources + * from Packet Resource Request we received. See TS 44.060 sec 7.1.3.2.1 */ 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) + GprsMs *ms, uint8_t trx_no, uint8_t ts) { struct gprs_rlcmac_ul_tbf *ul_tbf = NULL; struct gprs_rlcmac_trx *trx = &bts->trx[trx_no]; - - if (!ms) - ms = bts_alloc_ms(bts, 0, 0); - ms_set_tlli(ms, tlli); + OSMO_ASSERT(ms); ul_tbf = talloc(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); if (!ul_tbf) return ul_tbf; - talloc_set_destructor(ul_tbf, ul_tbf_dtor); new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms); - llist_add(tbf_bts_list((struct gprs_rlcmac_tbf *)ul_tbf), &bts->ul_tbfs); - bts_do_rate_ctr_inc(ul_tbf->bts, CTR_TBF_UL_ALLOCATED); - TBF_SET_ASS_ON(ul_tbf, GPRS_RLCMAC_FLAG_PACCH, false); - - ms_attach_tbf(ms, ul_tbf); - 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; ul_tbf->trx = trx; ul_tbf->m_ctrs = rate_ctr_group_alloc(ul_tbf, &tbf_ctrg_desc, next_tbf_ctr_group_id++); @@ -201,6 +192,12 @@ return NULL; } + ms_attach_tbf(ms, ul_tbf); + llist_add(tbf_bts_list((struct gprs_rlcmac_tbf *)ul_tbf), &bts->ul_tbfs); + bts_do_rate_ctr_inc(ul_tbf->bts, CTR_TBF_UL_ALLOCATED); + TBF_SET_ASS_ON(ul_tbf, GPRS_RLCMAC_FLAG_PACCH, false); + TBF_SET_ASS_STATE_UL(ul_tbf, GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ); + return ul_tbf; } diff --git a/src/tbf_ul.h b/src/tbf_ul.h index a2ad25e..53c7ad8 100644 --- a/src/tbf_ul.h +++ b/src/tbf_ul.h @@ -121,7 +121,7 @@ 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); + GprsMs *ms, uint8_t trx_no, uint8_t ts_no); #else /* ifdef __cplusplus */ struct gprs_rlcmac_ul_tbf; diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index c839ee0..cf8e083 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3160,7 +3160,8 @@ int ts_no = 7; uint8_t trx_no = 0; uint32_t tlli = 0xffeeddcc; - struct gprs_rlcmac_ul_tbf *ul_tbf = NULL; + struct gprs_rlcmac_ul_tbf *ul_tbf; + struct GprsMs *ms; fprintf(stderr, "=== start %s ===\n", __func__); @@ -3168,8 +3169,9 @@ int rc = 0; - ul_tbf = handle_tbf_reject(bts, NULL, tlli, - trx_no, ts_no); + ms = bts_alloc_ms(bts, 0, 0); + ms_set_tlli(ms, tlli); + ul_tbf = handle_tbf_reject(bts, ms, trx_no, ts_no); OSMO_ASSERT(ul_tbf != 0); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 4b38aec..e700fe2 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -7956,8 +7956,8 @@ [UL] algo A (suggested TRX: 0): failed to allocate a TS, no USF available TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=NULL EGPRS) Timeslot Allocation failed: trx = 0, single_slot = 0 MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) No PDCH resource +MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=NULL) changes state from NULL to ASSIGN -MS(TLLI=0xffeeddd3, IMSI=, TA=7, 11/11,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=ASSIGN) TBF(TFI=0 TLLI=0xffeeddd3 DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ PDCH(bts=0,trx=0,ts=7) Expiring FN=82 but previous FN=2654231 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654231): TBF(TFI=6 TLLI=0xffeeddd2 DIR=UL STATE=ASSIGN EGPRS) @@ -7974,8 +7974,8 @@ === start test_packet_access_rej_prr_no_other_tbfs === Creating MS object, TLLI = 0xffffffff Modifying MS object, UL TLLI: 0xffffffff -> 0xffeeddcc, not yet confirmed +MS(TLLI=0xffeeddcc, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=NULL) changes state from NULL to ASSIGN -MS(TLLI=0xffeeddcc, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) changes UL ASS state from GPRS_RLCMAC_UL_ASS_NONE to GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) starting timer T0 [reject (PACCH)] with 0 sec. 2000 microsec, cur_fn=2654167 PDCH(bts=0,trx=0,ts=7) FN=2654218 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I61df2e4f0f0df1f8db941741a2d35a2319252c5e Gerrit-Change-Number: 23907 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 10:05:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 10:05:18 +0000 Subject: Change in osmo-pcu[master]: Make WaitIndication T3172 configurable In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23908 ) Change subject: Make WaitIndication T3172 configurable ...................................................................... Make WaitIndication T3172 configurable Tbftest expectatins need to change because 5000/20 = 250 < 255, hence the message is now sent as units of 20ms instead of seconds. Related: OS#3928 Change-Id: I48b34b94b1a5dfb046a3a6cf8a0d944a7c9b6754 --- M src/bts.cpp M src/encoding.cpp M src/encoding.h M src/tbf.cpp M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 6 files changed, 18 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified 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 diff --git a/src/bts.cpp b/src/bts.cpp index 9065c4e..449e1ac 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -76,8 +76,9 @@ } static struct osmo_tdef T_defs_bts[] = { - { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (s)", .val=0, .min_val = 0, .max_val = 255 }, /* TS 44.018 10.5.2.43 */ + { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (CCCH) (s)", .val=0, .min_val = 0, .max_val = 255 }, /* TS 44.018 10.5.2.43, TS 44.060 7.1.3.2.1 (T3172) */ { .T=3169, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of USF and TFI(s) after the MS uplink TBF assignment is invalid (s)", .val=0 }, + { .T=3172, .default_val=5000,.unit=OSMO_TDEF_MS, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (PACCH) (s)", .val=0, .min_val = 0, .max_val = 255000 }, /* TS 44.060 7.1.3.2.1 */ { .T=3191, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of TFI(s) after sending (1) last RLC Data Block on TBF(s), or (2) PACKET TBF RELEASE for an MBMS radio bearer (s)", .val=0 }, { .T=3193, .default_val=100, .unit=OSMO_TDEF_MS, .desc="Reuse of TFI(s) after reception of final PACKET DOWNLINK ACK/NACK from MS for TBF (ms)", .val=0 }, { .T=3195, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of TFI(s) upon no response from the MS (radio failure or cell change) for TBF/MBMS radio bearer (s)", .val=0 }, diff --git a/src/encoding.cpp b/src/encoding.cpp index f91c638..2f58759 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -1711,7 +1711,7 @@ * 8.1.2.5 Establishment of uplink TBF */ void Encoding::write_packet_access_reject( - bitvec * dest, uint32_t tlli) + bitvec * dest, uint32_t tlli, unsigned long t3172_ms) { unsigned wp = 0; @@ -1725,9 +1725,15 @@ bitvec_write_field(dest, &wp, 0x0, 1); // TLLI / G-RNTI : bit (32) bitvec_write_field(dest, &wp, tlli, 32); // CONTENTION_RESOLUTION_TLLI bitvec_write_field(dest, &wp, 1, 1); // WAIT_INDICATION size in seconds - /* TODO: make it configurable */ - bitvec_write_field(dest, &wp, 5, 8); // WAIT_INDICATION value - bitvec_write_field(dest, &wp, 0, 1); // WAIT_INDICATION size in seconds + + /* WAIT_INDICATION, WAIT_INDICATION_SIZE */ + if (t3172_ms / 20 <= 255) { /* In units of 20 milliseconds */ + bitvec_write_field(dest, &wp, t3172_ms/20, 8); + bitvec_write_field(dest, &wp, 1, 1); + } else { /* value too big to fit in ms, do it in seconds */ + bitvec_write_field(dest, &wp, t3172_ms/1000, 8); + bitvec_write_field(dest, &wp, 0, 1); + } } void write_packet_neighbour_cell_data(RlcMacDownlink_t *block, diff --git a/src/encoding.h b/src/encoding.h index e7046e2..665bd77 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -78,8 +78,8 @@ static void encode_rbb(const char *show_rbb, uint8_t *rbb); - static void write_packet_access_reject( - bitvec * dest, uint32_t tlli); + static void write_packet_access_reject(bitvec * dest, uint32_t tlli, + unsigned long t3172_ms); static void write_packet_uplink_ack( bitvec * dest, struct gprs_rlcmac_ul_tbf *tbf, bool is_final, diff --git a/src/tbf.cpp b/src/tbf.cpp index 69c35f8..b51e7de 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -955,8 +955,8 @@ bitvec_unhex(packet_access_rej, DUMMY_VEC); - Encoding::write_packet_access_reject( - packet_access_rej, tlli()); + Encoding::write_packet_access_reject(packet_access_rej, tlli(), + osmo_tdef_get(bts->T_defs_bts, 3172, OSMO_TDEF_MS, -1)); bts_do_rate_ctr_inc(bts, CTR_PKT_ACCESS_REJ); diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index cf8e083..e0fd9cc 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3264,7 +3264,7 @@ the_pcu = gprs_pcu_alloc(tall_pcu_ctx); struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t tlli = 0xffeeddcc; - static uint8_t exp[] = { 0x40, 0x84, 0x7f, 0xf7, 0x6e, 0xe6, 0x41, 0x4b, + static uint8_t exp[] = { 0x40, 0x84, 0x7f, 0xf7, 0x6e, 0xe6, 0x7e, 0xab, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b }; diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index e700fe2..be7caf0 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -7615,7 +7615,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 -packet reject: 40 84 7f f7 6e e6 41 4b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +packet reject: 40 84 7f f7 6e e6 7e ab 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b === end test_packet_access_rej_epdan === === start test_packet_access_rej_prr === MS requests Uplink resource on CCCH/RACH: ra=0x70 (8 bit) Fn=2654167 qta=31 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I48b34b94b1a5dfb046a3a6cf8a0d944a7c9b6754 Gerrit-Change-Number: 23908 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 Apr 27 10:05:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 10:05:18 +0000 Subject: Change in osmo-pcu[master]: sched: Simplify else-if condition In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23909 ) Change subject: sched: Simplify else-if condition ...................................................................... sched: Simplify else-if condition The code path running into first call of "create_packet_access_reject()" is a superset condition of the second one, so the second one will never be hit. As a result first, this block: """ 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 = tbfs->ul_ass->create_packet_access_reject(); else msg = tbfs->ul_ass->create_ul_ass(fn, ts); """ Can be simplified into: """ else if (tbf == tbfs->ul_ass && tbf->direction == GPRS_RLCMAC_DL_TBF && !tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) msg = tbfs->ul_ass->create_ul_ass(fn, ts); """ Next, one can see that previous condition still forces !tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ) to be always true if we ever reach that code, so it can be dropped. Change-Id: I62e2255e28fc4f43fe0a31259ebf18ad00e7e357 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 2 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index ab7e57e..85c9be8 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -175,12 +175,8 @@ */ 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 = tbfs->ul_ass->create_packet_access_reject(); - else - msg = tbfs->ul_ass->create_ul_ass(fn, ts); + else if (tbf == tbfs->ul_ass && tbf->direction == GPRS_RLCMAC_DL_TBF) + 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) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I62e2255e28fc4f43fe0a31259ebf18ad00e7e357 Gerrit-Change-Number: 23909 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 10:05:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 10:05:18 +0000 Subject: Change in osmo-pcu[master]: Clarify, document Assignment related timers In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23910 ) Change subject: Clarify, document Assignment related timers ...................................................................... Clarify, document Assignment related timers Related: OS#3928 Change-Id: Iad31a5c6f83cd78793adf05a6af782ceacae8b11 --- M src/bts.cpp M src/gprs_pcu.c M src/tbf.cpp M src/tbf_dl.cpp 4 files changed, 12 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified 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 diff --git a/src/bts.cpp b/src/bts.cpp index 449e1ac..bcf4d1b 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -602,8 +602,10 @@ LOGP(DRLCMAC, LOGL_DEBUG, "Got IMM.ASS confirm for TLLI=%08x\n", tlli); - if (dl_tbf->m_wait_confirm) + if (dl_tbf->m_wait_confirm) { + /* Transition to FLOW in gprs_rlcmac_tbf::handle_timeout() when timer expires */ T_START(dl_tbf, T0, -2002, "assignment (AGCH)", true); + } return 0; } diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 226b861..3875e09 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -37,8 +37,8 @@ { .T=PCU_TDEF_SI_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[RAC+CI]->[SI] resolution cache entry storage timeout (s)", .val=0 }, { .T=-101, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, { .T=-102, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, - { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, - { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timer (s)", .val=0 }, + { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Delay release of UL TBF after tx Packet Access Reject (PACCH) (ms)", .val=0 }, + { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timeout (s)", .val=0 }, { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 }, { .T=-2030, .default_val=60, .unit=OSMO_TDEF_S, .desc="Time to keep an idle MS object alive (s)", .val=0 }, /* slightly above T3314 (default 44s, 24.008, 11.2.2) */ { .T=-2031, .default_val=2000, .unit=OSMO_TDEF_MS, .desc="Time to keep an idle DL TBF alive (ms)", .val=0 }, diff --git a/src/tbf.cpp b/src/tbf.cpp index b51e7de..672146f 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -775,7 +775,7 @@ LOGPTBF(this, LOGL_DEBUG, "timer 0 expired. cur_fn=%d\n", current_fn); - /* assignment */ + /* PACCH assignment timeout (see timers X2000, X2001) */ if ((state_flags & (1 << GPRS_RLCMAC_FLAG_PACCH))) { if (state_is(GPRS_RLCMAC_ASSIGN)) { LOGPTBF(this, LOGL_NOTICE, "releasing due to PACCH assignment timeout.\n"); @@ -785,6 +785,7 @@ LOGPTBF(this, LOGL_ERROR, "Error: TBF is not in assign state\n"); } + /* Finish waiting after IMM.ASS confirm timer for CCCH assignment (see timer X2002) */ if ((state_flags & (1 << GPRS_RLCMAC_FLAG_CCCH))) { gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(this); dl_tbf->m_wait_confirm = 0; @@ -965,9 +966,11 @@ bitvec_free(packet_access_rej); ul_ass_state = GPRS_RLCMAC_UL_ASS_NONE; - /* Start Tmr only if it is UL TBF */ - if (direction == GPRS_RLCMAC_UL_TBF) + /* Start release only if it is UL TBF */ + if (direction == GPRS_RLCMAC_UL_TBF) { + /* tbf_free() called in gprs_rlcmac_tbf::handle_timeout */ T_START(this, T0, -2000, "reject (PACCH)", true); + } return msg; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index dd5d0f2..fc53c84 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -603,7 +603,7 @@ /* change state */ TBF_SET_ASS_ON(this, GPRS_RLCMAC_FLAG_PACCH, true); - /* start timer */ + /* Start timer, expiry in gprs_rlcmac_tbf::handle_timeout tbf_free()s the TBF */ T_START(this, T0, -2001, "assignment (PACCH)", true); } else { LOGPTBFDL(this, LOGL_DEBUG, "Send dowlink assignment on PCH, no TBF exist (IMSI=%s)\n", -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iad31a5c6f83cd78793adf05a6af782ceacae8b11 Gerrit-Change-Number: 23910 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 Apr 27 10:10:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 10:10:48 +0000 Subject: Change in osmo-pcu[master]: doc/tbf.txt: Update and improve some information In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23911 ) Change subject: doc/tbf.txt: Update and improve some information ...................................................................... doc/tbf.txt: Update and improve some information Change-Id: I3cd643ef462637708c69895c62c488554a428571 --- M doc/tbf.txt 1 file changed, 24 insertions(+), 10 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/tbf.txt b/doc/tbf.txt index 9d0db1a..f5b39c5 100644 --- a/doc/tbf.txt +++ b/doc/tbf.txt @@ -117,13 +117,17 @@ Polling: In order to poll uplink control block from MS, a special poll state and - frame number is stored at TBF. The scheduler reads that value and will not - assign uplink resource for other TBFs at that frame number. + frame number is stored at PDCH UL Controller. The scheduler reads that value + and will not assign uplink resource for other TBFs at that frame number. - When there is no uplink transmission received on the block, a timeout is - indicated by layer 1 interface. There are two ways of checking timeout: - - The received frame is bad (BFI). - - The GSM indicates that the block should have been already received. + On receipt of an Uplink RLCMAC block, it's the duty of each specific message + handler to release the expectancies previously stored in the PDCH UL + Controller. After the specific handler returns, the generic return path will + expire all reserved events up to the curent FN for that PDCH, eventually + calling timeout functions on TBFs and SBAs owning those reservations. Hence, + the layer 1 interface is expected to provide DATA.ind for each FN block, + containing data=0 if decoding failed, in order to keep the clock up-to-date in + upper layers. Because polling requires uplink response from MS, the polling must be performed at control TS. @@ -131,13 +135,21 @@ Data structures of TBFs and PDCHs: - There is a global structure for BTS. + There is a global structure for PCU (struct gprs_pcu the_pcu). - The BTS structure has 8 TRX structures. + A BTS is created and put into PCU's list for each PCUIF INFO_IND with a unique + bts_nr received. + + Each BTS structure has 8 TRX structures. Each TRX structure has 8 PDCH structures, one for each timeslot. - There are two linked lists of TBF instances: + Each BTS structure has a list of MS (struct GprsMs). + + Each MS can have 1 UL TBF and 1 DL TBF, and 1 TBF is always assigned to an + existing GprsMS structure. + + Each BTS also has two linked lists of TBF instances: - uplink TBFs - downlink TBFs @@ -158,4 +170,6 @@ On release of a TBF, the link to this PDCH is removed from all assigned PDCHs. The TBF is removed from the list of TBFs. The TBF is destroyed. - + GprsMs structures are kept alive for a while once they become unused, in order to + have a cache of MS related information it would otherwise need to acquire + again once it interacts with the PCU again. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3cd643ef462637708c69895c62c488554a428571 Gerrit-Change-Number: 23911 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 Tue Apr 27 10:11:52 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 27 Apr 2021 10:11:52 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 3: Hello Michael, (Daniel is on holiday at the moment) As far as I understand this patch the only problem here is that a rate counter instead of a stats item is used. Uptime is indeed not really a rate, I think its indeed better to use a stats item. Unfortunately I personally did not use stats items before either but I would suggest to have a look at stats_test.c in libosmocore. There is also already a bts_stat_desc in bts.c. It should not be that difficult to migrate your patch from rate counters to stats items. Counting the downtime makes also more sense to me since networks usually run 24/2 and if there is a problem it is easier to spot by looking at the downtime. best regards, Philipp -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 3 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Tue, 27 Apr 2021 10:11: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 Tue Apr 27 13:35:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 13:35:40 +0000 Subject: Change in docker-playground[master]: remove deprecated 'logging level all everything' from configs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23835 ) Change subject: remove deprecated 'logging level all everything' from configs ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6946fae497319a894d4e664ac8642340620822e Gerrit-Change-Number: 23835 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 13:35: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 Apr 27 13:35:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 13:35:42 +0000 Subject: Change in docker-playground[master]: remove deprecated 'logging level all everything' from configs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23835 ) Change subject: remove deprecated 'logging level all everything' from configs ...................................................................... remove deprecated 'logging level all everything' from configs it has been deprecated in libosmocore.git 2.5 years ago: commit 7e0686c6b4b456ec4e6e15689694b1bcf96c301f Author: Neels Hofmeyr Date: Mon Sep 10 20:58:52 2018 +0200 Change-Id: Ia6946fae497319a894d4e664ac8642340620822e --- M nplab-m3ua-test/osmo-stp.cfg M nplab-sua-test/osmo-stp.cfg M osmo-bts-latest/osmo-bts.cfg M osmo-bts-master/osmo-bts.cfg M osmo-cn-latest/osmo-mgw.cfg M osmo-cn-latest/osmo-msc.cfg M osmo-cn-latest/osmo-msc.cfg.base M osmo-cn-latest/osmo-sgsn.cfg M osmo-cn-latest/osmo-stp.cfg M osmo-mgw-latest/osmo-mgw.cfg M osmo-mgw-master/osmo-mgw.cfg M osmo-nitb-latest/openbsc.cfg M osmo-nitb-master/openbsc.cfg M osmo-stp-latest/osmo-stp.cfg M osmo-stp-master/osmo-stp.cfg M ttcn3-bsc-test/osmo-bsc.cfg M ttcn3-bsc-test/osmo-stp.cfg M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg M ttcn3-msc-test/osmo-msc.cfg M ttcn3-msc-test/osmo-stp.cfg M ttcn3-sgsn-test/osmo-sgsn.cfg M ttcn3-sgsn-test/osmo-stp.cfg M ttcn3-sip-test/osmo-sip-connector.cfg 24 files changed, 7 insertions(+), 60 deletions(-) Approvals: fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve laforge: Verified diff --git a/nplab-m3ua-test/osmo-stp.cfg b/nplab-m3ua-test/osmo-stp.cfg index 23d94e0..90ad0d4 100644 --- a/nplab-m3ua-test/osmo-stp.cfg +++ b/nplab-m3ua-test/osmo-stp.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug @@ -29,7 +28,6 @@ logging color 0 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug diff --git a/nplab-sua-test/osmo-stp.cfg b/nplab-sua-test/osmo-stp.cfg index a0043df..4adc139 100644 --- a/nplab-sua-test/osmo-stp.cfg +++ b/nplab-sua-test/osmo-stp.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug @@ -29,7 +28,6 @@ logging color 0 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug diff --git a/osmo-bts-latest/osmo-bts.cfg b/osmo-bts-latest/osmo-bts.cfg index 841f50b..953f24a 100644 --- a/osmo-bts-latest/osmo-bts.cfg +++ b/osmo-bts-latest/osmo-bts.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 0 logging timestamp 0 - logging level all everything logging level rsl info logging level oml debug logging level rll notice diff --git a/osmo-bts-master/osmo-bts.cfg b/osmo-bts-master/osmo-bts.cfg index 841f50b..953f24a 100644 --- a/osmo-bts-master/osmo-bts.cfg +++ b/osmo-bts-master/osmo-bts.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 0 logging timestamp 0 - logging level all everything logging level rsl info logging level oml debug logging level rll notice diff --git a/osmo-cn-latest/osmo-mgw.cfg b/osmo-cn-latest/osmo-mgw.cfg index c206914..ab45de0 100644 --- a/osmo-cn-latest/osmo-mgw.cfg +++ b/osmo-cn-latest/osmo-mgw.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything logging level rtp notice logging level lglobal notice logging level llapd notice diff --git a/osmo-cn-latest/osmo-msc.cfg b/osmo-cn-latest/osmo-msc.cfg index 3015850..c7649fc 100644 --- a/osmo-cn-latest/osmo-msc.cfg +++ b/osmo-cn-latest/osmo-msc.cfg @@ -6,7 +6,7 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything + logging level set-all debug ! line vty no login diff --git a/osmo-cn-latest/osmo-msc.cfg.base b/osmo-cn-latest/osmo-msc.cfg.base index 042d847..da61a49 100644 --- a/osmo-cn-latest/osmo-msc.cfg.base +++ b/osmo-cn-latest/osmo-msc.cfg.base @@ -6,7 +6,7 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything + logging level set-all debug ! line vty no login diff --git a/osmo-cn-latest/osmo-sgsn.cfg b/osmo-cn-latest/osmo-sgsn.cfg index ef18604..19e2c5e 100644 --- a/osmo-cn-latest/osmo-sgsn.cfg +++ b/osmo-cn-latest/osmo-sgsn.cfg @@ -7,7 +7,7 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything + logging level set-all debug ! line vty no login diff --git a/osmo-cn-latest/osmo-stp.cfg b/osmo-cn-latest/osmo-stp.cfg index 96524de..b40c3b0 100644 --- a/osmo-cn-latest/osmo-stp.cfg +++ b/osmo-cn-latest/osmo-stp.cfg @@ -7,7 +7,6 @@ logging color 0 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug diff --git a/osmo-mgw-latest/osmo-mgw.cfg b/osmo-mgw-latest/osmo-mgw.cfg index 23d5603..602452d 100644 --- a/osmo-mgw-latest/osmo-mgw.cfg +++ b/osmo-mgw-latest/osmo-mgw.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 1 - logging level all everything logging level rtp notice logging level lglobal notice logging level llapd notice diff --git a/osmo-mgw-master/osmo-mgw.cfg b/osmo-mgw-master/osmo-mgw.cfg index 8f07294..27cd0a0 100644 --- a/osmo-mgw-master/osmo-mgw.cfg +++ b/osmo-mgw-master/osmo-mgw.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 0 - logging level all everything logging level rtp notice logging level lglobal notice logging level llapd notice diff --git a/osmo-nitb-latest/openbsc.cfg b/osmo-nitb-latest/openbsc.cfg index 31c9a0c..6166d7e 100644 --- a/osmo-nitb-latest/openbsc.cfg +++ b/osmo-nitb-latest/openbsc.cfg @@ -8,7 +8,6 @@ logging color 1 logging print category 0 logging timestamp 0 - logging level all everything logging level rll notice logging level cc notice logging level mm debug diff --git a/osmo-nitb-master/openbsc.cfg b/osmo-nitb-master/openbsc.cfg index 31c9a0c..6166d7e 100644 --- a/osmo-nitb-master/openbsc.cfg +++ b/osmo-nitb-master/openbsc.cfg @@ -8,7 +8,6 @@ logging color 1 logging print category 0 logging timestamp 0 - logging level all everything logging level rll notice logging level cc notice logging level mm debug diff --git a/osmo-stp-latest/osmo-stp.cfg b/osmo-stp-latest/osmo-stp.cfg index e06a9e0..c4b7d41 100644 --- a/osmo-stp-latest/osmo-stp.cfg +++ b/osmo-stp-latest/osmo-stp.cfg @@ -6,7 +6,6 @@ logging color 1 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug diff --git a/osmo-stp-master/osmo-stp.cfg b/osmo-stp-master/osmo-stp.cfg index 1ab53ed..09fa036 100644 --- a/osmo-stp-master/osmo-stp.cfg +++ b/osmo-stp-master/osmo-stp.cfg @@ -7,7 +7,6 @@ logging color 1 logging print category 1 logging timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp debug diff --git a/ttcn3-bsc-test/osmo-bsc.cfg b/ttcn3-bsc-test/osmo-bsc.cfg index 31cb6b1..2044346 100644 --- a/ttcn3-bsc-test/osmo-bsc.cfg +++ b/ttcn3-bsc-test/osmo-bsc.cfg @@ -13,7 +13,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level rll notice logging level mm notice logging level rr notice diff --git a/ttcn3-bsc-test/osmo-stp.cfg b/ttcn3-bsc-test/osmo-stp.cfg index b3b136e..87398ac 100644 --- a/ttcn3-bsc-test/osmo-stp.cfg +++ b/ttcn3-bsc-test/osmo-stp.cfg @@ -12,7 +12,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level lglobal notice logging level llapd notice logging level linp notice diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index f38f23a..9b53db5 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -13,7 +13,7 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file 1 - logging level all everything + logging level set-all debug ! line vty no login diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index 2eb9824..c98980b 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -13,7 +13,7 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file 1 - logging level all everything + logging level set-all debug ! line vty no login diff --git a/ttcn3-msc-test/osmo-msc.cfg b/ttcn3-msc-test/osmo-msc.cfg index fd120b9..946ba14 100644 --- a/ttcn3-msc-test/osmo-msc.cfg +++ b/ttcn3-msc-test/osmo-msc.cfg @@ -12,7 +12,6 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything logging level rll notice logging level cc debug logging level mm debug diff --git a/ttcn3-msc-test/osmo-stp.cfg b/ttcn3-msc-test/osmo-stp.cfg index 5fc4abd..8e5ad82 100644 --- a/ttcn3-msc-test/osmo-stp.cfg +++ b/ttcn3-msc-test/osmo-stp.cfg @@ -12,24 +12,7 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything - logging level lglobal notice - logging level llapd notice - logging level linp notice - logging level lmux notice - logging level lmi notice - logging level lmib notice - logging level lsms notice - logging level lctrl notice - logging level lgtp notice - logging level lstats notice - logging level lgsup notice - logging level loap notice - logging level lss7 debug - logging level lsccp debug - logging level lsua debug - logging level lm3ua debug - logging level lmgcp notice + logging level set-all debug ! line vty no login diff --git a/ttcn3-sgsn-test/osmo-sgsn.cfg b/ttcn3-sgsn-test/osmo-sgsn.cfg index 25cb224..b1fc2cf 100644 --- a/ttcn3-sgsn-test/osmo-sgsn.cfg +++ b/ttcn3-sgsn-test/osmo-sgsn.cfg @@ -13,7 +13,6 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file 1 - logging level all everything logging level mm debug logging level pag notice logging level meas notice diff --git a/ttcn3-sgsn-test/osmo-stp.cfg b/ttcn3-sgsn-test/osmo-stp.cfg index 3ee0668..127a2c5 100644 --- a/ttcn3-sgsn-test/osmo-stp.cfg +++ b/ttcn3-sgsn-test/osmo-stp.cfg @@ -12,24 +12,7 @@ logging print category 1 logging timestamp 1 logging print extended-timestamp 1 - logging level all everything - logging level lglobal notice - logging level llapd notice - logging level linp notice - logging level lmux notice - logging level lmi notice - logging level lmib notice - logging level lsms notice - logging level lctrl notice - logging level lgtp notice - logging level lstats notice - logging level lgsup notice - logging level loap notice - logging level lss7 debug - logging level lsccp debug - logging level lsua debug - logging level lm3ua debug - logging level lmgcp notice + logging level set-all debug ! line vty no login diff --git a/ttcn3-sip-test/osmo-sip-connector.cfg b/ttcn3-sip-test/osmo-sip-connector.cfg index 7f54c1c..5d0a451 100644 --- a/ttcn3-sip-test/osmo-sip-connector.cfg +++ b/ttcn3-sip-test/osmo-sip-connector.cfg @@ -13,7 +13,6 @@ logging timestamp 1 logging print extended-timestamp 1 logging print file basename - logging level all everything logging level sip debug logging level mncc debug logging level app debug -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6946fae497319a894d4e664ac8642340620822e Gerrit-Change-Number: 23835 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Apr 27 13:36:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 13:36:26 +0000 Subject: Change in libosmocore[master]: ns2: Dump frame relay state to VTY during "show ns" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23546 ) Change subject: ns2: Dump frame relay state to VTY during "show ns" ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I798af3e97dc014b6e0fcde86560a1809852f7510 Gerrit-Change-Number: 23546 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 13:36: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 Apr 27 13:36:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 13:36:28 +0000 Subject: Change in libosmocore[master]: ns2: Dump frame relay state to VTY during "show ns" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23546 ) Change subject: ns2: Dump frame relay state to VTY during "show ns" ...................................................................... ns2: Dump frame relay state to VTY during "show ns" When doing a "show ns", let's also dump the state of the frame relay network, with all its links and DLCs (if any). Change-Id: I798af3e97dc014b6e0fcde86560a1809852f7510 Related: OS#4877 --- M include/osmocom/gprs/frame_relay.h M src/gb/frame_relay.c M src/gb/gprs_ns2_vty.c 3 files changed, 39 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve diff --git a/include/osmocom/gprs/frame_relay.h b/include/osmocom/gprs/frame_relay.h index 8ab9790..81b42a6 100644 --- a/include/osmocom/gprs/frame_relay.h +++ b/include/osmocom/gprs/frame_relay.h @@ -33,6 +33,7 @@ struct osmo_tdef; struct msgb; +struct vty; enum osmo_fr_role { FR_ROLE_USER_EQUIPMENT, @@ -132,6 +133,7 @@ /* allocate a frame relay network */ struct osmo_fr_network *osmo_fr_network_alloc(void *ctx); void osmo_fr_network_free(struct osmo_fr_network *net); +void osmo_fr_network_dump_vty(struct vty *vty, const struct osmo_fr_network *net); /* allocate a frame relay link in a given network */ struct osmo_fr_link *osmo_fr_link_alloc(struct osmo_fr_network *net, enum osmo_fr_role role, const char *name); diff --git a/src/gb/frame_relay.c b/src/gb/frame_relay.c index 84cd17f..4d1df67 100644 --- a/src/gb/frame_relay.c +++ b/src/gb/frame_relay.c @@ -1014,3 +1014,38 @@ } return NULL; } + + +#include +#include + +static void fr_dlc_dump_vty(struct vty *vty, const struct osmo_fr_dlc *dlc) +{ + vty_out(vty, " FR DLC %05u: %s%s%s%s", dlc->dlci, + dlc->active ? "ACTIVE" : "INACTIVE", + dlc->add ? " ADDED" : "", dlc->del ? " DELETED" : "", VTY_NEWLINE); +} + +static void fr_link_dump_vty(struct vty *vty, const struct osmo_fr_link *link) +{ + const struct osmo_fr_dlc *dlc; + + vty_out(vty, "FR Link '%s': Role %s, LastRxSeq %u, LastTxSeq %u%s", + link->name, link->role == FR_ROLE_USER_EQUIPMENT ? "USER" : "NETWORK", + link->last_rx_seq, link->last_tx_seq, VTY_NEWLINE); + llist_for_each_entry(dlc, &link->dlc_list, list) { + fr_dlc_dump_vty(vty, dlc); + } +} + +void osmo_fr_network_dump_vty(struct vty *vty, const struct osmo_fr_network *net) +{ + struct osmo_fr_link *link; + + vty_out(vty, "FR Network: N391 %u, N392 %u, N393 %u%s", + net->n391, net->n392, net->n393, VTY_NEWLINE); + osmo_tdef_vty_out_all(vty, net->T_defs, " "); + llist_for_each_entry(link, &net->links, list) { + fr_link_dump_vty(vty, link); + } +} diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index b678db4..1ef22f5 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1922,6 +1922,8 @@ { dump_ns_entities(vty, vty_nsi, false, false); dump_ns_bind(vty, vty_nsi, false); + if (vty_fr_network && llist_count(&vty_fr_network->links)) + osmo_fr_network_dump_vty(vty, vty_fr_network); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I798af3e97dc014b6e0fcde86560a1809852f7510 Gerrit-Change-Number: 23546 Gerrit-PatchSet: 2 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 Tue Apr 27 13:38:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 13:38:11 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 13:38:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 13:38:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 13:38:31 +0000 Subject: Change in osmo-bts[master]: omldummy: add cmdline arg --features In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23589 ) Change subject: omldummy: add cmdline arg --features ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae Gerrit-Change-Number: 23589 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 27 Apr 2021 13:38: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 Apr 27 13:38:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 13:38:34 +0000 Subject: Change in osmo-bts[master]: omldummy: add cmdline arg --features In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23589 ) Change subject: omldummy: add cmdline arg --features ...................................................................... omldummy: add cmdline arg --features The current usage is to make osmo-bts-omldummy indicate BTS_FEAT_VAMOS on OML, so that we can test osmo-bsc's behavior when VAMOS is enabled. Related: SYS#4895 Depends: I699cd27512887d64d824be680303e70fff3677c1 (libosmocore) Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae --- M src/osmo-bts-omldummy/main.c 1 file changed, 37 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-omldummy/main.c b/src/osmo-bts-omldummy/main.c index 183a5e5..9ab23c5 100644 --- a/src/osmo-bts-omldummy/main.c +++ b/src/osmo-bts-omldummy/main.c @@ -14,19 +14,24 @@ static void print_usage(const char *prog_name) { - printf("Usage: %s [-h] dst_host site_id [trx_num]\n", prog_name); + printf("Usage: %s [-h] [--features FOO,BAR,BAZ] dst_host site_id [trx_num]\n", prog_name); } static void print_help(const char *prog_name) { print_usage(prog_name); printf(" -h --help This text.\n"); + printf(" -f --features FOO,BAR,BAZ BTS features to issue on OML startup.\n" + " The names correspond to BTS_FEAT_* constants\n" + " as defined in osmocom/gsm/bts_features.h,\n" + " e.g. '-f VAMOS'\n"); } struct { char *dst_host; int site_id; int trx_num; + char *features; } cmdline = { .trx_num = 8, }; @@ -37,10 +42,11 @@ int option_index = 0, c; static struct option long_options[] = { {"help", 0, 0, 'h'}, + {"features", 1, 0, 'f'}, {0} }; - c = getopt_long(argc, argv, "h", long_options, &option_index); + c = getopt_long(argc, argv, "hf:", long_options, &option_index); if (c == -1) break; @@ -48,6 +54,9 @@ case 'h': print_help(argv[0]); exit(0); + case 'f': + cmdline.features = optarg; + break; default: /* catch unknown options *as well as* missing arguments. */ fprintf(stderr, "Error in command line options. Exiting.\n"); @@ -71,6 +80,29 @@ } } +void set_bts_features(struct bitvec *features, char *features_str) +{ + char *saveptr = NULL; + char *token; + + if (!features_str) + return; + + while ((token = strtok_r(features_str, ",", &saveptr))) { + enum osmo_bts_features feat; + features_str = NULL; + + feat = get_string_value(osmo_bts_features_names, token); + + if ((int)feat < 0) { + fprintf(stderr, "Unknown BTS feature: '%s'\n", token); + exit(-1); + } + + osmo_bts_set_feature(features, feat); + } +} + int main(int argc, char **argv) { struct gsm_bts *bts; @@ -100,6 +132,9 @@ if (bts_init(bts) < 0) exit(1); + + set_bts_features(bts->features, cmdline.features); + //btsb = bts_role_bts(bts); abis_init(bts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib50990109f07884ef999ba5a4566f5d1d457b0ae Gerrit-Change-Number: 23589 Gerrit-PatchSet: 5 Gerrit-Owner: neels 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 Apr 27 13:38:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 13:38:59 +0000 Subject: Change in osmo-bsc[master]: manual: Location Services: clarify BSC side address In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22081 ) Change subject: manual: Location Services: clarify BSC side address ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb Gerrit-Change-Number: 22081 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 13:38: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 Apr 27 13:39:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 13:39:01 +0000 Subject: Change in osmo-bsc[master]: manual: Location Services: clarify BSC side address In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22081 ) Change subject: manual: Location Services: clarify BSC side address ...................................................................... manual: Location Services: clarify BSC side address A clarification that I promised a while back but forgot to submit. Related: SYS#4876 Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb --- M doc/manuals/chapters/smlc.adoc 1 file changed, 19 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/doc/manuals/chapters/smlc.adoc b/doc/manuals/chapters/smlc.adoc index 7fd3e12..8bf3301 100644 --- a/doc/manuals/chapters/smlc.adoc +++ b/doc/manuals/chapters/smlc.adoc @@ -46,6 +46,9 @@ The point-codes are configurable, and default to OsmoBSC's local point-code 0.23.3 (187), and remote SMLC point-code 0.23.6 (190). +Typically, multiple BSCs connect to the same SMLC, so that each BSC needs to +have a distinct point-code, while the SMLC has a single, fixed point-code. + To configure a different remote SMLC point-code, first configure an arbitrarily named SCCP address in the `cs7` address book, and then apply that to the `smlc-addr` configuration: @@ -55,17 +58,31 @@ sccp-address my-smlc point-code 0.42.6 smlc + enable smlc-addr my-smlc ---- -Similarly, OsmoBSC's local point-code on the Lb-interface is configured by the -`bsc-addr` configuration: +For the BSC side, it suffices to configure a point-code in the `cs7` section, +so that the BSC typically uses the same point-code on A and Lb interfaces. In +this example, the BSC has point-code `1.2.3` on the Lb interface: + +---- +cs7 instance 0 + point-code 1.2.3 +smlc + enable +---- + +It is also possible to configure a distinct BSC's point-code on Lb, using the +`bsc-addr` configuration. In the following example, the BSC uses point-code +`0.42.3` only on the Lb interface, while the A interface remains unchanged: ---- cs7 instance 0 sccp-address my-bsc-on-lb point-code 0.42.3 smlc + enable bsc-addr my-bsc-on-lb ---- -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb Gerrit-Change-Number: 22081 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Apr 27 14:04:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 14:04:01 +0000 Subject: Change in osmo-bsc[master]: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23730 ) Change subject: abis_nm_ipaccess_rsl_connect(): use msgb to compose attr ...................................................................... abis_nm_ipaccess_rsl_connect(): use msgb to compose attr So far the function uses insane byte array magic numbers to compose the OML "RSL Connect" message. For VAMOS, I intend to modify that message. To ensure sanity, first change the attr composition to msgb_put*(). Related: OS#4940 Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 --- M src/osmo-bsc/abis_nm.c 1 file changed, 10 insertions(+), 13 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve 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/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index ba1075a..4fba55c 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -3014,32 +3014,29 @@ int abis_nm_ipaccess_rsl_connect(struct gsm_bts_trx *trx, uint32_t ip, uint16_t port, uint8_t stream) { + struct msgb *attr; struct in_addr ia; - uint8_t attr[] = { NM_ATT_IPACC_STREAM_ID, 0, - NM_ATT_IPACC_DST_IP_PORT, 0, 0, - NM_ATT_IPACC_DST_IP, 0, 0, 0, 0 }; - - int attr_len = sizeof(attr); int error; osmo_timer_setup(&trx->rsl_connect_timeout, rsl_connect_timeout, trx); - ia.s_addr = htonl(ip); - attr[1] = stream; - attr[3] = port >> 8; - attr[4] = port & 0xff; - memcpy(attr + 6, &ia.s_addr, sizeof(uint32_t)); + attr = msgb_alloc(32, "RSL-connect-attr"); + msgb_tv_put(attr, NM_ATT_IPACC_STREAM_ID, stream); + msgb_tv16_put(attr, NM_ATT_IPACC_DST_IP_PORT, port); /* if ip == 0, we use the default IP */ - if (ip == 0) - attr_len -= 5; + if (ip != 0) { + ia.s_addr = htonl(ip); + msgb_tv_fixed_put(attr, NM_ATT_IPACC_DST_IP, 4, (void*)&ia.s_addr); + } LOG_TRX(trx, DNM, LOGL_INFO, "IPA RSL CONNECT IP=%s PORT=%u STREAM=0x%02x\n", inet_ntoa(ia), port, stream); error = abis_nm_ipaccess_msg(trx->bts, NM_MT_IPACC_RSL_CONNECT, NM_OC_BASEB_TRANSC, trx->bts->bts_nr, - trx->nr, 0xff, attr, attr_len); + trx->nr, 0xff, attr->data, attr->len); + msgb_free(attr); if (error == 0) osmo_timer_schedule(&trx->rsl_connect_timeout, 60, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba005635cf86aee1fde77d58ef203e28eed92281 Gerrit-Change-Number: 23730 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 15:34:52 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 27 Apr 2021 15:34:52 +0000 Subject: Change in osmo-bsc[master]: Lb: stop RESET FSM when sccp_user is unbound References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23912 ) Change subject: Lb: stop RESET FSM when sccp_user is unbound ...................................................................... Lb: stop RESET FSM when sccp_user is unbound A crash was reported in bssmap_le_tx_reset() sending a RESET with sccp_user == NULL. Looking at the issue I noticed that when the sccp_user is torn down, the RESET FSM should also be terminated. Add bssmap_reset_term_and_free() to the generic RESET FSM implementation and call from lb_stop() before sccp_user is set to NULL. Related: OS#5134 Change-Id: If412ef990fcdde8ff88098a5169e86f05cd1c7f0 --- M include/osmocom/bsc/bssmap_reset.h M src/osmo-bsc/bssmap_reset.c M src/osmo-bsc/lb.c M tests/handover/handover_test.c 4 files changed, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/23912/1 diff --git a/include/osmocom/bsc/bssmap_reset.h b/include/osmocom/bsc/bssmap_reset.h index 560c543..f90f5ec 100644 --- a/include/osmocom/bsc/bssmap_reset.h +++ b/include/osmocom/bsc/bssmap_reset.h @@ -27,3 +27,4 @@ struct bssmap_reset *bssmap_reset_alloc(void *ctx, const char *label, const struct bssmap_reset_cfg *cfg); bool bssmap_reset_is_conn_ready(const struct bssmap_reset *bssmap_reset); +void bssmap_reset_term_and_free(struct bssmap_reset *bssmap_reset); diff --git a/src/osmo-bsc/bssmap_reset.c b/src/osmo-bsc/bssmap_reset.c index fcf2bab..6c54560 100644 --- a/src/osmo-bsc/bssmap_reset.c +++ b/src/osmo-bsc/bssmap_reset.c @@ -70,6 +70,14 @@ return bssmap_reset; } +void bssmap_reset_term_and_free(struct bssmap_reset *bssmap_reset) +{ + if (!bssmap_reset) + return; + osmo_fsm_inst_term(bssmap_reset->fi, OSMO_FSM_TERM_REQUEST, NULL); + talloc_free(bssmap_reset); +} + static void link_up(struct bssmap_reset *bssmap_reset) { LOGPFSML(bssmap_reset->fi, LOGL_NOTICE, "link up\n"); diff --git a/src/osmo-bsc/lb.c b/src/osmo-bsc/lb.c index be7d446..0ff7c5c 100644 --- a/src/osmo-bsc/lb.c +++ b/src/osmo-bsc/lb.c @@ -399,6 +399,12 @@ bsc_gsmnet->smlc->bssmap_reset = bssmap_reset_alloc(bsc_gsmnet, "Lb", &cfg); } +static void lb_stop_reset_fsm() +{ + bssmap_reset_term_and_free(bsc_gsmnet->smlc->bssmap_reset); + bsc_gsmnet->smlc->bssmap_reset = NULL; +} + static int lb_start() { uint32_t default_pc; @@ -482,6 +488,7 @@ LOGP(DLCS, LOGL_INFO, "Shutting down Lb link\n"); lb_cancel_all(); + lb_stop_reset_fsm(); osmo_sccp_user_unbind(bsc_gsmnet->smlc->sccp_user); bsc_gsmnet->smlc->sccp_user = NULL; return 0; diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 917372b..d2b1757 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -1405,6 +1405,7 @@ void osmo_bsc_sigtran_reset(void) {} void bssmap_reset_alloc(void) {} void bssmap_reset_is_conn_ready(void) {} +void bssmap_reset_term_and_free(void) {} const char *osmo_mgcpc_ep_name(const struct osmo_mgcpc_ep *ep) { return "fake-ep"; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If412ef990fcdde8ff88098a5169e86f05cd1c7f0 Gerrit-Change-Number: 23912 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 15:34:53 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 27 Apr 2021 15:34:53 +0000 Subject: Change in osmo-bsc[master]: Lb: RESET FSM: never send sccp_user == NULL References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23913 ) Change subject: Lb: RESET FSM: never send sccp_user == NULL ...................................................................... Lb: RESET FSM: never send sccp_user == NULL A crash was reported in bssmap_le_tx_reset() sending a RESET with sccp_user == NULL. A previous patch fixes what I infer as the root cause, but I thought let's also have this additional safeguard. Related: OS#5134 Change-Id: I13834c4e576e8d33e67cb63e222b41255cd94875 --- M src/osmo-bsc/lb.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/13/23913/1 diff --git a/src/osmo-bsc/lb.c b/src/osmo-bsc/lb.c index 0ff7c5c..e23de93 100644 --- a/src/osmo-bsc/lb.c +++ b/src/osmo-bsc/lb.c @@ -58,6 +58,11 @@ }, }; + if (!bsc_gsmnet->smlc->sccp_user) { + LOGP(DRESET, LOGL_DEBUG, "Not sending RESET to SMLC, Lb link down\n"); + return -1; + } + ss7 = osmo_ss7_instance_find(bsc_gsmnet->smlc->cs7_instance); OSMO_ASSERT(ss7); LOGP(DRESET, LOGL_INFO, "Sending RESET to SMLC: %s\n", osmo_sccp_addr_name(ss7, &bsc_gsmnet->smlc->smlc_addr)); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I13834c4e576e8d33e67cb63e222b41255cd94875 Gerrit-Change-Number: 23913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 15:34:53 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 27 Apr 2021 15:34:53 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23914 ) Change subject: Lb: add missing X12 timer configurability ...................................................................... Lb: add missing X12 timer configurability While adding timers for Channel Mode Modify, I notice that X12 is used in lcs_ta_req.c, but missing in net_init.c. Add it so that it is exposed on the VTY configuration. Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 --- M src/osmo-bsc/net_init.c M tests/timer.vty 2 files changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/14/23914/1 diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 6cbb40c..478c62f 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -53,6 +53,7 @@ { .T=-9, .default_val=5, .desc="Timeout for availability of MGW endpoint" }, { .T=-10, .default_val=5, .desc="Timeout for fully configured MGW endpoint" }, { .T=-11, .default_val=5, .desc="Timeout for Perform Location Response from SMLC" }, + { .T=-12, .default_val=5, .desc="Timeout for obtaining TA after BSSLAP TA Request" }, { .T=-3111, .default_val=4, .desc="Wait time after lchan was released in error (should be T3111 + 2s)" }, { .T=-3210, .default_val=20, .desc="After L3 Complete, wait for MSC to confirm" }, {} diff --git a/tests/timer.vty b/tests/timer.vty index 6c26681..4b9ddbb 100644 --- a/tests/timer.vty +++ b/tests/timer.vty @@ -26,6 +26,7 @@ net: X9 = 5 s Timeout for availability of MGW endpoint (default: 5 s) net: X10 = 5 s Timeout for fully configured MGW endpoint (default: 5 s) net: X11 = 5 s Timeout for Perform Location Response from SMLC (default: 5 s) +net: X12 = 5 s Timeout for obtaining TA after BSSLAP TA Request (default: 5 s) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s) mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s) @@ -72,6 +73,7 @@ net: X9 = 5 s Timeout for availability of MGW endpoint (default: 5 s) net: X10 = 5 s Timeout for fully configured MGW endpoint (default: 5 s) net: X11 = 5 s Timeout for Perform Location Response from SMLC (default: 5 s) +net: X12 = 5 s Timeout for obtaining TA after BSSLAP TA Request (default: 5 s) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s) mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 15:40:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 15:40:19 +0000 Subject: Change in osmo-bsc[master]: Lb: stop RESET FSM when sccp_user is unbound In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23912 ) Change subject: Lb: stop RESET FSM when sccp_user is unbound ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If412ef990fcdde8ff88098a5169e86f05cd1c7f0 Gerrit-Change-Number: 23912 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 15:40: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 Apr 27 15:41:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 15:41:20 +0000 Subject: Change in osmo-bsc[master]: Lb: RESET FSM: never send sccp_user == NULL In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23913 ) Change subject: Lb: RESET FSM: never send sccp_user == NULL ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23913/1/src/osmo-bsc/lb.c File src/osmo-bsc/lb.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23913/1/src/osmo-bsc/lb.c at 62 PS1, Line 62: LOGP(DRESET, LOGL_DEBUG, "Not sending RESET to SMLC, Lb link down\n"); Probably INFO -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I13834c4e576e8d33e67cb63e222b41255cd94875 Gerrit-Change-Number: 23913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 15:41: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 Apr 27 15:43:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 15:43:22 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23914 ) Change subject: Lb: add missing X12 timer configurability ...................................................................... Patch Set 1: Code-Review-1 Probably better to change to osmo_tdef_fsm_inst_state_chg -1: #define lcs_ta_req_fsm_state_chg(FI, STATE) \ osmo_tdef_fsm_inst_state_chg(FI, STATE, \ lcs_ta_req_fsm_timeouts, \ (bsc_gsmnet)->T_defs, \ 5) <---- HERE -1 This is less confusing since that value should always come from the T_defs now. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 15:43:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 16:10:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 27 Apr 2021 16:10:22 +0000 Subject: Change in osmo-ggsn[master]: ggsn: Improve logging on incoming DL data packets In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 ) Change subject: ggsn: Improve logging on incoming DL data packets ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b Gerrit-Change-Number: 23861 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 27 Apr 2021 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 Tue Apr 27 16:14:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 27 Apr 2021 16:14:00 +0000 Subject: Change in osmo-ggsn[master]: gtp: Rework parsing logic of UpdatePdpCtxResponse In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23860 ) Change subject: gtp: Rework parsing logic of UpdatePdpCtxResponse ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Idd10b494e8fbac8703c49ecd8f9bbe4246e51c57 Gerrit-Change-Number: 23860 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 27 Apr 2021 16: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 Tue Apr 27 16:23:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 16:23:24 +0000 Subject: Change in osmo-msc[master]: WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 ) Change subject: WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB Since recently, osmo-bsc behaves strictly as per specs, meaning it will only send the "Cell selection indicator after release of all TCH and SDCCH IE" in RR Channel Release iff: * "Last Used E-UTRAN PLMN Id" was received in the CommonID sent MSC->BSC * "Last Used E-UTRAN PLMN Id" was received insider "old BSS to new BSS Information" in the HandoverRequest sent MSC->BSC. On the other hand, CSFB_Indicator from ClearCommand MSC->BSC is nw ignored and not taken into account. Hence, let's update osmo-msc to also behave correctly by sending the Last Used E-UTRAN PLMN ID at CommonID tx time to avoid regressions in CSFB support when running against newer osmo-bsc. Let's keep sending the CSFB Indicator in ClearCommand as we used too, in order to keep compatibility with older BSCs (as per spec). Related: SYS#5337 Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc --- M include/osmocom/msc/ran_msg.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/ran_msg_a.c 4 files changed, 15 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/15/23915/1 diff --git a/include/osmocom/msc/ran_msg.h b/include/osmocom/msc/ran_msg.h index 3b08b46..1303ba3 100644 --- a/include/osmocom/msc/ran_msg.h +++ b/include/osmocom/msc/ran_msg.h @@ -220,6 +220,8 @@ } cipher_mode_reject; struct { const char *imsi; + bool last_eutran_plmn_present; + struct osmo_plmn_id last_eutran_plmn; } common_id; struct { enum gsm48_reject_value cause; diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index 6379059..8d3a71f 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -1372,8 +1372,12 @@ .msg_type = RAN_MSG_COMMON_ID, .common_id = { .imsi = msc_a_vsub(msc_a)->imsi, + .last_eutran_plmn_present = false /*TODO*/, }, }; + if (msg.common_id.last_eutran_plmn_present) { + /*TODO: fill last_eutran_plmn_present */ + } return msc_a_ran_down(msc_a, MSC_ROLE_I, &msg); } diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index 0645c54..fcde47c 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -1648,9 +1648,12 @@ .msg_type = RAN_MSG_COMMON_ID, .common_id = { .imsi = vsub->imsi, + .last_eutran_plmn_present = false /*TODO*/, }, }; - + if (msg.common_id.last_eutran_plmn_present) { + /*TODO: fill last_eutran_plmn_present */ + } return msc_a_ran_down(msc_a, to_role, &msg); } diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index 2890076..4cce289 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -1218,7 +1218,11 @@ return ran_a_make_assignment_command(caller_fi, &ran_enc_msg->assignment_command); case RAN_MSG_COMMON_ID: - return gsm0808_create_common_id(ran_enc_msg->common_id.imsi, NULL, NULL); + return gsm0808_create_common_id(ran_enc_msg->common_id.imsi, NULL, + ran_enc_msg->common_id.last_eutran_plmn_present ? + &ran_enc_msg->common_id.last_eutran_plmn : + NULL + ); case RAN_MSG_CIPHER_MODE_COMMAND: return ran_a_make_cipher_mode_command(caller_fi, &ran_enc_msg->cipher_mode_command); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 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 Apr 27 16:24:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 16:24:43 +0000 Subject: Change in osmo-msc[master]: WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 ) Change subject: WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Patch Set 1: I still need to figure out how to fill the last_used_plmn_id from SGs when CSFB is used. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 27 Apr 2021 16:24: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 Tue Apr 27 16:44:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 16:44:13 +0000 Subject: Change in libosmo-sccp[master]: ipa: Move automatic route add/del from ASP to AS level In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 ) Change subject: ipa: Move automatic route add/del from ASP to AS level ...................................................................... ipa: Move automatic route add/del from ASP to AS level SS7 routes operate on AS level, not ASP level. However, the automatic SS7 route creation/destruction for IPA was implemented at the ASP level. This works for single-connection ASs, but obviously fails in load-share situations: We attempt to add the same route several times, and we delete it at the first ASP disconnect, even while other ASPs still exist. This patch moves the IPA route creation/deletion from the ASP level to the AS level. When the AS becomes active, the route is added; when it goes to DOWN state, it is removed. Change-Id: Idb602beae3e9bc19f7bd96355c02ec8dfd9c5d6c --- M src/xua_as_fsm.c M src/xua_asp_fsm.c 2 files changed, 64 insertions(+), 55 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/xua_as_fsm.c b/src/xua_as_fsm.c index 7c791cf..f66ba88 100644 --- a/src/xua_as_fsm.c +++ b/src/xua_as_fsm.c @@ -202,6 +202,66 @@ } recovery; }; +/* is the given AS one with a single ASP of IPA type? */ +static bool is_single_ipa_asp(struct osmo_ss7_as *as) +{ + unsigned int asp_count = 0; + int i; + + for (i = 0; i < ARRAY_SIZE(as->cfg.asps); i++) { + struct osmo_ss7_asp *asp = as->cfg.asps[i]; + if (!asp) + continue; + asp_count++; + if (asp->cfg.proto != OSMO_SS7_ASP_PROT_IPA) + return false; + } + if (asp_count == 1) + return true; + return false; +} + +static void ipa_add_route(struct osmo_fsm_inst *fi) +{ + struct xua_as_fsm_priv *xafp = (struct xua_as_fsm_priv *) fi->priv; + struct osmo_ss7_as *as = xafp->as; + struct osmo_ss7_instance *inst = as->inst; + + /* As opposed to M3UA, there is no RKM and we have to implicitly + * automatically add a route once an IPA connection has come up */ + osmo_ss7_route_create(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff, as->cfg.name); +} + +static void ipa_del_route(struct osmo_fsm_inst *fi) +{ + struct xua_as_fsm_priv *xafp = (struct xua_as_fsm_priv *) fi->priv; + struct osmo_ss7_as *as = xafp->as; + struct osmo_ss7_instance *inst = as->inst; + struct osmo_ss7_route *rt; + + /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */ + rt = osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff); + /* no route found, bail out */ + if (!rt) { + LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA AS, but cannot " + "find route for DPC %s. Did you manually delete it?\n", + osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc)); + return; + } + + /* route points to different AS, bail out */ + if (rt->dest.as != as) { + LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but found " + "route for DPC %s points to different AS (%s)\n", + osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc), rt->dest.as->cfg.name); + return; + } + + osmo_ss7_route_destroy(rt); +} + + + /* is any other ASP in this AS in state != DOWN? */ static bool check_any_other_asp_not_down(struct osmo_ss7_as *as, struct osmo_ss7_asp *asp_cmp) { @@ -309,12 +369,16 @@ npar.status_info = M3UA_NOTIFY_I_AS_INACT; break; case XUA_AS_S_ACTIVE: + if (is_single_ipa_asp(as)) + ipa_add_route(fi); npar.status_info = M3UA_NOTIFY_I_AS_ACT; break; case XUA_AS_S_PENDING: npar.status_info = M3UA_NOTIFY_I_AS_PEND; break; case XUA_AS_S_DOWN: + if (is_single_ipa_asp(as)) + ipa_del_route(fi); /* RFC4666 sec 4.3.2 AS States: If we end up here, it means no ASP is ACTIVE or INACTIVE, meaning no ASP can have already configured the traffic mode diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c index f8683d5..ec85d21 100644 --- a/src/xua_asp_fsm.c +++ b/src/xua_asp_fsm.c @@ -939,23 +939,11 @@ /* Server: We're waiting for an ID ACK */ static void ipa_asp_fsm_wait_id_ack2(struct osmo_fsm_inst *fi, uint32_t event, void *data) { - struct ipa_asp_fsm_priv *iafp = fi->priv; - struct osmo_ss7_asp *asp = iafp->asp; - struct osmo_ss7_instance *inst = asp->inst; - struct osmo_ss7_as *as; - - xua_find_as_for_asp(&as, asp, NULL); - OSMO_ASSERT(as); - switch (event) { case IPA_ASP_E_ID_ACK: /* ACK received, we can go to active state now. The * ACTIVE onenter function will inform the AS */ osmo_fsm_inst_state_chg(fi, IPA_ASP_S_ACTIVE, 0, 0); - /* As opposed to M3UA, there is no RKM and we have to implicitly automatically add - * a route once an IPA connection has come up */ - osmo_ss7_route_create(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff, - as->cfg.name); break; } } @@ -1011,48 +999,12 @@ } } -static void ipa_asp_fsm_del_route(struct osmo_fsm_inst *fi) -{ - struct ipa_asp_fsm_priv *iafp = fi->priv; - struct osmo_ss7_asp *asp = iafp->asp; - struct osmo_ss7_instance *inst = asp->inst; - struct osmo_ss7_as *as; - struct osmo_ss7_route *rt; - - xua_find_as_for_asp(&as, asp, NULL); - OSMO_ASSERT(as); - - /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */ - rt = osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff); - /* no route found, bail out */ - if (!rt) { - LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but cannot " - "find route for DPC %s. Did you manually delete it?\n", - osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc)); - return; - } - - /* route points to different AS, bail out */ - if (rt->dest.as != as) { - LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but found " - "route for DPC %s points to different AS (%s)\n", - osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc), rt->dest.as->cfg.name); - return; - } - - osmo_ss7_route_destroy(rt); - /* FIXME: Why don't we also delete this timer if we return early above? - * FIXME: Where is this timer even scheduled? */ - osmo_timer_del(&iafp->pong_timer); -} - /* Server + Client: We're actively transmitting user data */ static void ipa_asp_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data) { switch (event) { case XUA_ASP_E_M_ASP_DOWN_REQ: case XUA_ASP_E_M_ASP_INACTIVE_REQ: - ipa_asp_fsm_del_route(fi); osmo_fsm_inst_state_chg(fi, IPA_ASP_S_DOWN, 0, 0); break; } @@ -1062,7 +1014,6 @@ { switch (event) { case XUA_ASP_E_M_ASP_DOWN_REQ: - ipa_asp_fsm_del_route(fi); osmo_fsm_inst_state_chg(fi, IPA_ASP_S_DOWN, 0, 0); break; } @@ -1187,11 +1138,6 @@ }, }; -static void ipa_asp_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) -{ - ipa_asp_fsm_del_route(fi); -} - struct osmo_fsm ipa_asp_fsm = { .name = "IPA_ASP", .states = ipa_asp_states, @@ -1204,7 +1150,6 @@ S(XUA_ASP_E_ASPSM_BEAT) | S(XUA_ASP_E_ASPSM_BEAT_ACK), .allstate_action = ipa_asp_allstate, - .cleanup = ipa_asp_fsm_cleanup, }; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Idb602beae3e9bc19f7bd96355c02ec8dfd9c5d6c Gerrit-Change-Number: 23894 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 Apr 27 16:51:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 16:51:26 +0000 Subject: Change in osmo-msc[master]: WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 to look at the new patch set (#2). Change subject: WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB Since recently, osmo-bsc behaves strictly as per specs, meaning it will only send the "Cell selection indicator after release of all TCH and SDCCH IE" in RR Channel Release iff: * "Last Used E-UTRAN PLMN Id" was received in the CommonID sent MSC->BSC * "Last Used E-UTRAN PLMN Id" was received insider "old BSS to new BSS Information" in the HandoverRequest sent MSC->BSC. On the other hand, CSFB_Indicator from ClearCommand MSC->BSC is nw ignored and not taken into account. Hence, let's update osmo-msc to also behave correctly by sending the Last Used E-UTRAN PLMN ID at CommonID tx time to avoid regressions in CSFB support when running against newer osmo-bsc. Let's keep sending the CSFB Indicator in ClearCommand as we used too, in order to keep compatibility with older BSCs (as per spec). Related: SYS#5337 Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc --- M include/osmocom/msc/ran_msg.h M include/osmocom/msc/vlr.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/ran_msg_a.c M src/libmsc/sgs_iface.c 6 files changed, 31 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/15/23915/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 17:01:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 17:01:34 +0000 Subject: Change in osmo-bts[master]: vty: fix the use of deprecated osmo_bts_feature_name() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23916 ) Change subject: vty: fix the use of deprecated osmo_bts_feature_name() ...................................................................... vty: fix the use of deprecated osmo_bts_feature_name() Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba --- M src/common/vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/23916/1 diff --git a/src/common/vty.c b/src/common/vty.c index 45ee32c..0064ee0 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -998,7 +998,7 @@ for (i = 0, no_features = true; i < _NUM_BTS_FEAT; i++) { if (osmo_bts_has_feature(bts->features, i)) { vty_out(vty, " %03u ", i); - vty_out(vty, "%-40s%s", osmo_bts_feature_name(i), VTY_NEWLINE); + vty_out(vty, "%-40s%s", osmo_bts_features_desc(i), VTY_NEWLINE); no_features = false; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba Gerrit-Change-Number: 23916 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 Apr 27 17:01:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 17:01:35 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor parse_rsp(), fix compilation warnings References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23917 ) Change subject: osmo-bts-trx: refactor parse_rsp(), fix compilation warnings ...................................................................... osmo-bts-trx: refactor parse_rsp(), fix compilation warnings For a long time, we see this annoying -Wstringop-truncation warning: In function ?parse_rsp?, inlined from ?trx_ctrl_read_cb? at trx_if.c:647:6: trx_if.c:416:2: warning: ?strncat? output may be truncated copying between 0 and 45 bytes from a string of length 1495 416 | strncat(rsp->cmd, buf_in + 4, p - buf_in - 4); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There is no real need to use strncat() in parse_rsp(), because we do not concatenate any strings but simply copy TRXC response parts from the input buffer to the corresponding 'name' and 'parameters' buffers. Let's use memcpy() instead. This also fixes the warning. Change-Id: Ia10adf7d76abe9a423b07e828852fbfb53b95125 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 20 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/17/23917/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index d2ad877..a79c347 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -397,6 +397,7 @@ static int parse_rsp(const char *buf_in, size_t len_in, struct trx_ctrl_rsp *rsp) { + size_t nlen, plen; char *p, *k; if (strncmp(buf_in, "RSP ", 4)) @@ -406,14 +407,17 @@ if (!(p = strchr(buf_in + 4, ' '))) goto parse_err; - if (p - buf_in >= sizeof(rsp->cmd)) { - LOGP(DTRX, LOGL_ERROR, "cmd buffer too small %lu >= %zu\n", - (long unsigned) (p - buf_in), sizeof(rsp->cmd)); + /* Calculate length of the name part */ + nlen = p - (buf_in + 4); + + if (nlen >= sizeof(rsp->cmd)) { + LOGP(DTRX, LOGL_ERROR, "TRXC command name part is too long: " + "%zu >= %zu\n", nlen, sizeof(rsp->cmd)); goto parse_err; } - rsp->cmd[0] = '\0'; - strncat(rsp->cmd, buf_in + 4, p - buf_in - 4); + memcpy(&rsp->cmd[0], buf_in + 4, nlen); + rsp->cmd[nlen] = '\0'; /* Now comes the status code of the response */ p++; @@ -427,18 +431,22 @@ else k = p + strlen(p); - if (strlen(k) >= sizeof(rsp->params)) { - LOGP(DTRX, LOGL_ERROR, "params buffer too small %zu >= %zu\n", - strlen(k), sizeof(rsp->params)); + /* Calculate length of the parameters part */ + plen = strlen(k); + + if (plen >= sizeof(rsp->params)) { + LOGP(DTRX, LOGL_ERROR, "TRXC command parameters part is too long: " + "%zu >= %zu\n", plen, sizeof(rsp->params)); goto parse_err; } - rsp->params[0] = '\0'; - strcat(rsp->params, k); + + memcpy(&rsp->params[0], k, plen); + rsp->params[plen] = '\0'; + return 0; parse_err: - LOGP(DTRX, LOGL_NOTICE, "Unknown message on ctrl port: %s\n", - buf_in); + LOGP(DTRX, LOGL_NOTICE, "Unknown TRXC message: %s\n", buf_in); return -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia10adf7d76abe9a423b07e828852fbfb53b95125 Gerrit-Change-Number: 23917 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 Apr 27 17:01:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 17:01:35 +0000 Subject: Change in osmo-bts[master]: common/pcu_sock: comment out {dl, ul}_tbf_ext related warnings References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23918 ) Change subject: common/pcu_sock: comment out {dl,ul}_tbf_ext related warnings ...................................................................... common/pcu_sock: comment out {dl,ul}_tbf_ext related warnings Unfortunately, endianness is a weak point in the design of PDUIF: some fields are sent in the network byte order, some in the host order. Both {dl,ul}_tbf_ext do not seem to be used in osmo-pcu, so we would probably need to investigate whether the coding is correct later. Do not spam compilation logs with that. Change-Id: Iebf9961cffbd7aa20b263f7dc0016a44782dec60 --- M src/common/pcu_sock.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/18/23918/1 diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index 2d44e02..d55db81 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -318,9 +318,9 @@ info_ind->flags |= PCU_IF_FLAG_MCS8; if (rlcc->cs_mask & (1 << GPRS_MCS9)) info_ind->flags |= PCU_IF_FLAG_MCS9; -#warning "isn't dl_tbf_ext wrong?: * 10 and no ntohs" + /* FIXME: isn't dl_tbf_ext wrong?: * 10 and no ntohs */ info_ind->dl_tbf_ext = rlcc->parameter[T_DL_TBF_EXT]; -#warning "isn't ul_tbf_ext wrong?: * 10 and no ntohs" + /* FIXME: isn't ul_tbf_ext wrong?: * 10 and no ntohs */ info_ind->ul_tbf_ext = rlcc->parameter[T_UL_TBF_EXT]; info_ind->initial_cs = rlcc->initial_cs; info_ind->initial_mcs = rlcc->initial_mcs; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iebf9961cffbd7aa20b263f7dc0016a44782dec60 Gerrit-Change-Number: 23918 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 Apr 27 17:01:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 17:01:35 +0000 Subject: Change in osmo-bts[master]: common/abis: fix the use of deprecated e1inp_line_get() API References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23919 ) Change subject: common/abis: fix the use of deprecated e1inp_line_get() API ...................................................................... common/abis: fix the use of deprecated e1inp_line_get() API We need curly braces becausee1inp_line_get2() is basically a macro that calls OSMO_ASSERT(), which in its turn contains an 'if' stmt. Change-Id: I41a5fd13a7fa40e16bcf1a8099624b654274cee3 --- M src/common/abis.c 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/19/23919/1 diff --git a/src/common/abis.c b/src/common/abis.c index 5b914c7..be7e906 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -281,9 +281,9 @@ bts_dev_info.location2 = model_name; line = e1inp_line_find(0); - if (line) - e1inp_line_get(line); /* We want a new reference for returned line */ - else + if (line) { + e1inp_line_get2(line, __FILE__); /* We want a new reference for returned line */ + } else line = e1inp_line_create(0, "ipa"); /* already comes with a reference */ if (!line) return NULL; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I41a5fd13a7fa40e16bcf1a8099624b654274cee3 Gerrit-Change-Number: 23919 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 Apr 27 17:05:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 17:05:16 +0000 Subject: Change in osmo-bts[master]: vty: fix the use of deprecated osmo_bts_feature_name() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23916 ) Change subject: vty: fix the use of deprecated osmo_bts_feature_name() ...................................................................... Patch Set 1: Code-Review+1 Please add TODO-RELEASE regarding new libosmocore required -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba Gerrit-Change-Number: 23916 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 27 Apr 2021 17:05: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 Apr 27 17:06:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 27 Apr 2021 17:06:08 +0000 Subject: Change in osmo-bts[master]: common/abis: fix the use of deprecated e1inp_line_get() API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23919 ) Change subject: common/abis: fix the use of deprecated e1inp_line_get() API ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I41a5fd13a7fa40e16bcf1a8099624b654274cee3 Gerrit-Change-Number: 23919 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 17:06:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 17:07:23 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 17:07:23 +0000 Subject: Change in osmo-bts[master]: vty: fix the use of deprecated osmo_bts_feature_name() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23916 ) Change subject: vty: fix the use of deprecated osmo_bts_feature_name() ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+1 > > Please add TODO-RELEASE regarding new libosmocore required AFAIR, this functions was deprecated a long time ago, and we already bumped the required library version. Taking this into account, do we still need to add a TODO-RELEASE entry? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba Gerrit-Change-Number: 23916 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 27 Apr 2021 17:07:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 17:08:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 17:08:51 +0000 Subject: Change in osmo-bts[master]: vty: fix the use of deprecated osmo_bts_feature_name() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23916 ) Change subject: vty: fix the use of deprecated osmo_bts_feature_name() ...................................................................... Patch Set 1: > Patch Set 1: > > > Patch Set 1: Code-Review+1 > > > > Please add TODO-RELEASE regarding new libosmocore required > > AFAIR, this functions was deprecated a long time ago, and we already bumped the required library version. Taking this into account, do we still need to add a TODO-RELEASE entry? Ah, nevermind. I thought this comment relates to e1inp_line_get(). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba Gerrit-Change-Number: 23916 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 17:08: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 Tue Apr 27 17:18:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 27 Apr 2021 17:18:45 +0000 Subject: Change in osmo-bts[master]: vty: fix the use of deprecated osmo_bts_feature_name() 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/+/23916 to look at the new patch set (#2). Change subject: vty: fix the use of deprecated osmo_bts_feature_name() ...................................................................... vty: fix the use of deprecated osmo_bts_feature_name() Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba Depends: I9dfdb5e81037b6000effbd340af4e5db0dcfd69c --- M TODO-RELEASE M src/common/vty.c 2 files changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/23916/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba Gerrit-Change-Number: 23916 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 Tue Apr 27 17:23:24 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Tue, 27 Apr 2021 17:23:24 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter 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-bsc/+/23234 to look at the new patch set (#4). Change subject: stats: add BTS uptime counter ...................................................................... stats: add BTS uptime counter Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/e1_config.c 6 files changed, 65 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/34/23234/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 4 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 17:27:47 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Tue, 27 Apr 2021 17:27:47 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 4: Hi Philipp, Thank you for picking this up and giving some feedback. I have updated the patch to use bts_stat_desc instead of rate_ctr. I've also adjusted the final calculation and description of the stat to track downtime instead of uptime. Thanks again for your time, -Michael -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 4 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Tue, 27 Apr 2021 17:27: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 Tue Apr 27 18:35:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 18:35:13 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 4 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Tue, 27 Apr 2021 18:35:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 18:36:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 18:36:27 +0000 Subject: Change in osmo-msc[master]: WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 ) Change subject: WIP: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 27 Apr 2021 18:36: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 Apr 27 18:38:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 18:38:11 +0000 Subject: Change in osmo-bsc[master]: Lb: stop RESET FSM when sccp_user is unbound In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23912 ) Change subject: Lb: stop RESET FSM when sccp_user is unbound ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If412ef990fcdde8ff88098a5169e86f05cd1c7f0 Gerrit-Change-Number: 23912 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 18:38:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 19:54:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 19:54:24 +0000 Subject: Change in libosmocore[master]: socket: Introduce osmo_sock_set_dscp() to set socket DSCP value References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23920 ) Change subject: socket: Introduce osmo_sock_set_dscp() to set socket DSCP value ...................................................................... socket: Introduce osmo_sock_set_dscp() to set socket DSCP value At least on Linux, sockets have a IP_TOS socket option that can be configured to set the TOS. However, TOS (of RFC791) was replaced by the DSCP (of RFC2474) in 1998. As the DCSP bits are only the upper 6 bits of the TOS bits, let's introduce a helper to get, mask and set the DSCP values in the TOS bits. Related: OS#5136, SYS#5427 Change-Id: Ia4ba389a5b7e3e9d5f17a742a900d6fd68c08e40 --- M include/osmocom/core/socket.h M src/socket.c 2 files changed, 28 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/20/23920/1 diff --git a/include/osmocom/core/socket.h b/include/osmocom/core/socket.h index 0443c06..92cd202 100644 --- a/include/osmocom/core/socket.h +++ b/include/osmocom/core/socket.h @@ -122,5 +122,7 @@ char *osmo_sockaddr_to_str_buf(char *buf, size_t buf_len, const struct osmo_sockaddr *sockaddr); +int osmo_sock_set_dscp(int fd, uint8_t dscp); + #endif /* (!EMBEDDED) */ /*! @} */ diff --git a/src/socket.c b/src/socket.c index 229f72e..095dee6 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1776,6 +1776,32 @@ return buf; } +/*! Set the DSCP (differentiated services code point) of a socket. + * \param[in] dscp DSCP value in range 0..63 + * \returns 0 on success; negative on error. */ +int osmo_sock_set_dscp(int fd, uint8_t dscp) +{ + uint8_t tos; + socklen_t tos_len = sizeof(tos); + int rc; + + /* DSCP is a 6-bit value stored in the upper 6 bits of the 8-bit TOS */ + if (dscp > 63) + return -EINVAL; + + /* read the original value */ + rc = getsockopt(fd, IPPROTO_IP, IP_TOS, &tos, &tos_len); + if (rc < 0) + return rc; + + /* mask-in the DSCP into the upper 6 bits */ + tos &= 0x03; + tos |= dscp << 2; + + /* and write it back to the kernel */ + return setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); +} + #endif /* HAVE_SYS_SOCKET_H */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4ba389a5b7e3e9d5f17a742a900d6fd68c08e40 Gerrit-Change-Number: 23920 Gerrit-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 Apr 27 19:58:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 19:58:02 +0000 Subject: Change in libosmocore[master]: ns2: Fix setting the DSCP value. References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23921 ) Change subject: ns2: Fix setting the DSCP value. ...................................................................... ns2: Fix setting the DSCP value. DSCP is a 6-bit value (0..63) stored in the upper 6 bits of what was formerly known as TOS bits. We must * make sure the user can only specify 0..63 * shift the value by two bits when using the IP_TOS socket option We achieve the latter by using the recently-added osmo_sock_set_dscp() helper. Change-Id: I64fee56b04d0ecd128bf661699d5071817ea96ec Closes: OS#5136 --- M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vty.c 2 files changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/23921/1 diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 8350ad8..eb7d37b 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -320,6 +320,9 @@ if (local->u.sa.sa_family != AF_INET && local->u.sa.sa_family != AF_INET6) return -EINVAL; + if (dscp < 0 || dscp > 63) + return -EINVAL; + bind = gprs_ns2_ip_bind_by_sockaddr(nsi, local); if (bind) { if (result) @@ -361,8 +364,7 @@ if (dscp > 0) { priv->dscp = dscp; - rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, - &dscp, sizeof(dscp)); + rc = osmo_sock_set_dscp(priv->fd.fd, dscp); if (rc < 0) LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", dscp, rc, errno); diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 1ef22f5..c390423 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -679,7 +679,7 @@ } DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, - "dscp <0-255>", + "dscp <0-63>", "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") { struct vty_bind *vbind = vty->index; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64fee56b04d0ecd128bf661699d5071817ea96ec Gerrit-Change-Number: 23921 Gerrit-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 Apr 27 20:25:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 20:25:21 +0000 Subject: Change in libosmocore[master]: socket: Introduce osmo_sock_set_priority() helper function References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23922 ) Change subject: socket: Introduce osmo_sock_set_priority() helper function ...................................................................... socket: Introduce osmo_sock_set_priority() helper function In some situations we want to set the SO_PRIORITY socket option to determine the in-kernel priority of packets generated by this socket. Change-Id: I89abffcd125e6d073338a5c6437b9433220e1823 Related: SYS#5427 --- M include/osmocom/core/socket.h M src/socket.c 2 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/23922/1 diff --git a/include/osmocom/core/socket.h b/include/osmocom/core/socket.h index 92cd202..10e1766 100644 --- a/include/osmocom/core/socket.h +++ b/include/osmocom/core/socket.h @@ -123,6 +123,7 @@ const struct osmo_sockaddr *sockaddr); int osmo_sock_set_dscp(int fd, uint8_t dscp); +int osmo_sock_set_priority(int fd, int prio); #endif /* (!EMBEDDED) */ /*! @} */ diff --git a/src/socket.c b/src/socket.c index 095dee6..6b8c34a 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1802,6 +1802,14 @@ return setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); } +/*! Set the priority value of a socket. + * \param[in] prio priority value. Values outside 0..6 require CAP_NET_ADMIN. + * \returns 0 on success; negative on error. */ +int osmo_sock_set_priority(int fd, int prio) +{ + /* and write it back to the kernel */ + return setsockopt(fd, SOL_SOCKET, SO_PRIORITY, &prio, sizeof(prio)); +} #endif /* HAVE_SYS_SOCKET_H */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I89abffcd125e6d073338a5c6437b9433220e1823 Gerrit-Change-Number: 23922 Gerrit-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 Apr 27 20:27:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 20:27:26 +0000 Subject: Change in osmo-bts[master]: Allow user to specify IP DSCP for OML and RSL, too References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23923 ) Change subject: Allow user to specify IP DSCP for OML and RSL, too ...................................................................... Allow user to specify IP DSCP for OML and RSL, too so far we only assumed that users want to assign as specific non-default DSCP to RTP (voice) traffic. However, there are use cases where even RSL and OML signaling should be covered by specifc, non-default DSCP values, too. Depends: libosmocore.git Ia4ba389a5b7e3e9d5f17a742a900d6fd68c08e40 Change-Id: Ic302a695453514459fa27400027154e7e8b74e0e Related: SYS#5427 --- M TODO-RELEASE M include/osmo-bts/bts.h M src/common/bts.c M src/common/bts_trx.c M src/common/vty.c 5 files changed, 54 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/23/23923/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index e69de29..0129a7f 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -0,0 +1 @@ +bump requirement to libosmocore for use of osmo_sock_set_dscp() diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index be0222d..67c2b82 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -297,6 +297,8 @@ uint16_t rtp_port_range_end; uint16_t rtp_port_range_next; int rtp_ip_dscp; + int oml_ip_dscp; + int rsl_ip_dscp; struct { uint8_t ciphers; /* flags A5/1==0x1, A5/2==0x2, A5/3==0x4 */ diff --git a/src/common/bts.c b/src/common/bts.c index 06a5ccb..29033ef 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -329,6 +329,8 @@ bts->rtp_port_range_end = 17407; bts->rtp_port_range_next = bts->rtp_port_range_start; bts->rtp_ip_dscp = -1; + bts->oml_ip_dscp = -1; + bts->rsl_ip_dscp = -1; /* Default (fall-back) MS/BS Power control parameters */ bts->bs_dpc_params = power_ctrl_params_def; @@ -413,10 +415,16 @@ /* main link is established, send status report */ int bts_link_estab(struct gsm_bts *bts) { - int i, j; + int i, j, rc; LOGP(DSUM, LOGL_INFO, "Main link established, sending NM Status.\n"); + rc = osmo_sock_set_dscp(bts->oml_link->ts->driver.ipaccess.fd.fd, bts->oml_ip_dscp); + if (rc < 0) { + LOGP(DSUM, LOGL_ERROR, "Unable to set OML IP DSCP to %u: %d (%s)\n", + bts->oml_ip_dscp, rc, strerror(errno)); + } + /* BTS SITE MGR becomes Offline (tx SW ACT Report), BTS is DEPENDENCY */ osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SW_ACT, NULL); osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_SW_ACT, NULL); diff --git a/src/common/bts_trx.c b/src/common/bts_trx.c index 9fc18e4..b297876 100644 --- a/src/common/bts_trx.c +++ b/src/common/bts_trx.c @@ -17,6 +17,8 @@ * */ +#include + #include #include @@ -202,6 +204,12 @@ LOGPTRX(trx, DSUM, LOGL_INFO, "RSL link %s\n", link ? "up" : "down"); + rc = osmo_sock_set_dscp(link->ts->driver.ipaccess.fd.fd, trx->bts->rsl_ip_dscp); + if (rc < 0) { + LOGPTRX(trx, DSUM, LOGL_ERROR, "Unable to set RSL IP DSCP to %u: %d (%s)\n", + trx->bts->rsl_ip_dscp, rc, strerror(errno)); + } + osmo_fsm_inst_dispatch(trx->mo.fi, link ? NM_EV_RSL_UP : NM_EV_RSL_DOWN, NULL); osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, link ? NM_EV_RSL_UP : NM_EV_RSL_DOWN, NULL); diff --git a/src/common/vty.c b/src/common/vty.c index 45ee32c..398b474 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -300,6 +300,10 @@ bts->rtp_port_range_end, VTY_NEWLINE); if (bts->rtp_ip_dscp != -1) vty_out(vty, " rtp ip-dscp %i%s", bts->rtp_ip_dscp, VTY_NEWLINE); + if (bts->oml_ip_dscp != -1) + vty_out(vty, " oml ip-dscp %i%s", bts->oml_ip_dscp, VTY_NEWLINE); + if (bts->rsl_ip_dscp != -1) + vty_out(vty, " rsl ip-dscp %i%s", bts->rsl_ip_dscp, VTY_NEWLINE); vty_out(vty, " paging queue-size %u%s", paging_get_queue_max(bts->paging_state), VTY_NEWLINE); vty_out(vty, " paging lifetime %u%s", paging_get_lifetime(bts->paging_state), @@ -595,6 +599,34 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_bts_oml_ip_dscp, + cfg_bts_oml_ip_dscp_cmd, + X(BTS_VTY_ATTR_NEW_LCHAN), + "oml ip-dscp <0-63>", + RTP_STR "Specify DSCP for OML/IP packets\n" "The DSCP value (upper 6 bits of TOS)\n") +{ + struct gsm_bts *bts = vty->index; + int dscp = atoi(argv[0]); + + bts->oml_ip_dscp = dscp; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_bts_rsl_ip_dscp, + cfg_bts_rsl_ip_dscp_cmd, + X(BTS_VTY_ATTR_NEW_LCHAN), + "rsl ip-dscp <0-63>", + RTP_STR "Specify DSCP for RSL/IP packets\n" "The DSCP value (upper 6 bits of TOS)\n") +{ + struct gsm_bts *bts = vty->index; + int dscp = atoi(argv[0]); + + bts->rsl_ip_dscp = dscp; + + return CMD_SUCCESS; +} + #define PAG_STR "Paging related parameters\n" DEFUN_ATTR(cfg_bts_paging_queue_size, @@ -2312,6 +2344,8 @@ install_element(BTS_NODE, &cfg_bts_rtp_jitbuf_cmd); install_element(BTS_NODE, &cfg_bts_rtp_port_range_cmd); install_element(BTS_NODE, &cfg_bts_rtp_ip_dscp_cmd); + install_element(BTS_NODE, &cfg_bts_oml_ip_dscp_cmd); + install_element(BTS_NODE, &cfg_bts_rsl_ip_dscp_cmd); install_element(BTS_NODE, &cfg_bts_band_cmd); install_element(BTS_NODE, &cfg_description_cmd); install_element(BTS_NODE, &cfg_no_description_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic302a695453514459fa27400027154e7e8b74e0e Gerrit-Change-Number: 23923 Gerrit-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 Apr 27 20:40:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 27 Apr 2021 20:40:30 +0000 Subject: Change in osmo-mgw[master]: TOS bits != DSCP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23924 ) Change subject: TOS bits != DSCP ...................................................................... TOS bits != DSCP We have VTY options that allow to set the DSCP value. However, we then call a function to set the TOS bits in the kernel. This is very wrong. The DSCP is only the upper 6 bits of the 8-bit TOS value, and hence we are mussing that translation. As libosmocore now has a helper function osmo_sock_set_dscp(), let's make use of it and don't care about the low-level details. However, this means we need to finally remove the deprecated alias for "rtp ip-tos <0-255>". Closes: OS#5137 Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 --- M TODO-RELEASE M doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg M doc/examples/osmo-mgw/osmo-mgw.cfg M doc/manuals/chapters/configuration.adoc M include/osmocom/mgcp/mgcp_network.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_vty.c 8 files changed, 9 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/24/23924/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index c5a3b36..d88a851 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -24,3 +24,4 @@ # If any interfaces have been removed or changed since the last public release, a=0. # #library what description / commit summary line +update dependency to libosmocore for our use of osmo_sock_set_dscp() diff --git a/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg b/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg index 6d369ef..bd948b8 100644 --- a/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg +++ b/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg @@ -9,7 +9,7 @@ rtp port-range 4002 16000 rtp bind-ip 127.0.0.1 rtp ip-probing - rtp ip-tos 184 + rtp ip-dscp 46 bind port 2427 sdp audio payload number 98 sdp audio payload name GSM diff --git a/doc/examples/osmo-mgw/osmo-mgw.cfg b/doc/examples/osmo-mgw/osmo-mgw.cfg index ea00f6c..320feae 100644 --- a/doc/examples/osmo-mgw/osmo-mgw.cfg +++ b/doc/examples/osmo-mgw/osmo-mgw.cfg @@ -6,7 +6,7 @@ rtp port-range 4002 16000 rtp bind-ip 127.0.0.1 rtp ip-probing - rtp ip-tos 184 + rtp ip-dscp 46 bind port 2427 sdp audio payload number 98 sdp audio payload name GSM diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 2e2772e..177c096 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -101,7 +101,7 @@ rtp net-range 6000 6011 rtp net-bind-ip 192.168.100.130 rtp ip-probing - rtp ip-tos 184 + rtp ip-dscp 46 no rtp keep-alive bind port 2428 number endpoints 30 diff --git a/include/osmocom/mgcp/mgcp_network.h b/include/osmocom/mgcp/mgcp_network.h index 7dbf330..6e1e52c 100644 --- a/include/osmocom/mgcp/mgcp_network.h +++ b/include/osmocom/mgcp/mgcp_network.h @@ -148,7 +148,6 @@ struct mgcp_rtp_end *rtp_end, struct osmo_sockaddr *addr, struct msgb *msg); void mgcp_get_local_addr(char *addr, struct mgcp_conn_rtp *conn); -int mgcp_set_ip_tos(int fd, int tos); /* payload processing default functions */ int mgcp_rtp_processing_default(struct mgcp_endpoint *endp, struct mgcp_rtp_end *dst_end, diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 6b31f2b..675a0fc 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1514,20 +1514,6 @@ return conn->endp->type->dispatch_rtp_cb(msg); } -/*! set IP Type of Service parameter. - * \param[in] fd associated file descriptor. - * \param[in] tos dscp value. - * \returns 0 on success, -1 on ERROR. */ -int mgcp_set_ip_tos(int fd, int tos) -{ - int ret; - ret = setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); - - if (ret < 0) - return -1; - return 0; -} - /*! bind RTP port to osmo_fd. * \param[in] source_addr source (local) address to bind on. * \param[in] fd associated file descriptor. @@ -1574,8 +1560,8 @@ } /* Set Type of Service (DSCP-Value) as configured via VTY */ - mgcp_set_ip_tos(rtp_end->rtp.fd, cfg->endp_dscp); - mgcp_set_ip_tos(rtp_end->rtcp.fd, cfg->endp_dscp); + osmo_sock_set_dscp(rtp_end->rtp.fd, cfg->endp_dscp); + osmo_sock_set_dscp(rtp_end->rtcp.fd, cfg->endp_dscp); if (osmo_fd_register(&rtp_end->rtp) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index a7c0eef..6c40307 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -424,7 +424,7 @@ cfg->osmux_addr, cfg->osmux_port); return ret; } - mgcp_set_ip_tos(osmux_fd.fd, cfg->endp_dscp); + osmo_sock_set_dscp(osmux_fd.fd, cfg->endp_dscp); ret = osmo_fd_register(&osmux_fd); if (ret < 0) { diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 9ad8c24..e8aeab1 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -579,19 +579,15 @@ DEFUN_USRATTR(cfg_mgcp_rtp_ip_dscp, cfg_mgcp_rtp_ip_dscp_cmd, X(MGW_CMD_ATTR_NEWCONN), - "rtp ip-dscp <0-255>", + "rtp ip-dscp <0-63>", RTP_STR - "Apply IP_TOS to the audio stream (including Osmux)\n" "The DSCP value\n") + "Use specified DSCP to the audio stream (including Osmux)\n" "The DSCP value\n") { int dscp = atoi(argv[0]); g_cfg->endp_dscp = dscp; return CMD_SUCCESS; } -ALIAS_DEPRECATED(cfg_mgcp_rtp_ip_dscp, cfg_mgcp_rtp_ip_tos_cmd, - "rtp ip-tos <0-255>", - RTP_STR - "Apply IP_TOS to the audio stream\n" "The DSCP value\n") #define FORCE_PTIME_STR "Force a fixed ptime for packets sent" DEFUN_USRATTR(cfg_mgcp_rtp_force_ptime, cfg_mgcp_rtp_force_ptime_cmd, @@ -1622,7 +1618,6 @@ install_element(MGCP_NODE, &cfg_mgcp_rtp_net_bind_ip_probing_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_no_net_bind_ip_probing_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_ip_dscp_cmd); - install_element(MGCP_NODE, &cfg_mgcp_rtp_ip_tos_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_force_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_rtp_force_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_keepalive_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Gerrit-Change-Number: 23924 Gerrit-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 Apr 27 20:51:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 27 Apr 2021 20:51:12 +0000 Subject: Change in libosmocore[master]: ns2: Fix setting the DSCP value. In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23921 ) Change subject: ns2: Fix setting the DSCP value. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64fee56b04d0ecd128bf661699d5071817ea96ec Gerrit-Change-Number: 23921 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 20:51: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 Apr 27 23:29:44 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 27 Apr 2021 23:29:44 +0000 Subject: Change in osmo-bsc[master]: Lb: RESET FSM: never send sccp_user == NULL In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23913 ) Change subject: Lb: RESET FSM: never send sccp_user == NULL ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23913/1/src/osmo-bsc/lb.c File src/osmo-bsc/lb.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23913/1/src/osmo-bsc/lb.c at 62 PS1, Line 62: LOGP(DRESET, LOGL_DEBUG, "Not sending RESET to SMLC, Lb link down\n"); > Probably INFO i chose debug to avoid spamming the info log with this repeated message (iirc every 5 seconds) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I13834c4e576e8d33e67cb63e222b41255cd94875 Gerrit-Change-Number: 23913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 23:29:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 23:29:55 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 27 Apr 2021 23:29:55 +0000 Subject: Change in osmo-bsc[master]: Lb: stop RESET FSM when sccp_user is unbound In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23912 ) Change subject: Lb: stop RESET FSM when sccp_user is unbound ...................................................................... Lb: stop RESET FSM when sccp_user is unbound A crash was reported in bssmap_le_tx_reset() sending a RESET with sccp_user == NULL. Looking at the issue I noticed that when the sccp_user is torn down, the RESET FSM should also be terminated. Add bssmap_reset_term_and_free() to the generic RESET FSM implementation and call from lb_stop() before sccp_user is set to NULL. Related: OS#5134 Change-Id: If412ef990fcdde8ff88098a5169e86f05cd1c7f0 --- M include/osmocom/bsc/bssmap_reset.h M src/osmo-bsc/bssmap_reset.c M src/osmo-bsc/lb.c M tests/handover/handover_test.c 4 files changed, 17 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/include/osmocom/bsc/bssmap_reset.h b/include/osmocom/bsc/bssmap_reset.h index 560c543..f90f5ec 100644 --- a/include/osmocom/bsc/bssmap_reset.h +++ b/include/osmocom/bsc/bssmap_reset.h @@ -27,3 +27,4 @@ struct bssmap_reset *bssmap_reset_alloc(void *ctx, const char *label, const struct bssmap_reset_cfg *cfg); bool bssmap_reset_is_conn_ready(const struct bssmap_reset *bssmap_reset); +void bssmap_reset_term_and_free(struct bssmap_reset *bssmap_reset); diff --git a/src/osmo-bsc/bssmap_reset.c b/src/osmo-bsc/bssmap_reset.c index fcf2bab..6c54560 100644 --- a/src/osmo-bsc/bssmap_reset.c +++ b/src/osmo-bsc/bssmap_reset.c @@ -70,6 +70,14 @@ return bssmap_reset; } +void bssmap_reset_term_and_free(struct bssmap_reset *bssmap_reset) +{ + if (!bssmap_reset) + return; + osmo_fsm_inst_term(bssmap_reset->fi, OSMO_FSM_TERM_REQUEST, NULL); + talloc_free(bssmap_reset); +} + static void link_up(struct bssmap_reset *bssmap_reset) { LOGPFSML(bssmap_reset->fi, LOGL_NOTICE, "link up\n"); diff --git a/src/osmo-bsc/lb.c b/src/osmo-bsc/lb.c index be7d446..0ff7c5c 100644 --- a/src/osmo-bsc/lb.c +++ b/src/osmo-bsc/lb.c @@ -399,6 +399,12 @@ bsc_gsmnet->smlc->bssmap_reset = bssmap_reset_alloc(bsc_gsmnet, "Lb", &cfg); } +static void lb_stop_reset_fsm() +{ + bssmap_reset_term_and_free(bsc_gsmnet->smlc->bssmap_reset); + bsc_gsmnet->smlc->bssmap_reset = NULL; +} + static int lb_start() { uint32_t default_pc; @@ -482,6 +488,7 @@ LOGP(DLCS, LOGL_INFO, "Shutting down Lb link\n"); lb_cancel_all(); + lb_stop_reset_fsm(); osmo_sccp_user_unbind(bsc_gsmnet->smlc->sccp_user); bsc_gsmnet->smlc->sccp_user = NULL; return 0; diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 917372b..d2b1757 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -1405,6 +1405,7 @@ void osmo_bsc_sigtran_reset(void) {} void bssmap_reset_alloc(void) {} void bssmap_reset_is_conn_ready(void) {} +void bssmap_reset_term_and_free(void) {} const char *osmo_mgcpc_ep_name(const struct osmo_mgcpc_ep *ep) { return "fake-ep"; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If412ef990fcdde8ff88098a5169e86f05cd1c7f0 Gerrit-Change-Number: 23912 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 23:36:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 27 Apr 2021 23:36:46 +0000 Subject: Change in libosmocore[master]: fix comment for osmo_tdef_fsm_inst_state_chg default_timeout References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23925 ) Change subject: fix comment for osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... fix comment for osmo_tdef_fsm_inst_state_chg default_timeout Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 --- M include/osmocom/core/tdef.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/23925/1 diff --git a/include/osmocom/core/tdef.h b/include/osmocom/core/tdef.h index 627ba3f..9814b82 100644 --- a/include/osmocom/core/tdef.h +++ b/include/osmocom/core/tdef.h @@ -154,7 +154,7 @@ * \param[in] timeouts_array Array of struct osmo_tdef_state_timeout[32] to look up state in. * \param[in] tdefs Array of struct osmo_tdef (last entry zero initialized) to look up T in. * \param[in] default_timeout If a T is set in timeouts_array, but no timeout value is configured for T, then use this - * default timeout value as fallback, or pass -1 to abort the program. + * default timeout value as fallback. * \return Return value from osmo_fsm_inst_state_chg() or osmo_fsm_inst_state_chg_keep_timer(). */ #define osmo_tdef_fsm_inst_state_chg(fi, state, timeouts_array, tdefs, default_timeout) \ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 23:38:11 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 27 Apr 2021 23:38:11 +0000 Subject: Change in libosmocore[master]: fix comment for osmo_tdef_fsm_inst_state_chg default_timeout In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/23925 ) Change subject: fix comment for osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... fix comment for osmo_tdef_fsm_inst_state_chg default_timeout default_timeout is an unsigned long, and there is in fact no code that would abort the program on -1. Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 --- M include/osmocom/core/tdef.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/23925/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Apr 27 23:38:17 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 27 Apr 2021 23:38:17 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23914 ) Change subject: Lb: add missing X12 timer configurability ...................................................................... Patch Set 1: > Patch Set 1: Code-Review-1 > > Probably better to change to osmo_tdef_fsm_inst_state_chg -1: > > #define lcs_ta_req_fsm_state_chg(FI, STATE) \ > osmo_tdef_fsm_inst_state_chg(FI, STATE, \ > lcs_ta_req_fsm_timeouts, \ > (bsc_gsmnet)->T_defs, \ > 5) <---- HERE -1 > > This is less confusing since that value should always come from the T_defs now. erm, that default timeout is an unsigned long. It's only the osmo_tdef_fsm_inst_state_chg() macro api doc talking about -1, but there is no code that would abort the program. Any code that passes -1 would probably instead cause a timeout of 18446744073709551615 seconds. we should fix that comment: https://gerrit.osmocom.org/c/libosmocore/+/23925 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 27 Apr 2021 23:38:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Apr 28 05:25:04 2021 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 28 Apr 2021 05:25:04 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_mast?= =?UTF-8?Q?er-no2bootloader_=C2=BB_a1=3Ddefault,?= =?UTF-8?Q?a2=3Ddefault,a3=3Ddefault,a4=3Ddefau?= =?UTF-8?Q?lt,osmocom-master-debian9_#137?= Message-ID: <1818118917.35.1619587504271@jenkins.osmocom.org> See Changes: ------------------------------------------ Started by upstream project "master-no2bootloader" build number 137 originally caused by: Started by timer Running as SYSTEM Building remotely on build2-deb9build-ansible (ttcn3 osmocom-gerrit-debian9 osmocom-master-debian9 repo-install-test coverity) in workspace The recommended git tool is: NONE No credentials specified > git rev-parse --resolve-git-dir # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url git://github.com/no2fpga/no2bootloader # timeout=10 Fetching upstream changes from git://github.com/no2fpga/no2bootloader > git --version # timeout=10 > git --version # 'git version 2.11.0' > git fetch --tags --progress -- git://github.com/no2fpga/no2bootloader +refs/heads/*:refs/remotes/origin/* # timeout=10 Checking out Revision 2ad1116c8c0b595cab41def4d767b8e407525aa6 (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 2ad1116c8c0b595cab41def4d767b8e407525aa6 # timeout=10 Commit message: "contrib/jenkins: remove PATH workaround" > git rev-list --no-walk 2ad1116c8c0b595cab41def4d767b8e407525aa6 # timeout=10 > git remote # timeout=10 > git submodule init # timeout=10 > git submodule sync # timeout=10 > git config --get remote.origin.url # timeout=10 > git submodule init # timeout=10 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 > git config --get submodule.gateware/build.url # timeout=10 > git config -f .gitmodules --get submodule.gateware/build.path # timeout=10 > git config --get submodule.gateware/cores/no2usb.url # timeout=10 > git config -f .gitmodules --get submodule.gateware/cores/no2usb.path # timeout=10 > git config --get submodule.gateware/cores/no2ice40.url # timeout=10 > git config -f .gitmodules --get submodule.gateware/cores/no2ice40.path # timeout=10 > git config --get submodule.gateware/cores/no2misc.url # timeout=10 > git config -f .gitmodules --get submodule.gateware/cores/no2misc.path # timeout=10 > git submodule update --init --recursive gateware/build # timeout=10 > git submodule update --init --recursive gateware/cores/no2usb # timeout=10 > git submodule update --init --recursive gateware/cores/no2ice40 # timeout=10 > git submodule update --init --recursive gateware/cores/no2misc # timeout=10 [osmocom-master-debian9] $ /bin/sh -xe /tmp/jenkins2292790144283585138.sh + docker pull registry.osmocom.org/osmocom-build/fpga-build Using default tag: latest latest: Pulling from osmocom-build/fpga-build Digest: sha256:7b5565385e42900ac0ae19dc348131535bd8e2209d062d50f2c35f74d0a3f905 Status: Image is up to date for registry.osmocom.org/osmocom-build/fpga-build:latest registry.osmocom.org/osmocom-build/fpga-build:latest + ARTIFACT_STORE=/home/osmocom-build/jenkins_build_artifact_store + mkdir -p /home/osmocom-build/jenkins_build_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=master-no2bootloader/a1=default,a2=default,a3=default,a4=default,label=osmocom-master-debian9 -e MAKE=make -e OSMOPY_DEBUG_TCP_SOCKETS=1 -e OSMO_GSM_MANUALS_DIR=/opt/osmo-gsm-manuals -e PARALLEL_MAKE=-j 8 -e PUBLISH=1 -e WITH_MANUALS=1 -w /build -i -u build -v :/build -v /home/osmocom-build/jenkins_build_artifact_store:/artifact_store -v /home/osmocom-build/.ssh:/home/build/.ssh:ro registry.osmocom.org/osmocom-build/fpga-build /build/contrib/jenkins.sh --publish + chmod -R +w . + git checkout -f HEAD + git clean -dxf + [ -d /build/deps ] + [ -d layer1-headers ] =============== FIRMWARE icebreaker ============== make: Entering directory '/build/firmware' rm -f *.bin *.hex *.elf *.o *.gen.h /build/gateware/cores/no2usb/fw/usb_gen_strings.py usb_str_dfu.txt usb_str_dfu.gen.h icebreaker riscv-none-embed-gcc -Wall -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section --specs=nano.specs -DBOARD_ICEBREAKER -I. -I/build/gateware/cores/no2usb/fw/v0/include -Wl,-Bstatic,-T,soc.lds,--strip-debug -o no2bootloader-icebreaker-v0.5-13-g2ad1116.elf start.S led.c spi.c utils.c /build/gateware/cores/no2usb/fw/v0/src/usb.c /build/gateware/cores/no2usb/fw/v0/src/usb_ctrl_ep0.c /build/gateware/cores/no2usb/fw/v0/src/usb_ctrl_std.c /build/gateware/cores/no2usb/fw/v0/src/usb_dfu.c /build/gateware/cores/no2usb/fw/v0/src/usb_dfu_rt.c /build/gateware/cores/no2usb/fw/v0/src/usb_dfu_vendor.c /build/gateware/cores/no2usb/fw/v0/src/usb_msos20.c console_dummy.c fw_dfu.c usb_desc_dfu.c riscv-none-embed-objcopy -O binary no2bootloader-icebreaker-v0.5-13-g2ad1116.elf no2bootloader-icebreaker-v0.5-13-g2ad1116.bin ln -sf no2bootloader-icebreaker-v0.5-13-g2ad1116.bin no2bootloader-icebreaker.bin ln -sf no2bootloader-icebreaker-v0.5-13-g2ad1116.elf no2bootloader-icebreaker.elf make: Leaving directory '/build/firmware' =============== UPLOAD FIRMWARE icebreaker ============== Warning: Permanently added the ECDSA host key for IP address '[144.76.43.76]:48' to the list of known hosts. binaries at rita.osmocom.org: 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.3] Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Wed Apr 28 06:11:52 2021 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 28 Apr 2021 06:11:52 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_mast?= =?UTF-8?Q?er-no2bootloader_=C2=BB_a1=3Ddefault,?= =?UTF-8?Q?a2=3Ddefault,a3=3Ddefault,a4=3Ddefau?= =?UTF-8?Q?lt,osmocom-master-debian9_#138?= In-Reply-To: <1818118917.35.1619587504271@jenkins.osmocom.org> References: <1818118917.35.1619587504271@jenkins.osmocom.org> Message-ID: <559575402.46.1619590312513@jenkins.osmocom.org> See Changes: ------------------------------------------ Started by upstream project "master-no2bootloader" build number 138 originally caused by: Started by user laforge Running as SYSTEM Building remotely on build2-deb9build-ansible (ttcn3 osmocom-gerrit-debian9 osmocom-master-debian9 repo-install-test coverity) in workspace The recommended git tool is: NONE No credentials specified > git rev-parse --resolve-git-dir # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url git://github.com/no2fpga/no2bootloader # timeout=10 Fetching upstream changes from git://github.com/no2fpga/no2bootloader > git --version # timeout=10 > git --version # 'git version 2.11.0' > git fetch --tags --progress -- git://github.com/no2fpga/no2bootloader +refs/heads/*:refs/remotes/origin/* # timeout=10 Checking out Revision 2ad1116c8c0b595cab41def4d767b8e407525aa6 (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 2ad1116c8c0b595cab41def4d767b8e407525aa6 # timeout=10 Commit message: "contrib/jenkins: remove PATH workaround" > git rev-list --no-walk 2ad1116c8c0b595cab41def4d767b8e407525aa6 # timeout=10 > git remote # timeout=10 > git submodule init # timeout=10 > git submodule sync # timeout=10 > git config --get remote.origin.url # timeout=10 > git submodule init # timeout=10 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 > git config --get submodule.gateware/build.url # timeout=10 > git config -f .gitmodules --get submodule.gateware/build.path # timeout=10 > git config --get submodule.gateware/cores/no2usb.url # timeout=10 > git config -f .gitmodules --get submodule.gateware/cores/no2usb.path # timeout=10 > git config --get submodule.gateware/cores/no2ice40.url # timeout=10 > git config -f .gitmodules --get submodule.gateware/cores/no2ice40.path # timeout=10 > git config --get submodule.gateware/cores/no2misc.url # timeout=10 > git config -f .gitmodules --get submodule.gateware/cores/no2misc.path # timeout=10 > git submodule update --init --recursive gateware/build # timeout=10 > git submodule update --init --recursive gateware/cores/no2usb # timeout=10 > git submodule update --init --recursive gateware/cores/no2ice40 # timeout=10 > git submodule update --init --recursive gateware/cores/no2misc # timeout=10 [osmocom-master-debian9] $ /bin/sh -xe /tmp/jenkins8740760497544968879.sh + docker pull registry.osmocom.org/osmocom-build/fpga-build Using default tag: latest latest: Pulling from osmocom-build/fpga-build Digest: sha256:7b5565385e42900ac0ae19dc348131535bd8e2209d062d50f2c35f74d0a3f905 Status: Image is up to date for registry.osmocom.org/osmocom-build/fpga-build:latest registry.osmocom.org/osmocom-build/fpga-build:latest + ARTIFACT_STORE=/home/osmocom-build/jenkins_build_artifact_store + mkdir -p /home/osmocom-build/jenkins_build_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=master-no2bootloader/a1=default,a2=default,a3=default,a4=default,label=osmocom-master-debian9 -e MAKE=make -e OSMOPY_DEBUG_TCP_SOCKETS=1 -e OSMO_GSM_MANUALS_DIR=/opt/osmo-gsm-manuals -e PARALLEL_MAKE=-j 8 -e PUBLISH=1 -e WITH_MANUALS=1 -w /build -i -u build -v :/build -v /home/osmocom-build/jenkins_build_artifact_store:/artifact_store -v /home/osmocom-build/.ssh:/home/build/.ssh:ro registry.osmocom.org/osmocom-build/fpga-build /build/contrib/jenkins.sh --publish + chmod -R +w . + git checkout -f HEAD + git clean -dxf Removing deps/ Removing firmware/no2bootloader-icebreaker-v0.5-13-g2ad1116.bin Removing firmware/no2bootloader-icebreaker-v0.5-13-g2ad1116.elf Removing firmware/no2bootloader-icebreaker.bin Removing firmware/no2bootloader-icebreaker.elf Removing firmware/usb_str_dfu.gen.h Removing known_hosts + [ -d /build/deps ] + [ -d layer1-headers ] =============== FIRMWARE icebreaker ============== make: Entering directory '/build/firmware' rm -f *.bin *.hex *.elf *.o *.gen.h /build/gateware/cores/no2usb/fw/usb_gen_strings.py usb_str_dfu.txt usb_str_dfu.gen.h icebreaker riscv-none-embed-gcc -Wall -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section --specs=nano.specs -DBOARD_ICEBREAKER -I. -I/build/gateware/cores/no2usb/fw/v0/include -Wl,-Bstatic,-T,soc.lds,--strip-debug -o no2bootloader-icebreaker-v0.5-13-g2ad1116.elf start.S led.c spi.c utils.c /build/gateware/cores/no2usb/fw/v0/src/usb.c /build/gateware/cores/no2usb/fw/v0/src/usb_ctrl_ep0.c /build/gateware/cores/no2usb/fw/v0/src/usb_ctrl_std.c /build/gateware/cores/no2usb/fw/v0/src/usb_dfu.c /build/gateware/cores/no2usb/fw/v0/src/usb_dfu_rt.c /build/gateware/cores/no2usb/fw/v0/src/usb_dfu_vendor.c /build/gateware/cores/no2usb/fw/v0/src/usb_msos20.c console_dummy.c fw_dfu.c usb_desc_dfu.c riscv-none-embed-objcopy -O binary no2bootloader-icebreaker-v0.5-13-g2ad1116.elf no2bootloader-icebreaker-v0.5-13-g2ad1116.bin ln -sf no2bootloader-icebreaker-v0.5-13-g2ad1116.bin no2bootloader-icebreaker.bin ln -sf no2bootloader-icebreaker-v0.5-13-g2ad1116.elf no2bootloader-icebreaker.elf make: Leaving directory '/build/firmware' =============== UPLOAD FIRMWARE icebreaker ============== Warning: Permanently added the ECDSA host key for IP address '[144.76.43.76]:48' to the list of known hosts. binaries at rita.osmocom.org: 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.3] Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Wed Apr 28 06:30:25 2021 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 28 Apr 2021 06:30:25 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_?= =?UTF-8?Q?:_master-no2bootloader_=C2=BB_a1=3Ddefa?= =?UTF-8?Q?ult,a2=3Ddefault,a3=3Ddefault,a4=3Ddef?= =?UTF-8?Q?ault,osmocom-master-debian9_#139?= In-Reply-To: <559575402.46.1619590312513@jenkins.osmocom.org> References: <559575402.46.1619590312513@jenkins.osmocom.org> Message-ID: <1435274810.53.1619591425108@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Wed Apr 28 06:51:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 06:51:46 +0000 Subject: Change in libosmocore[master]: socket: Introduce osmo_sock_set_dscp() to set socket DSCP value In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23920 ) Change subject: socket: Introduce osmo_sock_set_dscp() to set socket DSCP value ...................................................................... Patch Set 1: Code-Review+2 quickly verified it with a 10 line C test program + wireshark. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4ba389a5b7e3e9d5f17a742a900d6fd68c08e40 Gerrit-Change-Number: 23920 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 06:51:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 06:51:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 06:51:49 +0000 Subject: Change in libosmocore[master]: socket: Introduce osmo_sock_set_dscp() to set socket DSCP value In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23920 ) Change subject: socket: Introduce osmo_sock_set_dscp() to set socket DSCP value ...................................................................... socket: Introduce osmo_sock_set_dscp() to set socket DSCP value At least on Linux, sockets have a IP_TOS socket option that can be configured to set the TOS. However, TOS (of RFC791) was replaced by the DSCP (of RFC2474) in 1998. As the DCSP bits are only the upper 6 bits of the TOS bits, let's introduce a helper to get, mask and set the DSCP values in the TOS bits. Related: OS#5136, SYS#5427 Change-Id: Ia4ba389a5b7e3e9d5f17a742a900d6fd68c08e40 --- M include/osmocom/core/socket.h M src/socket.c 2 files changed, 28 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/core/socket.h b/include/osmocom/core/socket.h index 0443c06..92cd202 100644 --- a/include/osmocom/core/socket.h +++ b/include/osmocom/core/socket.h @@ -122,5 +122,7 @@ char *osmo_sockaddr_to_str_buf(char *buf, size_t buf_len, const struct osmo_sockaddr *sockaddr); +int osmo_sock_set_dscp(int fd, uint8_t dscp); + #endif /* (!EMBEDDED) */ /*! @} */ diff --git a/src/socket.c b/src/socket.c index 229f72e..095dee6 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1776,6 +1776,32 @@ return buf; } +/*! Set the DSCP (differentiated services code point) of a socket. + * \param[in] dscp DSCP value in range 0..63 + * \returns 0 on success; negative on error. */ +int osmo_sock_set_dscp(int fd, uint8_t dscp) +{ + uint8_t tos; + socklen_t tos_len = sizeof(tos); + int rc; + + /* DSCP is a 6-bit value stored in the upper 6 bits of the 8-bit TOS */ + if (dscp > 63) + return -EINVAL; + + /* read the original value */ + rc = getsockopt(fd, IPPROTO_IP, IP_TOS, &tos, &tos_len); + if (rc < 0) + return rc; + + /* mask-in the DSCP into the upper 6 bits */ + tos &= 0x03; + tos |= dscp << 2; + + /* and write it back to the kernel */ + return setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); +} + #endif /* HAVE_SYS_SOCKET_H */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4ba389a5b7e3e9d5f17a742a900d6fd68c08e40 Gerrit-Change-Number: 23920 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 Apr 28 06:51:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 06:51:53 +0000 Subject: Change in libosmocore[master]: ns2: Fix setting the DSCP value. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23921 ) Change subject: ns2: Fix setting the DSCP value. ...................................................................... ns2: Fix setting the DSCP value. DSCP is a 6-bit value (0..63) stored in the upper 6 bits of what was formerly known as TOS bits. We must * make sure the user can only specify 0..63 * shift the value by two bits when using the IP_TOS socket option We achieve the latter by using the recently-added osmo_sock_set_dscp() helper. Change-Id: I64fee56b04d0ecd128bf661699d5071817ea96ec Closes: OS#5136 --- M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vty.c 2 files changed, 5 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 8350ad8..eb7d37b 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -320,6 +320,9 @@ if (local->u.sa.sa_family != AF_INET && local->u.sa.sa_family != AF_INET6) return -EINVAL; + if (dscp < 0 || dscp > 63) + return -EINVAL; + bind = gprs_ns2_ip_bind_by_sockaddr(nsi, local); if (bind) { if (result) @@ -361,8 +364,7 @@ if (dscp > 0) { priv->dscp = dscp; - rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, - &dscp, sizeof(dscp)); + rc = osmo_sock_set_dscp(priv->fd.fd, dscp); if (rc < 0) LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", dscp, rc, errno); diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 1ef22f5..c390423 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -679,7 +679,7 @@ } DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, - "dscp <0-255>", + "dscp <0-63>", "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") { struct vty_bind *vbind = vty->index; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64fee56b04d0ecd128bf661699d5071817ea96ec Gerrit-Change-Number: 23921 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 09:28:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 09:28:10 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 ) Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP Related: SYS#5427 Change-Id: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- M common/chapters/bibliography.adoc A common/chapters/qos-dscp-pcp.adoc 2 files changed, 164 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/26/23926/1 diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc index df69c44..8e08ba3 100644 --- a/common/chapters/bibliography.adoc +++ b/common/chapters/bibliography.adoc @@ -176,6 +176,9 @@ https://tools.ietf.org/html/rfc1350 - [[[ietf-rfc2131]]] IETF RFC 2131: Dynamic Host Configuration Protocol https://tools.ietf.org/html/rfc2131 +- [[[ietf-rfc2474]]] IETF RFC 2474: Definition of the Differentiated Services Field (DS Field) in the IPv44 + and IPv6 Headers + https://tools.ietf.org/html/rfc2474 - [[[ietf-rfc2719]]] IETF RFC 2719: Signal Transport over IP https://tools.ietf.org/html/rfc2719 - [[[ietf-rfc3331]]] IETF RFC 3331: Message Transfer Part 2 User Adaptation Layer diff --git a/common/chapters/qos-dscp-pcp.adoc b/common/chapters/qos-dscp-pcp.adoc new file mode 100644 index 0000000..a9233e3 --- /dev/null +++ b/common/chapters/qos-dscp-pcp.adoc @@ -0,0 +1,161 @@ +[[qos-dscp-pcp]] +== QoS, DCSP/TOS, Prioirty and IEEE 802.1q PCP + +In many use cases operators want to apply different QoS classes for user plane +vs. control plane traffic. IP Routers, Ethernet switches and other network gear +can then perform intelligent queue management as required for the respective service. + +For example, voice user plane frames need a rather stable and short latency, +while IP user plane and control plane traffic has less critical latency requirements. + +=== IP Level (DSCP) + +At IP level, different priorities / classes of traffic are expressed +in accordance to <> by the DSCP (Differentiated Services Code +Point) field of the IP header. DSCP resembles the upper 6 bits of the +field formerly known as the TOS bits as per <>. + +On Linux and other operating systems with BSD-style sockets API, the +applications can request a specific DSCP value to be used for packets +generated by those sockets. + +Osmocom CNI software such as osmo-bts and osmo-mgw support setting the +DSCP value via VTY commands, see e.g. the `rtp ip-dscp` setting of the +`bts` node in osmo-bts. + + +=== Packet Priority + +In the Linux network stack, every packet is represented by `struct +sk_buff`, which has an associated _priority_. Furthermore, every socket +through which applications send data have an associated _socket +priority_. Each time a packet is transmitted through a given socket, +the packet inherits the packet priority from the socket priority. + +Furthermore, there is a mapping table that maps DSCP/TOS bits to +priority. The sixteen different TOS bit values are mapped to priority +values as follows: + +.Linux kernel default DSCP/TOS -> priority mapping +[options="header",width="50%"] +|=== +|TOS (binary)|DSCP (binary)|Priority (decimal) +|xxx0000x|xxx000|0 +|xxx0001x|xxx000|0 +|xxx0010x|xxx001|0 +|xxx0011x|xxx001|0 +|xxx0100x|xxx010|2 +|xxx0101x|xxx010|2 +|xxx0110x|xxx011|2 +|xxx0111x|xxx011|2 +|xxx1000x|xxx100|6 +|xxx1001x|xxx100|6 +|xxx1010x|xxx101|6 +|xxx1011x|xxx101|6 +|xxx1100x|xxx110|4 +|xxx1101x|xxx110|4 +|xxx1110x|xxx111|4 +|xxx1111x|xxx111|4 +|=== + +This table of default DSCP/TOS -> priority bit mappings cannot be +modified. + +However, the per-packet _priority_ values can be set by various means +of network policy, including + +* by packet filter rules (iptables, ip6tables, nftables) +** if you use `iptables`, using `CLASSIFY --set-class` in the `mangle` table +** if you use `nftables`, using `meta priority set` in the `mangle` table +* by the application using the SO_PRIORITY socket option (currently not yet supported by Osmocom CNI) + + +=== Ethernet Level (PCP) + +At Ethernet level, different priorities / QoS classes are expressed by +the so-called PCP (Priority Code Point) field in the IEEE 802.1q (VLAN) +header. + +NOTE:: This means that PCP functionality requires the use of IEEE 802.q +VLAN. You cannot use PCP without VLAN + +The Linux kernel assigns IEEE 802.1q PCP bits based on a _mapping_ +between the _priority_ and the PCP value. Each VLAN network device +maintains a separate map for both egress (transmit) and ingress +(receive) path. + +The current priority mappings can be inspected via the `/proc` +filesystem. For example, if you have a VLAN device `eth0.9` for +VLAN ID 9 on the net-device `eth0`, you can use the following example: + +.Example: Inspecting the current egress QoS map +---- +$ sudo cat /proc/net/vlan/eth0.9<1> +eth0.9 VID: 9 REORDER_HDR: 1 dev->priv_flags: 1021 + total frames received 123340 + total bytes received 40668066 + Broadcast/Multicast Rcvd 1106 + + total frames transmitted 10499 + total bytes transmitted 1570809 +Device: eth0 +INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 <2> + EGRESS priority mappings: <3> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9` +<2> ingress priority mappings (all PCP values mapped to priority 0) +<3> egress priority mappings (empty) + +As we can see in the above example, there are no egress priority +mappings yet. Let's create three new mappings, mapping _priority_ +value 1 to PCP 1, _priority_ 2 to PCP 2, and _priority_ 3 to PCP 3: + +.Example: Creating three new egress QoS mappings +---- +$ sudo ip link set dev eth0.9<1> type vlan egress-qos-map 1:1 2:2 3:3 <2> +$ sudo cat /proc/net/vlan/eth0.9 <3> +eth0.9 VID: 9 REORDER_HDR: 1 dev->priv_flags: 1021 + total frames received 123898 + total bytes received 40843611 + Broadcast/Multicast Rcvd 1106 + + total frames transmitted 10517 + total bytes transmitted 1574357 +Device: eth0 +INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 + EGRESS priority mappings: 1:1 2:2 3:3 <4> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9` +<2> command to define three new egress QoS maps +<3> command to re-display the current status +<4> three new egress mappings are shown as given in `ip` command + +NOTE:: The settings of the `ip` command are volatile and only active until +the next reboot (or the network device or VLAN is removed). Please refer to +the documentation of your specific Linux distribution in order to find out how +to make such settings persistent by means of an `ifup` hook whenever the interface +comes up. For CentOS/RHEL 8 this can e.g. be achieved by means of an `/sbin/ifup-local +script` (when using `network-scripts` and not NetworkManager). For Debian or Ubuntu, +this typically involves adding `up` lines to `/etc/network/interfaces` or a `/etc/network/if-up.d` +script. + + +=== Putting things together + +Assuming one needs to set both the DSCP bits as well as the PCP for +certain traffic, the above-mentioned mechanisms need to be combined as +follows: + +. configure the osmocom program to set the DSCP value +. use the default DSCP -> priority mapping, if possible +. configure an egrees QoS map to map from priority to PCP + +If the desired combination of DSCP + PCP cannot be achieved that way, +due to the rather static default kernel mapping table, one needs to go +one step further: + +. configure the osmocom program to set the DSCP value +. use packet filter rules to set the priority based on DSCP +. configure an egrees QoS map to map from priority to PCP + +include::{srcdir}/chapters/qos-example.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 Gerrit-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 Apr 28 09:29:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 09:29:15 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... manual: Include QoS chapter and add osmo-bts specific example Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmobts-usermanual.adoc 2 files changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/23927/1 diff --git a/doc/manuals/chapters/qos-example.adoc b/doc/manuals/chapters/qos-example.adoc new file mode 100644 index 0000000..b8c32df --- /dev/null +++ b/doc/manuals/chapters/qos-example.adoc @@ -0,0 +1,52 @@ +==== Full example of QoS for osmo-bts uplink QoS + +In the below example we will show the full set of configuration required +for both DSCP and PCP differentiation of uplink Abis traffic by osmo-bts. + +What we want to achieve in this example is the following configuration: + +.DSCP and PCP assignments for osmo-bts uplink traffic in this example +[options="header",width="30%",cols="2,1,1"] +|=== +|Traffic |DSCP|PCP +|A-bis RSL | 56| 7 +|A-bis RTP | 46| 6 +|A-bis OML | 34| 5 +|=== + +. configure the osmocom program to set the DSCP value + * osmo-bts.cfg: `rtp ip dscp 46` in `bts` vty node + * osmo-bts.cfg: `rsl ip dscp 56` in `bts` vty node + * osmo-bts.cfg: `oml ip dscp 34` in `bts` vty node +. use a packet filter rule to set the priority based on DSCP +. configure an egrees QoS map to map from priority to PCP + +.Example Step 2: iptables rules to map from DSCP values to priority values +---- +$ sudo iptables -t mangle -I OUTPUT -m dscp --dscp 56 -j CLASSIFY --set-class 7 +$ sudo iptables -t mangle -I OUTPUT -m dscp --dscp 46 -j CLASSIFY --set-class 6 +$ sudo iptables -t mangle -I OUTPUT -m dscp --dscp 34 -j CLASSIFY --set-class 5 +---- + +NOTE:: The above-mentioned `iptables` commands only insert the rules +into the Linux kernel. They are volatile and will be gone on next boot. +It is up to you to ensure they are re-installed at every boot, e.g. by +some kind of init script, systemd unit file, or packet filter rule +management software like firewalld, ufw, ... + +.Example Step 3: egress QoS map to map from DSCP values to priority values +---- +$ sudo ip link set dev eth0.9<1> type vlan egress-qos-map 0:0 1:1 5:5 6:6 7:7 <2> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9`. +<2> create a egress QoS map that maps the priority value 1:1 to the PCP. We also include the + mapping 1:1 from the osmo-pcu example (see <>) here. + +NOTE:: The settings of the `ip` command are volatile and only active until +the next reboot (or the network device or VLAN is removed). Please refer to +the documentation of your specific Linux distribution in order to find out how +to make such settings persistent by means of an `ifup` hook whenever the interface +comes up. For CentOS/RHEL 8 this can e.g. be achieved by means of an `/sbin/ifup-local +script` (when using `network-scripts` and not NetworkManager). For Debian or Ubuntu, +this typically involves adding `up` lines to `/etc/network/interfaces` or a `/etc/network/if-up.d` +script. diff --git a/doc/manuals/osmobts-usermanual.adoc b/doc/manuals/osmobts-usermanual.adoc index b1b0747..9ef4960 100644 --- a/doc/manuals/osmobts-usermanual.adoc +++ b/doc/manuals/osmobts-usermanual.adoc @@ -30,6 +30,8 @@ include::{srcdir}/chapters/architecture.adoc[] +include::./common/chapters/qos-dscp-pcp.adoc[] + include::./common/chapters/vty_cpu_sched.adoc[] include::./common/chapters/trx_if.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-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 Apr 28 09:32:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 09:32:04 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP 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/+/23926 to look at the new patch set (#2). Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP Related: SYS#5427 Change-Id: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- M common/chapters/bibliography.adoc A common/chapters/qos-dscp-pcp.adoc 2 files changed, 164 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/26/23926/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 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 Apr 28 09:32:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 09:32:41 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP 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/+/23926 to look at the new patch set (#3). Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP Related: SYS#5427 Change-Id: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- M common/chapters/bibliography.adoc A common/chapters/qos-dscp-pcp.adoc 2 files changed, 164 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/26/23926/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 09:51:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 09:51:00 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP 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/+/23926 to look at the new patch set (#4). Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP Related: SYS#5427 Change-Id: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- M common/chapters/bibliography.adoc M common/chapters/glossary.adoc A common/chapters/qos-dscp-pcp.adoc 3 files changed, 175 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/26/23926/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 09:51:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 09:51:00 +0000 Subject: Change in osmo-gsm-manuals[master]: bibliography: Re-introduce RFC768 (UDP) References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23928 ) Change subject: bibliography: Re-introduce RFC768 (UDP) ...................................................................... bibliography: Re-introduce RFC768 (UDP) It's unclear why it was removed in I5fe6263ac666e41cbe34407f09e9023aafa57d2c when common/chapters/glossary.adoc of this very same repository uses it. Change-Id: Ib8d2f22450a84ed802b34845ad19a7af8d6b7968 --- M common/chapters/bibliography.adoc 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/28/23928/1 diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc index df69c44..11152c5 100644 --- a/common/chapters/bibliography.adoc +++ b/common/chapters/bibliography.adoc @@ -166,6 +166,8 @@ system for telecommunication application providers https://www.etsi.org/deliver/etsi_ts/101200_101299/101220/12.00.00_60/ts_101220v120000p.pdf +- [[[ietf-rfc768]]] IETF RFC 768: User Datagram Protocol + https://tools.ietf.org/html/rfc768 - [[[ietf-rfc791]]] IETF RFC 791: Internet Protocol https://tools.ietf.org/html/rfc791 - [[[ietf-rfc793]]] IETF RFC 793: Transmission Control Protocol -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23928 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: Ib8d2f22450a84ed802b34845ad19a7af8d6b7968 Gerrit-Change-Number: 23928 Gerrit-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 Apr 28 09:53:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 09:53:24 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP 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/+/23926 to look at the new patch set (#5). Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP Related: SYS#5427 Change-Id: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- M common/chapters/bibliography.adoc M common/chapters/glossary.adoc A common/chapters/qos-dscp-pcp.adoc A tests/chapters/qos-example.adoc 4 files changed, 178 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/26/23926/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 Gerrit-PatchSet: 5 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 Apr 28 09:53:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 09:53:32 +0000 Subject: Change in osmo-gsm-manuals[master]: bibliography: Re-introduce RFC768 (UDP) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23928 ) Change subject: bibliography: Re-introduce RFC768 (UDP) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23928 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: Ib8d2f22450a84ed802b34845ad19a7af8d6b7968 Gerrit-Change-Number: 23928 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 09:53: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 Apr 28 09:53:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 09:53:35 +0000 Subject: Change in osmo-gsm-manuals[master]: bibliography: Re-introduce RFC768 (UDP) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23928 ) Change subject: bibliography: Re-introduce RFC768 (UDP) ...................................................................... bibliography: Re-introduce RFC768 (UDP) It's unclear why it was removed in I5fe6263ac666e41cbe34407f09e9023aafa57d2c when common/chapters/glossary.adoc of this very same repository uses it. Change-Id: Ib8d2f22450a84ed802b34845ad19a7af8d6b7968 --- M common/chapters/bibliography.adoc 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc index df69c44..11152c5 100644 --- a/common/chapters/bibliography.adoc +++ b/common/chapters/bibliography.adoc @@ -166,6 +166,8 @@ system for telecommunication application providers https://www.etsi.org/deliver/etsi_ts/101200_101299/101220/12.00.00_60/ts_101220v120000p.pdf +- [[[ietf-rfc768]]] IETF RFC 768: User Datagram Protocol + https://tools.ietf.org/html/rfc768 - [[[ietf-rfc791]]] IETF RFC 791: Internet Protocol https://tools.ietf.org/html/rfc791 - [[[ietf-rfc793]]] IETF RFC 793: Transmission Control Protocol -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23928 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: Ib8d2f22450a84ed802b34845ad19a7af8d6b7968 Gerrit-Change-Number: 23928 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 Apr 28 09:59:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 09:59:39 +0000 Subject: Change in osmo-bts[master]: common/pcu_sock: comment out {dl, ul}_tbf_ext related warnings In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23918 ) Change subject: common/pcu_sock: comment out {dl,ul}_tbf_ext related warnings ...................................................................... Patch Set 2: Code-Review-1 (1 comment) I would rather verify first what's going on before changing this. https://gerrit.osmocom.org/c/osmo-bts/+/23918/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/23918/2//COMMIT_MSG at 9 PS2, Line 9: Unfortunately, endianness is a weak point in the design of PDUIF: PCUIF -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iebf9961cffbd7aa20b263f7dc0016a44782dec60 Gerrit-Change-Number: 23918 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 09:59: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 Wed Apr 28 10:05:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:05:03 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor parse_rsp(), fix compilation warnings In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23917 ) Change subject: osmo-bts-trx: refactor parse_rsp(), fix compilation warnings ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia10adf7d76abe9a423b07e828852fbfb53b95125 Gerrit-Change-Number: 23917 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:05: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 Apr 28 10:07:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:07:56 +0000 Subject: Change in osmo-bts[master]: common/abis: fix the use of deprecated e1inp_line_get() API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23919 ) Change subject: common/abis: fix the use of deprecated e1inp_line_get() API ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23919/2/src/common/abis.c File src/common/abis.c: https://gerrit.osmocom.org/c/osmo-bts/+/23919/2/src/common/abis.c at 284 PS2, Line 284: if (line) { I think it's fine not using curly braces here, are you sure they are needed? BTW, the macros look weird, why do they have a ";" at the end? they should afaiu (I think I may have writen them myself lol): """ #define e1inp_line_get2(line, USE) OSMO_ASSERT( osmo_use_count_get_put(&(line)->use_count, USE, 1) == 0 ); #define e1inp_line_put2(line, USE) OSMO_ASSERT( osmo_use_count_get_put(&(line)->use_count, USE, -1) == 0 ); """ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I41a5fd13a7fa40e16bcf1a8099624b654274cee3 Gerrit-Change-Number: 23919 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:07: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 Wed Apr 28 10:08:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:08:23 +0000 Subject: Change in osmo-bts[master]: common/abis: fix the use of deprecated e1inp_line_get() API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23919 ) Change subject: common/abis: fix the use of deprecated e1inp_line_get() API ...................................................................... Patch Set 2: In any case, if you use braces in one if, you should also use them in the else -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I41a5fd13a7fa40e16bcf1a8099624b654274cee3 Gerrit-Change-Number: 23919 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:08:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 10:10:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:10:11 +0000 Subject: Change in osmo-bts[master]: common/abis: fix the use of deprecated e1inp_line_get() API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23919 ) Change subject: common/abis: fix the use of deprecated e1inp_line_get() API ...................................................................... Patch Set 2: ok indeed, those braces may be needed. It may be a good idea to wrap OSMO_ASSERT into a "do { if() {} } while(0)", otherwise that looks really prone to error! -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I41a5fd13a7fa40e16bcf1a8099624b654274cee3 Gerrit-Change-Number: 23919 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:10: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 Apr 28 10:10:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:10:56 +0000 Subject: Change in osmo-bts[master]: vty: fix the use of deprecated osmo_bts_feature_name() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23916 ) Change subject: vty: fix the use of deprecated osmo_bts_feature_name() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba Gerrit-Change-Number: 23916 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:10:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 10:11:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:11:33 +0000 Subject: Change in osmo-bts[master]: vty: fix the use of deprecated osmo_bts_feature_name() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23916 ) Change subject: vty: fix the use of deprecated osmo_bts_feature_name() ...................................................................... Patch Set 2: Next time please put "> ${current_version}" in there, that's what really helps me instead of having to look for specific commits or gerrit patches and figuring out the version. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba Gerrit-Change-Number: 23916 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:11:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 10:12:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 10:12:01 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP 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/+/23926 to look at the new patch set (#6). Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP Related: SYS#5427 Change-Id: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- M common/chapters/bibliography.adoc M common/chapters/glossary.adoc A common/chapters/qos-dscp-pcp.adoc M tests/Makefile.am A tests/chapters/qos-example.adoc 5 files changed, 179 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/26/23926/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 Gerrit-PatchSet: 6 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 Apr 28 10:16:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 10:16:30 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 ) Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 10:16:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 10:16:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 10:16:32 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 ) Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP Related: SYS#5427 Change-Id: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- M common/chapters/bibliography.adoc M common/chapters/glossary.adoc A common/chapters/qos-dscp-pcp.adoc M tests/Makefile.am A tests/chapters/qos-example.adoc 5 files changed, 179 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc index 11152c5..06b1fb4 100644 --- a/common/chapters/bibliography.adoc +++ b/common/chapters/bibliography.adoc @@ -166,6 +166,9 @@ system for telecommunication application providers https://www.etsi.org/deliver/etsi_ts/101200_101299/101220/12.00.00_60/ts_101220v120000p.pdf +- [[[ieee-802.1q]]] IEEE 802.1Q: Bridges and Bridged Networks + https://ieeexplore.ieee.org/document/6991462 + - [[[ietf-rfc768]]] IETF RFC 768: User Datagram Protocol https://tools.ietf.org/html/rfc768 - [[[ietf-rfc791]]] IETF RFC 791: Internet Protocol @@ -178,6 +181,9 @@ https://tools.ietf.org/html/rfc1350 - [[[ietf-rfc2131]]] IETF RFC 2131: Dynamic Host Configuration Protocol https://tools.ietf.org/html/rfc2131 +- [[[ietf-rfc2474]]] IETF RFC 2474: Definition of the Differentiated Services Field (DS Field) in the IPv44 + and IPv6 Headers + https://tools.ietf.org/html/rfc2474 - [[[ietf-rfc2719]]] IETF RFC 2719: Signal Transport over IP https://tools.ietf.org/html/rfc2719 - [[[ietf-rfc3331]]] IETF RFC 3331: Message Transfer Part 2 User Adaptation Layer diff --git a/common/chapters/glossary.adoc b/common/chapters/glossary.adoc index 23c7273..20794a1 100644 --- a/common/chapters/glossary.adoc +++ b/common/chapters/glossary.adoc @@ -81,6 +81,8 @@ downlink:: Direction of messages / signals from the network core towards the mobile phone +DSCP:: + Diffrentiated Services Code Point (_IETF RFC 2474_ <> DSP:: Digital Signal Processor dvnixload:: @@ -264,6 +266,8 @@ Point Code; an address in MTP PCH:: Paging Channel on downlink Um interface; used by network to page an MS +PCP:: + Priority Code Point (_IEEE 802.1Q_ <>) PCU:: Packet Control Unit; used to manage Layer 2 of the GPRS radio interface PDCH:: @@ -354,6 +358,8 @@ Transmission Control Protocol; (_IETF RFC 793_ <>) TFTP:: Trivial File Transfer Protocol; (_IETF RFC 1350_ <>) +TOS:: + Type Of Service; bit-field in IPv4 header, now re-used as DSCP (_IETF RFC 791_ <>) VLR:: Visitor Location Register; volatile storage of attached subscribers in the MSC diff --git a/common/chapters/qos-dscp-pcp.adoc b/common/chapters/qos-dscp-pcp.adoc new file mode 100644 index 0000000..3f97941 --- /dev/null +++ b/common/chapters/qos-dscp-pcp.adoc @@ -0,0 +1,161 @@ +[[qos-dscp-pcp]] +== QoS, DSCP/TOS, Priority and IEEE 802.1q PCP + +In many use cases operators want to apply different QoS classes for user plane +vs. control plane traffic. IP Routers, Ethernet switches and other network gear +can then perform intelligent queue management as required for the respective service. + +For example, voice user plane frames need a rather stable and short latency, +while IP user plane and control plane traffic has less critical latency requirements. + +=== IP Level (DSCP) + +At IP level, different priorities / classes of traffic are expressed +in accordance to <> by the DSCP (Differentiated Services Code +Point) field of the IP header. DSCP resembles the upper 6 bits of the +field formerly known as the TOS bits as per <>. + +On Linux and other operating systems with BSD-style sockets API, the +applications can request a specific DSCP value to be used for packets +generated by those sockets. + +Osmocom CNI software such as osmo-bts and osmo-mgw support setting the +DSCP value via VTY commands, see e.g. the `rtp ip-dscp` setting of the +`bts` node in osmo-bts. + + +=== Packet Priority + +In the Linux network stack, every packet is represented by `struct +sk_buff`, which has an associated _priority_. Furthermore, every socket +through which applications send data have an associated _socket +priority_. Each time a packet is transmitted through a given socket, +the packet inherits the packet priority from the socket priority. + +Furthermore, there is a mapping table that maps DSCP/TOS bits to +priority. The sixteen different TOS bit values are mapped to priority +values as follows: + +.Linux kernel default DSCP/TOS -> priority mapping +[options="header",width="50%"] +|=== +|TOS (binary)|DSCP (binary)|Priority (decimal) +|xxx0000x|xxx000|0 +|xxx0001x|xxx000|0 +|xxx0010x|xxx001|0 +|xxx0011x|xxx001|0 +|xxx0100x|xxx010|2 +|xxx0101x|xxx010|2 +|xxx0110x|xxx011|2 +|xxx0111x|xxx011|2 +|xxx1000x|xxx100|6 +|xxx1001x|xxx100|6 +|xxx1010x|xxx101|6 +|xxx1011x|xxx101|6 +|xxx1100x|xxx110|4 +|xxx1101x|xxx110|4 +|xxx1110x|xxx111|4 +|xxx1111x|xxx111|4 +|=== + +This table of default DSCP/TOS -> priority bit mappings cannot be +modified. + +However, the per-packet _priority_ values can be set by various means +of network policy, including + +* by packet filter rules (iptables, ip6tables, nftables) +** if you use `iptables`, using `CLASSIFY --set-class` in the `mangle` table +** if you use `nftables`, using `meta priority set` in the `mangle` table +* by the application using the SO_PRIORITY socket option (currently not yet supported by Osmocom CNI) + + +=== Ethernet Level (PCP) + +At Ethernet level, different priorities / QoS classes are expressed by +the so-called PCP (Priority Code Point) field in the IEEE 802.1q (VLAN) +header. + +NOTE:: This means that PCP functionality requires the use of IEEE 802.q +VLAN. You cannot use PCP without VLAN + +The Linux kernel assigns IEEE 802.1q PCP bits based on a _mapping_ +between the _priority_ and the PCP value. Each VLAN network device +maintains a separate map for both egress (transmit) and ingress +(receive) path. + +The current priority mappings can be inspected via the `/proc` +filesystem. For example, if you have a VLAN device `eth0.9` for +VLAN ID 9 on the net-device `eth0`, you can use the following example: + +.Example: Inspecting the current egress QoS map +---- +$ sudo cat /proc/net/vlan/eth0.9<1> +eth0.9 VID: 9 REORDER_HDR: 1 dev->priv_flags: 1021 + total frames received 123340 + total bytes received 40668066 + Broadcast/Multicast Rcvd 1106 + + total frames transmitted 10499 + total bytes transmitted 1570809 +Device: eth0 +INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 <2> + EGRESS priority mappings: <3> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9` +<2> ingress priority mappings (all PCP values mapped to priority 0) +<3> egress priority mappings (empty) + +As we can see in the above example, there are no egress priority +mappings yet. Let's create three new mappings, mapping _priority_ +value 1 to PCP 1, _priority_ 2 to PCP 2, and _priority_ 3 to PCP 3: + +.Example: Creating three new egress QoS mappings +---- +$ sudo ip link set dev eth0.9<1> type vlan egress-qos-map 1:1 2:2 3:3 <2> +$ sudo cat /proc/net/vlan/eth0.9 <3> +eth0.9 VID: 9 REORDER_HDR: 1 dev->priv_flags: 1021 + total frames received 123898 + total bytes received 40843611 + Broadcast/Multicast Rcvd 1106 + + total frames transmitted 10517 + total bytes transmitted 1574357 +Device: eth0 +INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 + EGRESS priority mappings: 1:1 2:2 3:3 <4> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9` +<2> command to define three new egress QoS maps +<3> command to re-display the current status +<4> three new egress mappings are shown as given in `ip` command + +NOTE:: The settings of the `ip` command are volatile and only active until +the next reboot (or the network device or VLAN is removed). Please refer to +the documentation of your specific Linux distribution in order to find out how +to make such settings persistent by means of an `ifup` hook whenever the interface +comes up. For CentOS/RHEL 8 this can e.g. be achieved by means of an `/sbin/ifup-local +script` (when using `network-scripts` and not NetworkManager). For Debian or Ubuntu, +this typically involves adding `up` lines to `/etc/network/interfaces` or a `/etc/network/if-up.d` +script. + + +=== Putting things together + +Assuming one needs to set both the DSCP bits as well as the PCP for +certain traffic, the above-mentioned mechanisms need to be combined as +follows: + +. configure the osmocom program to set the DSCP value +. use the default DSCP -> priority mapping, if possible +. configure an egrees QoS map to map from priority to PCP + +If the desired combination of DSCP + PCP cannot be achieved that way, +due to the rather static default kernel mapping table, one needs to go +one step further: + +. configure the osmocom program to set the DSCP value +. use packet filter rules to set the priority based on DSCP +. configure an egrees QoS map to map from priority to PCP + +include::{srcdir}/chapters/qos-example.adoc[] diff --git a/tests/Makefile.am b/tests/Makefile.am index 1be6308..784f61f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -4,6 +4,7 @@ vty \ test2-vty-reference.xml \ vty-test2 \ + chapters \ $(NULL) # Do not install any of the test pdfs diff --git a/tests/chapters/qos-example.adoc b/tests/chapters/qos-example.adoc new file mode 100644 index 0000000..d398243 --- /dev/null +++ b/tests/chapters/qos-example.adoc @@ -0,0 +1,3 @@ +=== QoS example for example manual + +Quite exemplary. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 10:16:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 10:16:36 +0000 Subject: Change in osmo-pcu[master]: manual: Include QoS chapter and add osmo-pcu specific example References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23929 ) Change subject: manual: Include QoS chapter and add osmo-pcu specific example ...................................................................... manual: Include QoS chapter and add osmo-pcu specific example Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmopcu-usermanual.adoc 2 files changed, 49 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/29/23929/1 diff --git a/doc/manuals/chapters/qos-example.adoc b/doc/manuals/chapters/qos-example.adoc new file mode 100644 index 0000000..dcbba2a --- /dev/null +++ b/doc/manuals/chapters/qos-example.adoc @@ -0,0 +1,47 @@ +==== Full example of QoS for osmo-pcu uplink QoS + +In the below example we will show the full set of configuration required +for both DSCP and PCP differentiation of uplink Gb traffic by osmo-pcu. + +What we want to achieve in this example is the following configuration: + +.DSCP and PCP assignments for osmo-bts uplink traffic in this example +[options="header",width="30%",cols="2,1,1"] +|=== +|Traffic |DSCP|PCP +|Gb (NS) | 10| 1 +|=== + +. configure the osmocom program to set the DSCP value + * osmo-pcu.cfg: `dscp 10` in `udp bind` vty node +. use a packet filter rule to set the priority based on DSCP +. configure an egrees QoS map to map from priority to PCP + +.Example Step 2: iptables rules to map from DSCP values to priority values +---- +$ sudo iptables -t mangle -I OUTPUT -m dscp --dscp 10 -j CLASSIFY --set-class 1 +---- + +NOTE:: The above-mentioned `iptables` commands only insert the rules +into the Linux kernel. They are volatile and will be gone on next boot. +It is up to you to ensure they are re-installed at every boot, e.g. by +some kind of init script, systemd unit file, or packet filter rule +management software like firewalld, ufw, ... + +.Example Step 3: egress QoS map to map from DSCP values to priority values +---- +$ sudo ip link set dev eth0.9<1> type vlan egress-qos-map 0:0 1:1 5:5 6:6 7:7 <2> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9`. +<2> create a egress QoS map that maps the priority value 1:1 to the PCP. We also + include the mappings for 5, 6, and 7 from the osmo-bts example here (see + <>). + +NOTE:: The settings of the `ip` command are volatile and only active until +the next reboot (or the network device or VLAN is removed). Please refer to +the documentation of your specific Linux distribution in order to find out how +to make such settings persistent by means of an `ifup` hook whenever the interface +comes up. For CentOS/RHEL 8 this can e.g. be achieved by means of an `/sbin/ifup-local +script` (when using `network-scripts` and not NetworkManager). For Debian or Ubuntu, +this typically involves adding `up` lines to `/etc/network/interfaces` or a `/etc/network/if-up.d` +script. diff --git a/doc/manuals/osmopcu-usermanual.adoc b/doc/manuals/osmopcu-usermanual.adoc index e202e33..0fae72a 100644 --- a/doc/manuals/osmopcu-usermanual.adoc +++ b/doc/manuals/osmopcu-usermanual.adoc @@ -21,6 +21,8 @@ include::./common/chapters/gb.adoc[] +include::./common/chapters/qos-dscp-pcp.adoc[] + include::./common/chapters/vty_cpu_sched.adoc[] include::./common/chapters/port_numbers.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Gerrit-Change-Number: 23929 Gerrit-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 Apr 28 10:16:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 10:16:37 +0000 Subject: Change in osmo-pcu[master]: manual: remove revhistory, as we don't maintain it manually anyyway References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23930 ) Change subject: manual: remove revhistory, as we don't maintain it manually anyyway ...................................................................... manual: remove revhistory, as we don't maintain it manually anyyway Change-Id: Ibbe08cac143f4bff6192125940ef190cc943d307 --- M doc/manuals/osmopcu-gb-docinfo.xml M doc/manuals/osmopcu-usermanual-docinfo.xml M doc/manuals/osmopcu-vty-reference.xml 3 files changed, 0 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/30/23930/1 diff --git a/doc/manuals/osmopcu-gb-docinfo.xml b/doc/manuals/osmopcu-gb-docinfo.xml index 23ec3d1..782fb2f 100644 --- a/doc/manuals/osmopcu-gb-docinfo.xml +++ b/doc/manuals/osmopcu-gb-docinfo.xml @@ -1,15 +1,3 @@ - - - 0 - February 2016 - HW, MS - - Initial version, reflecting OsmoPCU master branch as on 2016-Mar-02 - (commit 22d7e75e1f160e5337140d9f3dcb2679b621b646). - - - - Max diff --git a/doc/manuals/osmopcu-usermanual-docinfo.xml b/doc/manuals/osmopcu-usermanual-docinfo.xml index ecc6742..78c8030 100644 --- a/doc/manuals/osmopcu-usermanual-docinfo.xml +++ b/doc/manuals/osmopcu-usermanual-docinfo.xml @@ -1,14 +1,3 @@ - - - 1 - February 13, 2016 - HW - - Initial version. - - - - Harald diff --git a/doc/manuals/osmopcu-vty-reference.xml b/doc/manuals/osmopcu-vty-reference.xml index f8c39ec..1ce9d23 100644 --- a/doc/manuals/osmopcu-vty-reference.xml +++ b/doc/manuals/osmopcu-vty-reference.xml @@ -11,14 +11,6 @@ - - - v1 - 5th March 2014 - hf - Initial version for 0.2-307 - - OsmoPCU VTY Reference -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibbe08cac143f4bff6192125940ef190cc943d307 Gerrit-Change-Number: 23930 Gerrit-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 Apr 28 10:16:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 10:16:37 +0000 Subject: Change in osmo-pcu[master]: manual: Update copyright years References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23931 ) Change subject: manual: Update copyright years ...................................................................... manual: Update copyright years Change-Id: Ia0dde7100dd90c6ad6279efbaf02b9bd3f868635 --- M doc/manuals/osmopcu-gb-docinfo.xml M doc/manuals/osmopcu-usermanual-docinfo.xml M doc/manuals/osmopcu-vty-reference.xml 3 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/31/23931/1 diff --git a/doc/manuals/osmopcu-gb-docinfo.xml b/doc/manuals/osmopcu-gb-docinfo.xml index 782fb2f..175be1c 100644 --- a/doc/manuals/osmopcu-gb-docinfo.xml +++ b/doc/manuals/osmopcu-gb-docinfo.xml @@ -24,7 +24,7 @@ - 2015-2016 + 2015-2021 sysmocom - s.f.m.c. GmbH diff --git a/doc/manuals/osmopcu-usermanual-docinfo.xml b/doc/manuals/osmopcu-usermanual-docinfo.xml index 78c8030..b7f9570 100644 --- a/doc/manuals/osmopcu-usermanual-docinfo.xml +++ b/doc/manuals/osmopcu-usermanual-docinfo.xml @@ -13,7 +13,7 @@ - 2013-2016 + 2013-2021 sysmocom - s.f.m.c. GmbH diff --git a/doc/manuals/osmopcu-vty-reference.xml b/doc/manuals/osmopcu-vty-reference.xml index 1ce9d23..9b1154a 100644 --- a/doc/manuals/osmopcu-vty-reference.xml +++ b/doc/manuals/osmopcu-vty-reference.xml @@ -15,7 +15,7 @@ OsmoPCU VTY Reference - 2014 + 2014-2021 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0dde7100dd90c6ad6279efbaf02b9bd3f868635 Gerrit-Change-Number: 23931 Gerrit-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 Apr 28 10:24:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:24:05 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 4: Code-Review-1 (3 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 571 PS4, Line 571: if (clock_gettime(CLOCK_MONOTONIC, &tp) != 0) { osmo_clock_gettime https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 580 PS4, Line 580: if (uptime_seconds < 0) { This cannot happen with a monotonic clock? Unless you run for crazy amount of years without reboot which seems not plausible. https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 586 PS4, Line 586: int downtime_seconds = BTS_DOWNTIME_SAMPLE_INTERVAL - uptime_seconds; There's something here I'm not really following. I have the impression the state will always end up being around 0. So every BTS_DOWNTIME_SAMPLE_INTERVAL you trigger the timer which calls this function bts_record_downtime(). Then you get now(), substract it from last_uptime_read and then substract BTS_DOWNTIME_SAMPLE_INTERVAL which would give always around0 (because you end up updating last_uptime_read at the end of the function). -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 4 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Wed, 28 Apr 2021 10:24: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 Wed Apr 28 10:26:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:26:12 +0000 Subject: Change in libosmocore[master]: socket: Introduce osmo_sock_set_priority() helper function In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23922 ) Change subject: socket: Introduce osmo_sock_set_priority() helper function ...................................................................... Patch Set 1: Code-Review+1 Interesting, I didn't know about this option. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I89abffcd125e6d073338a5c6437b9433220e1823 Gerrit-Change-Number: 23922 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:26: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 Apr 28 10:27:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:27:17 +0000 Subject: Change in osmo-bts[master]: Allow user to specify IP DSCP for OML and RSL, too In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23923 ) Change subject: Allow user to specify IP DSCP for OML and RSL, too ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic302a695453514459fa27400027154e7e8b74e0e Gerrit-Change-Number: 23923 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:27:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 10:28:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:28:46 +0000 Subject: Change in osmo-mgw[master]: TOS bits != DSCP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23924 ) Change subject: TOS bits != DSCP ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/23924/1/TODO-RELEASE File TODO-RELEASE: https://gerrit.osmocom.org/c/osmo-mgw/+/23924/1/TODO-RELEASE at 27 PS1, Line 27: update dependency to libosmocore for our use of osmo_sock_set_dscp() libosmocore > 1.5.1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Gerrit-Change-Number: 23924 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 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 Wed Apr 28 10:28:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:28:50 +0000 Subject: Change in osmo-mgw[master]: TOS bits != DSCP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23924 ) Change subject: TOS bits != DSCP ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Gerrit-Change-Number: 23924 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:28:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 10:30:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:30:03 +0000 Subject: Change in osmo-bsc[master]: Lb: RESET FSM: never send sccp_user == NULL In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23913 ) Change subject: Lb: RESET FSM: never send sccp_user == NULL ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23913/1/src/osmo-bsc/lb.c File src/osmo-bsc/lb.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23913/1/src/osmo-bsc/lb.c at 62 PS1, Line 62: LOGP(DRESET, LOGL_DEBUG, "Not sending RESET to SMLC, Lb link down\n"); > i chose debug to avoid spamming the info log with this repeated message (iirc every 5 seconds) Fine then. I wonder though, why is that path called every 5 seconds being the link down :P -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I13834c4e576e8d33e67cb63e222b41255cd94875 Gerrit-Change-Number: 23913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:30:03 +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 Wed Apr 28 10:34:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:34:18 +0000 Subject: Change in libosmocore[master]: fix comment for osmo_tdef_fsm_inst_state_chg default_timeout In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23925 ) Change subject: fix comment for osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23925/2/include/osmocom/core/tdef.h File include/osmocom/core/tdef.h: https://gerrit.osmocom.org/c/libosmocore/+/23925/2/include/osmocom/core/tdef.h at 163 PS2, Line 163: int _osmo_tdef_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t state, _osmo_tdef_fsm_inst_state_chg calls: "osmo_tdef_get(tdefs, t->T, OSMO_TDEF_S, default_timeout);" which contains: """ unsigned long osmo_tdef_get(const struct osmo_tdef *tdefs, int T, enum osmo_tdef_unit as_unit, long val_if_not_present) { const struct osmo_tdef *t = osmo_tdef_get_entry((struct osmo_tdef*)tdefs, T); if (!t) { OSMO_ASSERT(val_if_not_present >= 0); return val_if_not_present; } return osmo_tdef_round(t->val, t->unit, as_unit); } """ So yes, it asserts on -1 being passed. It's even documented there, and there's plenty of uses. So in summary, if someone passes "-1" to osmo_tdef_fsm_inst_state_chg, it will ASSERT if the timer is not found, which is the expected behavior. So please, don't drop that comment/use case. If at all, feel free to express it as "-1 casted to an unsigned long" or ULONG_MAX or whatever. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:34: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 Wed Apr 28 10:34:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:34:57 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23914 ) Change subject: Lb: add missing X12 timer configurability ...................................................................... Patch Set 1: See my comment in that patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:34:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 10:40:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:40:02 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc File doc/manuals/chapters/qos-example.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc at 33 PS1, Line 33: It is up to you to ensure they are re-installed at every boot, e.g. by up to the user? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:40: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 Wed Apr 28 10:42:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 10:42:55 +0000 Subject: Change in libosmocore[master]: socket: Introduce osmo_sock_set_priority() helper function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23922 ) Change subject: socket: Introduce osmo_sock_set_priority() helper function ...................................................................... Patch Set 1: > Interesting, I didn't know about this option. has been around for at least 20 years. It allows you to avoid having extra DSCP->(classify/priority/pcp) mappings in a packet filter ruleset. Also, settting the priority then directly impacts how packets are treated by a number of tc queue disciplines -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I89abffcd125e6d073338a5c6437b9433220e1823 Gerrit-Change-Number: 23922 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:42: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 Apr 28 10:43:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:43:36 +0000 Subject: Change in osmo-pcu[master]: manual: Include QoS chapter and add osmo-pcu specific example In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23929 ) Change subject: manual: Include QoS chapter and add osmo-pcu specific example ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Gerrit-Change-Number: 23929 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 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 Apr 28 10:43:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:43:50 +0000 Subject: Change in osmo-pcu[master]: manual: remove revhistory, as we don't maintain it manually anyyway In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23930 ) Change subject: manual: remove revhistory, as we don't maintain it manually anyyway ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibbe08cac143f4bff6192125940ef190cc943d307 Gerrit-Change-Number: 23930 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:43: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 Apr 28 10:43:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:43:59 +0000 Subject: Change in osmo-pcu[master]: manual: Update copyright years In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23931 ) Change subject: manual: Update copyright years ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0dde7100dd90c6ad6279efbaf02b9bd3f868635 Gerrit-Change-Number: 23931 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:43: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 Apr 28 10:44:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 10:44:40 +0000 Subject: Change in osmo-mgw[master]: TOS bits != DSCP In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 to look at the new patch set (#2). Change subject: TOS bits != DSCP ...................................................................... TOS bits != DSCP We have VTY options that allow to set the DSCP value. However, we then call a function to set the TOS bits in the kernel. This is very wrong. The DSCP is only the upper 6 bits of the 8-bit TOS value, and hence we are mussing that translation. As libosmocore now has a helper function osmo_sock_set_dscp(), let's make use of it and don't care about the low-level details. However, this means we need to finally remove the deprecated alias for "rtp ip-tos <0-255>". Closes: OS#5137 Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Depends: libosmocore.git Ia4ba389a5b7e3e9d5f17a742a900d6fd68c08e40 --- M TODO-RELEASE M doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg M doc/examples/osmo-mgw/osmo-mgw.cfg M doc/manuals/chapters/configuration.adoc M include/osmocom/mgcp/mgcp_network.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_vty.c 8 files changed, 9 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/24/23924/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Gerrit-Change-Number: 23924 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 10:45:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:45:32 +0000 Subject: Change in osmo-ggsn[master]: gtp: Improve logging of failing pdp ctx resolution from TEI/TID In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23862 ) Change subject: gtp: Improve logging of failing pdp ctx resolution from TEI/TID ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I4f2084ec7e3a830e0224dd998ff0fe6654cc23bd Gerrit-Change-Number: 23862 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10:45: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 Apr 28 10:45:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:45:34 +0000 Subject: Change in osmo-ggsn[master]: gtp: Rework parsing logic of UpdatePdpCtxResponse In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23860 ) Change subject: gtp: Rework parsing logic of UpdatePdpCtxResponse ...................................................................... gtp: Rework parsing logic of UpdatePdpCtxResponse The previous order of parsing lead to non-optimal information gathering when pushing events to upper layers. This patch rearranges parsing of packet data to always gather as much info as possible for the benefit of the upper layer. This way it can gather information such as the cause, which is important in the case of "Non-existent", since user should then drop the context. First we want to parse the recovery state, but delay cb to upper layers until we tried to gather the pdp ctx (meaning all except that pdp ctx should be freed). Second, we want to parse the cause, in order to know if there's an associated pdp ctx we can gather from TEID. Third, once we know if we should expect a meaningul TEID, parse it. Related: SYS#5435 Change-Id: Idd10b494e8fbac8703c49ecd8f9bbe4246e51c57 --- M gtp/gtp.c 1 file changed, 30 insertions(+), 19 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/gtp/gtp.c b/gtp/gtp.c index 701aa36..d0135b9 100644 --- a/gtp/gtp.c +++ b/gtp/gtp.c @@ -2324,26 +2324,20 @@ static int gtp_update_pdp_conf(struct gsn_t *gsn, uint8_t version, struct sockaddr_in *peer, void *pack, unsigned len) { - struct pdp_t *pdp; + struct pdp_t *pdp = NULL; union gtpie_member *ie[GTPIE_SIZE]; - uint8_t cause, recovery; + uint8_t cause = EOF; + uint8_t recovery; + int rc = 0; void *cbp = NULL; uint8_t type = 0; + bool trigger_recovery = false; int hlen = get_hlen(pack); /* Remove packet from queue */ if (gtp_conf(gsn, 0, peer, pack, len, &type, &cbp)) return EOF; - /* Find the context in question */ - if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { - gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, len, - "Unknown PDP context: %u\n", get_tei(pack)); - pdp = NULL; - goto err_out; - } - /* Decode information elements */ if (gtpie_decaps(ie, version, pack + hlen, len - hlen)) { gsn->invalid++; @@ -2352,19 +2346,34 @@ goto err_out; } + /* Extract recovery (optional) */ + if (!gtpie_gettv1(ie, GTPIE_RECOVERY, 0, &recovery)) + trigger_recovery = true; + /* Extract cause value (mandatory) */ if (gtpie_gettv1(ie, GTPIE_CAUSE, 0, &cause)) { goto err_missing; } - /* Extract recovery (optional) */ - if (!gtpie_gettv1(ie, GTPIE_RECOVERY, 0, &recovery)) { - emit_cb_recovery(gsn, peer, pdp, recovery); + /* 3GPP TS 29.060 sec 8.2: "Receiving node shall send back to the source + * of the message, a response with the appropriate cause value (either + * "Non-existent" or "Context not found"). The Tunnel Endpoint + * Identifier used in the response message shall be set to all zeroes." + * Hence, TEID=0 in this scenario, it makes no sense to infer PDP ctx + * from it. User is responsible to infer it from cbp */ + if (cause != GTPCAUSE_NON_EXIST && cause != GTPCAUSE_CONTEXT_NOT_FOUND) { + /* Find the context in question */ + if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { + gsn->err_unknownpdp++; + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: %u\n", get_tei(pack)); + goto err_out; + } } /* Check all conditional information elements */ /* TODO: This does not handle GGSN-initiated update responses */ - if (GTPCAUSE_ACC_REQ == cause) { + if (cause == GTPCAUSE_ACC_REQ) { if (version == 0) { if (gtpie_gettv0(ie, GTPIE_QOS_PROFILE0, 0, &pdp->qos_neg0, @@ -2416,18 +2425,20 @@ } } +generic_ret: + if (trigger_recovery) + emit_cb_recovery(gsn, peer, pdp, recovery); if (gsn->cb_conf) gsn->cb_conf(type, cause, pdp, cbp); - return 0; /* Succes */ + return rc; /* Succes */ err_missing: gsn->missing++; GTP_LOGPKG(LOGL_ERROR, peer, pack, len, "Missing information field\n"); err_out: - if (gsn->cb_conf) - gsn->cb_conf(type, EOF, pdp, cbp); - return EOF; + rc = EOF; + goto generic_ret; } /* API: Deprecated. Send Delete PDP Context Request And free pdp ctx. */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Idd10b494e8fbac8703c49ecd8f9bbe4246e51c57 Gerrit-Change-Number: 23860 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Wed Apr 28 10:45:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:45:35 +0000 Subject: Change in osmo-ggsn[master]: ggsn: Improve logging on incoming DL data packets In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 ) Change subject: ggsn: Improve logging on incoming DL data packets ...................................................................... ggsn: Improve logging on incoming DL data packets Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b --- M ggsn/ggsn.c 1 file changed, 33 insertions(+), 9 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/ggsn/ggsn.c b/ggsn/ggsn.c index bde7f4b..0cde543 100644 --- a/ggsn/ggsn.c +++ b/ggsn/ggsn.c @@ -593,7 +593,7 @@ struct iphdr *iph = (struct iphdr *)pack; struct ip6_hdr *ip6h = (struct ip6_hdr *)pack; struct ippool_t *pool; - char straddr[INET6_ADDRSTRLEN]; + char straddr[2][INET6_ADDRSTRLEN]; uint8_t pref_offset; switch (iph->version) { @@ -626,17 +626,41 @@ return 0; if (ippool_getip(pool, &ipm, &dst)) { - LOGTUN(LOGL_DEBUG, tun, "Received packet for APN(%s) with no PDP contex! (%s)\n", - apn->cfg.name, - iph->version == 4 ? - inet_ntop(AF_INET, &iph->saddr, straddr, sizeof(straddr)) : - inet_ntop(AF_INET6, &ip6h->ip6_src, straddr, sizeof(straddr))); + LOGTUN(LOGL_DEBUG, tun, "APN(%s) Rx DL data packet for IP address outside " + "pool of managed addresses: %s <- %s\n", + apn->cfg.name, + iph->version == 4 ? + inet_ntop(AF_INET, &iph->daddr, straddr[0], sizeof(straddr[0])) : + inet_ntop(AF_INET6, &ip6h->ip6_dst, straddr[0], sizeof(straddr[0])), + iph->version == 4 ? + inet_ntop(AF_INET, &iph->saddr, straddr[1], sizeof(straddr[1])) : + inet_ntop(AF_INET6, &ip6h->ip6_src, straddr[1], sizeof(straddr[1]))); return 0; } - LOGTUN(LOGL_DEBUG, tun, "Received packet for APN(%s)\n", apn->cfg.name); - if (ipm->peer) /* Check if a peer protocol is defined */ - gtp_data_req(apn->ggsn->gsn, (struct pdp_t *)ipm->peer, pack, len); + if (ipm->peer) { /* Check if a peer protocol is defined */ + struct pdp_t *pdp = (struct pdp_t *)ipm->peer; + LOGTUN(LOGL_DEBUG, tun, "APN(%s) Rx DL data packet for PDP(%s:%u): %s <- %s\n", + apn->cfg.name, + imsi_gtp2str(&(pdp)->imsi), (pdp)->nsapi, + iph->version == 4 ? + inet_ntop(AF_INET, &iph->daddr, straddr[0], sizeof(straddr[0])) : + inet_ntop(AF_INET6, &ip6h->ip6_dst, straddr[0], sizeof(straddr[0])), + iph->version == 4 ? + inet_ntop(AF_INET, &iph->saddr, straddr[1], sizeof(straddr[1])) : + inet_ntop(AF_INET6, &ip6h->ip6_src, straddr[1], sizeof(straddr[1]))); + gtp_data_req(apn->ggsn->gsn, pdp, pack, len); + } else { + LOGTUN(LOGL_DEBUG, tun, "APN(%s) Rx DL data packet for IP address with no " + "associated PDP Ctx: %s <- %s\n", + apn->cfg.name, + iph->version == 4 ? + inet_ntop(AF_INET, &iph->daddr, straddr[0], sizeof(straddr[0])) : + inet_ntop(AF_INET6, &ip6h->ip6_dst, straddr[0], sizeof(straddr[0])), + iph->version == 4 ? + inet_ntop(AF_INET, &iph->saddr, straddr[1], sizeof(straddr[1])) : + inet_ntop(AF_INET6, &ip6h->ip6_src, straddr[1], sizeof(straddr[1]))); + } return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b Gerrit-Change-Number: 23861 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 10:45:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:45:35 +0000 Subject: Change in osmo-ggsn[master]: gtp: Improve logging of failing pdp ctx resolution from TEI/TID In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/23862 ) Change subject: gtp: Improve logging of failing pdp ctx resolution from TEI/TID ...................................................................... gtp: Improve logging of failing pdp ctx resolution from TEI/TID Change-Id: I4f2084ec7e3a830e0224dd998ff0fe6654cc23bd --- M gtp/gtp.c 1 file changed, 31 insertions(+), 24 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/gtp/gtp.c b/gtp/gtp.c index d0135b9..547241d 100644 --- a/gtp/gtp.c +++ b/gtp/gtp.c @@ -2136,8 +2136,9 @@ /* Find the context in question */ if (gtp_pdp_tidget(gsn, &pdp, get_tid(pack))) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, - len, "Unknown PDP context\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: TID=0x%" PRIx64 "\n", + get_tid(pack)); return gtp_update_pdp_resp(gsn, version, peer, fd, pack, len, NULL, GTPCAUSE_NON_EXIST); @@ -2161,9 +2162,9 @@ /* Find the context in question */ if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, - pack, len, "Unknown PDP context: %u\n", - get_tei(pack)); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: TEI=0x%" PRIx32 "\n", + get_tei(pack)); return gtp_update_pdp_resp(gsn, version, peer, fd, pack, len, NULL, GTPCAUSE_NON_EXIST); @@ -2172,8 +2173,9 @@ /* Find the context in question */ if (gtp_pdp_getimsi(gsn, &pdp, imsi, nsapi)) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, - pack, len, "Unknown PDP context\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: IMSI=0x%" PRIx64 + " NSAPI=%" PRIu8 "\n", imsi, nsapi); return gtp_update_pdp_resp(gsn, version, peer, fd, pack, len, NULL, GTPCAUSE_NON_EXIST); @@ -2366,7 +2368,7 @@ if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { gsn->err_unknownpdp++; GTP_LOGPKG(LOGL_ERROR, peer, pack, len, - "Unknown PDP context: %u\n", get_tei(pack)); + "Unknown PDP context: TEI=0x%" PRIx32 "\n", get_tei(pack)); goto err_out; } } @@ -2603,7 +2605,7 @@ if (gtp_pdp_getgtp1(gsn, &linked_pdp, get_tei(pack))) { gsn->err_unknownpdp++; GTP_LOGPKG(LOGL_ERROR, peer, pack, len, - "Unknown PDP context: %u\n", get_tei(pack)); + "Unknown PDP context: TEI=0x%" PRIx32 "\n", get_tei(pack)); return gtp_delete_pdp_resp(gsn, version, peer, fd, pack, len, NULL, NULL, GTPCAUSE_NON_EXIST, teardown); @@ -2632,7 +2634,7 @@ if (gtpie_gettv1(ie, GTPIE_NSAPI, 0, &nsapi)) { gsn->missing++; GTP_LOGPKG(LOGL_ERROR, peer, pack, - len, "Missing mandatory information field\n"); + len, "Missing mandatory information field\n"); return gtp_delete_pdp_resp(gsn, version, peer, fd, pack, len, NULL, NULL, GTPCAUSE_MAN_IE_MISSING, @@ -2642,8 +2644,9 @@ /* Find the context in question */ if (gtp_pdp_getgtp1(gsn, &pdp, linked_pdp->secondary_tei[nsapi & 0x0f])) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, - len, "Unknown PDP context\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: Secondary TEI=0x%" PRIx32 "\n", + linked_pdp->secondary_tei[nsapi & 0x0f]); return gtp_delete_pdp_resp(gsn, version, peer, fd, pack, len, NULL, NULL, GTPCAUSE_NON_EXIST, @@ -2696,8 +2699,9 @@ if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { gsn->err_unknownpdp++; GTP_LOGPKG(LOGL_NOTICE, peer, pack, len, - "Unknown PDP context: %u (expected if gtp_delete_context_req is used or pdp ctx was freed manually before response)\n", - get_tei(pack)); + "Unknown PDP context: TEI=0x%" PRIx32 " (expected if " + "gtp_delete_context_req is used or pdp ctx was freed " + "manually before response)\n", get_tei(pack)); if (gsn->cb_conf) gsn->cb_conf(type, EOF, NULL, cbp); return EOF; @@ -2774,7 +2778,8 @@ if (gtp_pdp_tidget(gsn, &pdp, get_tid(pack))) { gsn->err_unknownpdp++; GTP_LOGPKG(LOGL_ERROR, peer, pack, len, - "Unknown PDP context\n"); + "Unknown PDP context: TID=0x%" PRIx64 "\n", + get_tid(pack)); return EOF; } } else if (version == 1) { @@ -2799,7 +2804,9 @@ if (gtp_pdp_getgtp1_peer_d(gsn, &pdp, peer, teid_gn)) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, len, "Unknown PDP context\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: Peer TEID=0x%" PRIx32 "\n", + teid_gn); return EOF; } } else { @@ -2830,22 +2837,22 @@ switch (version) { case 0: - if (gtp_pdp_getgtp0(gsn, &pdp, - ntoh16(((union gtp_packet *)pack)->gtp0.h.flow))) { + if (gtp_pdp_getgtp0(gsn, &pdp, get_tei(pack))) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, - len, "Unknown PDP context, GTPv0\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: TEI=0x%" PRIx32 "\n", + get_tei(pack)); return gtp_error_ind_resp(gsn, version, peer, fd, pack, len); } hlen = GTP0_HEADER_SIZE; break; case 1: - if (gtp_pdp_getgtp1(gsn, &pdp, - ntoh32(((union gtp_packet *)pack)->gtp1l.h.tei))) { + if (gtp_pdp_getgtp1(gsn, &pdp, get_tei(pack))) { gsn->err_unknownpdp++; - GTP_LOGPKG(LOGL_ERROR, peer, pack, - len, "Unknown PDP context, GTPv1\n"); + GTP_LOGPKG(LOGL_ERROR, peer, pack, len, + "Unknown PDP context: TEI=0x%" PRIx32 "\n", + get_tei(pack)); return gtp_error_ind_resp(gsn, version, peer, fd, pack, len); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/23862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I4f2084ec7e3a830e0224dd998ff0fe6654cc23bd Gerrit-Change-Number: 23862 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Apr 28 10:46:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:46:11 +0000 Subject: Change in osmo-mgw[master]: TOS bits != DSCP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23924 ) Change subject: TOS bits != DSCP ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Gerrit-Change-Number: 23924 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 10: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 Wed Apr 28 10:59:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 10:59:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: Fix typo in func description References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23932 ) Change subject: msc: Fix typo in func description ...................................................................... msc: Fix typo in func description Change-Id: I828fe1efbdd38b12ba29f9ac0141fc456ce3c7bf --- M msc/MSC_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/23932/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 7a54e17..48ed7bd 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -5432,7 +5432,7 @@ vc_conn.done; } -/* Perform an MT CSDB call including LU */ +/* Perform an MT CSFB call including LU */ private function f_mt_lu_and_csfb_call(charstring id, BSC_ConnHdlrPars pars, boolean bssmap_lu) runs on BSC_ConnHdlr { f_init_handler(pars); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I828fe1efbdd38b12ba29f9ac0141fc456ce3c7bf Gerrit-Change-Number: 23932 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 Apr 28 11:14:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 11:14:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: Fix typo in func description In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23932 ) Change subject: msc: Fix typo in func description ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I828fe1efbdd38b12ba29f9ac0141fc456ce3c7bf Gerrit-Change-Number: 23932 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 11: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 Wed Apr 28 11:14:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 11:14:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: Fix typo in func description In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23932 ) Change subject: msc: Fix typo in func description ...................................................................... msc: Fix typo in func description Change-Id: I828fe1efbdd38b12ba29f9ac0141fc456ce3c7bf --- M msc/MSC_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 7a54e17..48ed7bd 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -5432,7 +5432,7 @@ vc_conn.done; } -/* Perform an MT CSDB call including LU */ +/* Perform an MT CSFB call including LU */ private function f_mt_lu_and_csfb_call(charstring id, BSC_ConnHdlrPars pars, boolean bssmap_lu) runs on BSC_ConnHdlr { f_init_handler(pars); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I828fe1efbdd38b12ba29f9ac0141fc456ce3c7bf Gerrit-Change-Number: 23932 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 11:15:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 11:15:33 +0000 Subject: Change in libosmocore[master]: socket: reduce code duplication, introduce socket_helper_tail() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23933 ) Change subject: socket: reduce code duplication, introduce socket_helper_tail() ...................................................................... socket: reduce code duplication, introduce socket_helper_tail() Common bits shared by various functions (currently setting non-blocking) should not be copy+pasted around. Change-Id: I95056940ddc26b65f63eedaeaab6882edaef6317 --- M src/socket.c 1 file changed, 39 insertions(+), 40 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/33/23933/1 diff --git a/src/socket.c b/src/socket.c index 6b8c34a..b44bbc6 100644 --- a/src/socket.c +++ b/src/socket.c @@ -132,9 +132,26 @@ } #endif /* HAVE_LIBSCTP*/ +static int socket_helper_tail(int sfd, unsigned int flags) +{ + int on = 1; + + if (flags & OSMO_SOCK_F_NONBLOCK) { + if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { + LOGP(DLGLOBAL, LOGL_ERROR, + "cannot set this socket unblocking: %s\n", + strerror(errno)); + close(sfd); + return -EINVAL; + } + } + + return 0; +} + static int socket_helper(const struct addrinfo *rp, unsigned int flags) { - int sfd, on = 1; + int sfd, rc; sfd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); if (sfd == -1) { @@ -142,21 +159,17 @@ "unable to create socket: %s\n", strerror(errno)); return sfd; } - if (flags & OSMO_SOCK_F_NONBLOCK) { - if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { - LOGP(DLGLOBAL, LOGL_ERROR, - "cannot set this socket unblocking: %s\n", - strerror(errno)); - close(sfd); - sfd = -EINVAL; - } - } + + rc = socket_helper_tail(sfd, flags); + if (rc < 0) + return rc; + return sfd; } static int socket_helper_osa(const struct osmo_sockaddr *addr, uint16_t type, uint8_t proto, unsigned int flags) { - int sfd, on = 1; + int sfd, rc; sfd = socket(addr->u.sa.sa_family, type, proto); if (sfd == -1) { @@ -164,15 +177,11 @@ "unable to create socket: %s\n", strerror(errno)); return sfd; } - if (flags & OSMO_SOCK_F_NONBLOCK) { - if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { - LOGP(DLGLOBAL, LOGL_ERROR, - "cannot set this socket unblocking: %s\n", - strerror(errno)); - close(sfd); - sfd = -EINVAL; - } - } + + rc = socket_helper_tail(sfd, flags); + if (rc < 0) + return rc; + return sfd; } @@ -621,7 +630,7 @@ static int socket_helper_multiaddr(uint16_t family, uint16_t type, uint8_t proto, unsigned int flags) { - int sfd, on = 1; + int sfd, rc; sfd = socket(family, type, proto); if (sfd == -1) { @@ -629,15 +638,11 @@ "Unable to create socket: %s\n", strerror(errno)); return sfd; } - if (flags & OSMO_SOCK_F_NONBLOCK) { - if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { - LOGP(DLGLOBAL, LOGL_ERROR, - "Cannot set this socket unblocking: %s\n", - strerror(errno)); - close(sfd); - sfd = -EINVAL; - } - } + + rc = socket_helper_tail(sfd, flags); + if (rc < 0) + return rc; + return sfd; } @@ -1218,7 +1223,7 @@ const char *socket_path, unsigned int flags) { struct sockaddr_un local; - int sfd, rc, on = 1; + int sfd, rc; unsigned int namelen; if ((flags & (OSMO_SOCK_F_BIND | OSMO_SOCK_F_CONNECT)) == @@ -1258,15 +1263,9 @@ goto err; } - if (flags & OSMO_SOCK_F_NONBLOCK) { - if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { - LOGP(DLGLOBAL, LOGL_ERROR, - "cannot set this socket unblocking: %s\n", - strerror(errno)); - close(sfd); - return -EINVAL; - } - } + rc = socket_helper_tail(sfd, flags); + if (rc < 0) + return rc; rc = osmo_sock_init_tail(sfd, type, flags); if (rc < 0) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95056940ddc26b65f63eedaeaab6882edaef6317 Gerrit-Change-Number: 23933 Gerrit-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 Apr 28 11:15:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 11:15:34 +0000 Subject: Change in libosmocore[master]: socket: QoS support for all our socket init functions References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23934 ) Change subject: socket: QoS support for all our socket init functions ...................................................................... socket: QoS support for all our socket init functions Every socket function that can be passed a 'flags' argument now supports the following two additional macros that can be or-ed in with the flags: * OSMO_SOCK_F_DSCP(x) -- specify the IP DSCP of the socket * OSMO_SOCK_F_PRIO(x) -- specify the priority of the socket The existing osmo_sock_set_{dscp,priority}() functions are useful, but you cannot call them in between the socket creation and the connect() operation when using our socket helpers. This means that the first packet sent will have the default DSCP/priority, and only later packets would have the desired values. When using the functionality introduced by this patch, we can ensure that even the very first packet of e.g. a TCP or SCTP connect() will have the correct DSCP/priority applied. Change-Id: If22988735fe05e51226c6b091a5348dcf1208cdf Related: SYS#5427 --- M include/osmocom/core/socket.h M src/socket.c 2 files changed, 30 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/23934/1 diff --git a/include/osmocom/core/socket.h b/include/osmocom/core/socket.h index 10e1766..a053391 100644 --- a/include/osmocom/core/socket.h +++ b/include/osmocom/core/socket.h @@ -44,6 +44,15 @@ /*! use SO_REUSEADDR on UDP ports (required for multicast) */ #define OSMO_SOCK_F_UDP_REUSEADDR (1 << 5) +/*! use OSMO_SOCK_F_DSCP(x) to set IP DSCP 'x' for packets transmitted on the socket */ +#define OSMO_SOCK_F_DSCP(x) (((x)&0x3f) << 24) +#define GET_OSMO_SOCK_F_DSCP(f) (((f) >> 24) & 0x3f) + +/*! use OSMO_SOCK_F_PRIO(x) to set priority 'x' for packets transmitted on the socket */ +#define OSMO_SOCK_F_PRIO(x) (((x)&0xff) << 16) +#define GET_OSMO_SOCK_F_PRIO(f) (((f) >> 16) & 0xff) + + /*! maximum number of local or remote addresses supported by an osmo_sock instance */ #define OSMO_SOCK_MAX_ADDRS 32 diff --git a/src/socket.c b/src/socket.c index b44bbc6..6afe986 100644 --- a/src/socket.c +++ b/src/socket.c @@ -134,7 +134,9 @@ static int socket_helper_tail(int sfd, unsigned int flags) { - int on = 1; + int rc, on = 1; + uint8_t dscp = GET_OSMO_SOCK_F_DSCP(flags); + uint8_t prio = GET_OSMO_SOCK_F_PRIO(flags); if (flags & OSMO_SOCK_F_NONBLOCK) { if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { @@ -146,6 +148,24 @@ } } + if (dscp) { + rc = osmo_sock_set_dscp(sfd, dscp); + if (rc) { + LOGP(DLGLOBAL, LOGL_ERROR, "cannot set IP DSCP of socket to %u: %s\n", + dscp, strerror(errno)); + /* we consider this a non-fatal error */ + } + } + + if (prio) { + rc = osmo_sock_set_priority(sfd, prio); + if (rc) { + LOGP(DLGLOBAL, LOGL_ERROR, "cannot set priority of socket to %u: %s\n", + prio, strerror(errno)); + /* we consider this a non-fatal error */ + } + } + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If22988735fe05e51226c6b091a5348dcf1208cdf Gerrit-Change-Number: 23934 Gerrit-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 Apr 28 11:29:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 11:29:08 +0000 Subject: Change in libosmocore[master]: socket: IPv6 support for osmo_sock_set_dscp() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23935 ) Change subject: socket: IPv6 support for osmo_sock_set_dscp() ...................................................................... socket: IPv6 support for osmo_sock_set_dscp() IPv6 has the analogous to DSCP: The "traffic class" field. See https://tools.ietf.org/html/draft-itojun-ipv6-tclass-api-03 Change-Id: Ib31b977f67d60aa7f30ca4ab6eceba3d1d5eeee1 Related: SYS#5427 --- M src/socket.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/35/23935/1 diff --git a/src/socket.c b/src/socket.c index 6afe986..a8cc5c1 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1810,8 +1810,14 @@ /* read the original value */ rc = getsockopt(fd, IPPROTO_IP, IP_TOS, &tos, &tos_len); - if (rc < 0) - return rc; + if (rc < 0) { + if (errno == ENOPROTOOPT) { + /* this may be an IPV6 socket, let's try that. IPv6 never had the TOS + * legacy, so we can set the traffic class un-shifted */ + return setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, &dscp, sizeof(dscp)); + } else + return rc; + } /* mask-in the DSCP into the upper 6 bits */ tos &= 0x03; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib31b977f67d60aa7f30ca4ab6eceba3d1d5eeee1 Gerrit-Change-Number: 23935 Gerrit-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 Apr 28 11:46:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 11:46:38 +0000 Subject: Change in libosmocore[master]: socket: IPv6 support for osmo_sock_set_dscp() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23935 ) Change subject: socket: IPv6 support for osmo_sock_set_dscp() ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib31b977f67d60aa7f30ca4ab6eceba3d1d5eeee1 Gerrit-Change-Number: 23935 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 28 Apr 2021 11:46: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 Wed Apr 28 11:53:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 11:53:18 +0000 Subject: Change in osmo-gsm-manuals[master]: bibliography: Re-introduce RFC768 (UDP) In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23928 ) Change subject: bibliography: Re-introduce RFC768 (UDP) ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23928/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23928/1//COMMIT_MSG at 9 PS1, Line 9: unclear why Well, we had a misleading reference: - [[[ietf-rfc768]]] IETF RFC 768: Internet Protocol because RFC 768 is not about IP. I just corrected it, and probably didn't notice the new warnings, sorry. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23928 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: Ib8d2f22450a84ed802b34845ad19a7af8d6b7968 Gerrit-Change-Number: 23928 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 11:53: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 Wed Apr 28 12:00:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 12:00:33 +0000 Subject: Change in osmo-bts[master]: common/pcu_sock: comment out {dl, ul}_tbf_ext related warnings In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23918 ) Change subject: common/pcu_sock: comment out {dl,ul}_tbf_ext related warnings ...................................................................... Patch Set 2: > Patch Set 2: Code-Review-1 > > (1 comment) > > I would rather verify first what's going on before changing this. Well, I welcome your intention to verify if it's correct or not ;) It's just annoying to see these warnings during the compilation. We do have other FIXME/TODO lines, and I don't see what's some special about these PCUIF related ones. We have them since at least 2012-07-16 20:02:48 +0200, so I guess it's not that important if nobody has investigated it so far. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iebf9961cffbd7aa20b263f7dc0016a44782dec60 Gerrit-Change-Number: 23918 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12:00:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 12:06:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 12:06:15 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 ) Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Patch Set 6: (3 comments) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/glossary.adoc File common/chapters/glossary.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/glossary.adoc at 80 PS6, Line 80: ( Here too, BTW. https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/glossary.adoc at 85 PS6, Line 85: ( Missing closing brace for this one. https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/glossary.adoc at 362 PS6, Line 362: << Missing closing '>>' -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 28 Apr 2021 12:06: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 Wed Apr 28 12:17:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 12:17:38 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 ) Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/qos-dscp-pcp.adoc File common/chapters/qos-dscp-pcp.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/qos-dscp-pcp.adoc at 161 PS6, Line 161: include::{srcdir}/chapters/qos-example.adoc[] AFAIU, this file needs to be in the projects's source tree, right? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 28 Apr 2021 12:17: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 Apr 28 12:27:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 12:27:08 +0000 Subject: Change in libosmocore[master]: socket: reduce code duplication, introduce socket_helper_tail() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23933 ) Change subject: socket: reduce code duplication, introduce socket_helper_tail() ...................................................................... Patch Set 1: Code-Review+1 Not sure if it helps making code more readable, but ok. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95056940ddc26b65f63eedaeaab6882edaef6317 Gerrit-Change-Number: 23933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12:27: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 Apr 28 12:29:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 12:29:15 +0000 Subject: Change in osmo-bts[master]: Allow user to specify IP DSCP for OML and RSL, too In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23923 ) Change subject: Allow user to specify IP DSCP for OML and RSL, too ...................................................................... Patch Set 1: Code-Review-1 (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23923/1/src/common/bts_trx.c File src/common/bts_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/23923/1/src/common/bts_trx.c at 205 PS1, Line 205: link ? "up" : "down"); The 'link' can be NULL here, while you unconditionally dereference it below. I think a better place for setting DSCP would be sign_link_up()? There you definitely know that the link is up, and should not be NULL. https://gerrit.osmocom.org/c/osmo-bts/+/23923/1/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/23923/1/src/common/vty.c at 604 PS1, Line 604: BTS_VTY_ATTR_NEW_LCHAN This is not the case, because it actually applies on the OML link establishment. I think we need a new VTY attribute for that - BTS_VTY_ATTR_RESTART_ABIS_OML_LINK. https://gerrit.osmocom.org/c/osmo-bts/+/23923/1/src/common/vty.c at 618 PS1, Line 618: BTS_VTY_ATTR_NEW_LCHAN Same here, BTS_VTY_ATTR_RESTART_ABIS_RSL_LINK. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic302a695453514459fa27400027154e7e8b74e0e Gerrit-Change-Number: 23923 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12:29:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 12:30:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 12:30:46 +0000 Subject: Change in libosmocore[master]: socket: QoS support for all our socket init functions In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23934 ) Change subject: socket: QoS support for all our socket init functions ...................................................................... Patch Set 1: Code-Review+1 I'd probably prefer having a new generic api with 2 extra params (=-1 do nothing), and point old APIs to use that one internally. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If22988735fe05e51226c6b091a5348dcf1208cdf Gerrit-Change-Number: 23934 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12:30: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 Apr 28 12:32:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 12:32:17 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc File doc/manuals/chapters/qos-example.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc at 45 PS1, Line 45: NOTE:: The settings of the `ip` command are volatile and only active until Why do you duplicate this block? We already have it in osmo-gsm-manuals. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12:32:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 12:32:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 12:32:34 +0000 Subject: Change in libosmocore[master]: socket: IPv6 support for osmo_sock_set_dscp() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23935 ) Change subject: socket: IPv6 support for osmo_sock_set_dscp() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib31b977f67d60aa7f30ca4ab6eceba3d1d5eeee1 Gerrit-Change-Number: 23935 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12:32:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 12:34:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 12:34:07 +0000 Subject: Change in osmo-bts[master]: common/pcu_sock: comment out {dl, ul}_tbf_ext related warnings In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23918 ) Change subject: common/pcu_sock: comment out {dl,ul}_tbf_ext related warnings ...................................................................... Patch Set 2: Sure, I was not intending you to necessarily be looking at it. I can have a look later. But let's avoid masking the issue rather than fixing it, so I'd go for dropping this patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iebf9961cffbd7aa20b263f7dc0016a44782dec60 Gerrit-Change-Number: 23918 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12: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 Apr 28 12:35:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 12:35:41 +0000 Subject: Change in osmo-mgw[master]: TOS bits != DSCP In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23924 ) Change subject: TOS bits != DSCP ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/23924/2/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/23924/2/src/libosmo-mgcp/mgcp_vty.c at 584 PS2, Line 584: to for? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Gerrit-Change-Number: 23924 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12:35:41 +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 Apr 28 12:37:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 12:37:57 +0000 Subject: Change in libosmocore[master]: socket: Introduce osmo_sock_set_priority() helper function In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23922 ) Change subject: socket: Introduce osmo_sock_set_priority() helper function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I89abffcd125e6d073338a5c6437b9433220e1823 Gerrit-Change-Number: 23922 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12:37:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 12:37:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 12:37:59 +0000 Subject: Change in libosmocore[master]: socket: QoS support for all our socket init functions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23934 ) Change subject: socket: QoS support for all our socket init functions ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+1 > > I'd probably prefer having a new generic api with 2 extra params (=-1 do nothing), and point old APIs to use that one internally. I thought of that, but then functions with ever growing arguments lists are also not partcularly nice either... And the benefit here si that it work with _all_ the many different variants of socket related APIS. I guess your eapproach would easily introduce something like 6 new function signatures, with even more old wrappers pointing to new functions. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If22988735fe05e51226c6b091a5348dcf1208cdf Gerrit-Change-Number: 23934 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12:37: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 Apr 28 12:38:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 12:38:16 +0000 Subject: Change in libosmocore[master]: socket: Introduce osmo_sock_set_priority() helper function In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23922 ) Change subject: socket: Introduce osmo_sock_set_priority() helper function ...................................................................... socket: Introduce osmo_sock_set_priority() helper function In some situations we want to set the SO_PRIORITY socket option to determine the in-kernel priority of packets generated by this socket. Change-Id: I89abffcd125e6d073338a5c6437b9433220e1823 Related: SYS#5427 --- M include/osmocom/core/socket.h M src/socket.c 2 files changed, 9 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/include/osmocom/core/socket.h b/include/osmocom/core/socket.h index 92cd202..10e1766 100644 --- a/include/osmocom/core/socket.h +++ b/include/osmocom/core/socket.h @@ -123,6 +123,7 @@ const struct osmo_sockaddr *sockaddr); int osmo_sock_set_dscp(int fd, uint8_t dscp); +int osmo_sock_set_priority(int fd, int prio); #endif /* (!EMBEDDED) */ /*! @} */ diff --git a/src/socket.c b/src/socket.c index 095dee6..6b8c34a 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1802,6 +1802,14 @@ return setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); } +/*! Set the priority value of a socket. + * \param[in] prio priority value. Values outside 0..6 require CAP_NET_ADMIN. + * \returns 0 on success; negative on error. */ +int osmo_sock_set_priority(int fd, int prio) +{ + /* and write it back to the kernel */ + return setsockopt(fd, SOL_SOCKET, SO_PRIORITY, &prio, sizeof(prio)); +} #endif /* HAVE_SYS_SOCKET_H */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I89abffcd125e6d073338a5c6437b9433220e1823 Gerrit-Change-Number: 23922 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 12:39:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 12:39:30 +0000 Subject: Change in libosmocore[master]: socket: IPv6 support for osmo_sock_set_dscp() 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/+/23935 to look at the new patch set (#3). Change subject: socket: IPv6 support for osmo_sock_set_dscp() ...................................................................... socket: IPv6 support for osmo_sock_set_dscp() IPv6 has the analogous to DSCP: The "traffic class" field. See https://tools.ietf.org/html/draft-itojun-ipv6-tclass-api-03 Change-Id: Ib31b977f67d60aa7f30ca4ab6eceba3d1d5eeee1 Related: SYS#5427 --- M src/socket.c 1 file changed, 36 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/35/23935/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib31b977f67d60aa7f30ca4ab6eceba3d1d5eeee1 Gerrit-Change-Number: 23935 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 Apr 28 12:42:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 12:42:35 +0000 Subject: Change in libosmocore[master]: socket: reduce code duplication, introduce socket_helper_tail() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23933 ) Change subject: socket: reduce code duplication, introduce socket_helper_tail() ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+1 > > Not sure if it helps making code more readable, but ok. I don't like code duplication and vote for this patch, but agree with Pau here. What about using a more concrete name than socket_helper_tail(), e.g. socket_set_nonblock()? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95056940ddc26b65f63eedaeaab6882edaef6317 Gerrit-Change-Number: 23933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 28 Apr 2021 12:42:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 12:46:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 12:46:55 +0000 Subject: Change in osmo-bsc[master]: Lb: RESET FSM: never send sccp_user == NULL In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23913 ) Change subject: Lb: RESET FSM: never send sccp_user == NULL ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I13834c4e576e8d33e67cb63e222b41255cd94875 Gerrit-Change-Number: 23913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 12:46: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 Apr 28 13:01:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 13:01:14 +0000 Subject: Change in osmo-msc[master]: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 to look at the new patch set (#3). Change subject: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Fill Last Used E-UTRAN PLMN Id when in CSFB Since recently, osmo-bsc behaves strictly as per specs, meaning it will only send the "Cell selection indicator after release of all TCH and SDCCH IE" in RR Channel Release iff: * "Last Used E-UTRAN PLMN Id" was received in the CommonID sent MSC->BSC * "Last Used E-UTRAN PLMN Id" was received insider "old BSS to new BSS Information" in the HandoverRequest sent MSC->BSC. On the other hand, CSFB_Indicator from ClearCommand MSC->BSC is nw ignored and not taken into account. Hence, let's update osmo-msc to also behave correctly by sending the Last Used E-UTRAN PLMN ID at CommonID tx time to avoid regressions in CSFB support when running against newer osmo-bsc. Let's keep sending the CSFB Indicator in ClearCommand as we used too, in order to keep compatibility with older BSCs (as per spec). Related: SYS#5337 Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc --- M include/osmocom/msc/ran_msg.h M include/osmocom/msc/vlr.h M include/osmocom/msc/vlr_sgs.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/ran_msg_a.c M src/libmsc/sgs_iface.c M src/libvlr/vlr.c M src/libvlr/vlr_sgs.c 9 files changed, 86 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/15/23915/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 13:01:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 13:01:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: MME emulation should send TAI during SGs LU for CSFB support References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23936 ) Change subject: msc: MME emulation should send TAI during SGs LU for CSFB support ...................................................................... msc: MME emulation should send TAI during SGs LU for CSFB support 3GPP TS 23.272 sec 4.3.3: "During the SGs location update procedure, obtaining the last used LTE PLMN ID via TAI in SGsAP-LOCATION-UPDATE-REQUEST as specified in TS 29.118". Related: SYS#5337 Change-Id: I7057a7c41794d62f7cbc412da3e805c1f0c69511 --- M library/SGsAP_Templates.ttcn M msc/MSC_Tests.ttcn 2 files changed, 29 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/36/23936/1 diff --git a/library/SGsAP_Templates.ttcn b/library/SGsAP_Templates.ttcn index 4414dd1..21fff9e 100644 --- a/library/SGsAP_Templates.ttcn +++ b/library/SGsAP_Templates.ttcn @@ -13,6 +13,7 @@ import from SGsAP_Types all; import from GSM_Types all; import from General_Types all; +import from Osmocom_Types all; import from MobileL3_CommonIE_Types all; /* 9.4.2 */ @@ -162,6 +163,29 @@ } } +/* 9.4.21a */ +template (value) TrackingAreaIdentityValue ts_SGsAP_TAI(GsmMcc mcc, GsmMnc mnc, uint16_t tac) := { + mccDigit1 := mcc[0], + mccDigit2 := mcc[1], + mccDigit3 := mcc[2], + mncDigit3 := f_enc_mnc_digit3(mnc), + mncDigit1 := mnc[0], + mncDigit2 := mnc[1], + tAC := int2oct(tac, 2) +} +template (value) TrackingAreaIdentity ts_SGsAP_IE_TAI(template (value) TrackingAreaIdentityValue tai) := { + iEI := '00100011'B, + lengthIndicator := 5, + iD := tai +} +function ts_SGsAP_IE_TAI_omit(template (omit) TrackingAreaIdentityValue tai) +return template (omit) TrackingAreaIdentity { + if (istemplatekind(tai, "omit")) { + return omit; + } else { + return ts_SGsAP_IE_TAI(tai); + } +} /* 9.4.12 */ @@ -505,7 +529,8 @@ template (value) PDU_SGsAP ts_SGsAP_LU_REQ(hexstring imsi, template (value) octetstring mme_name, template (value) EPS_location_update_type eps_lu_type, - template (value) LocationAreaIdValue new_lai) := { + template (value) LocationAreaIdValue new_lai, + template (omit) TrackingAreaIdentityValue tAI := omit) := { sGsAP_LOCATION_UPDATE_REQUEST := { messageType := '00001001'B, iMSI := ts_SGsAP_IMSI(imsi), @@ -515,7 +540,7 @@ oldLocationAreaId := omit, tMSI_Status := omit, iMEI_SV := omit, - tAI := omit, + tAI := ts_SGsAP_IE_TAI_omit(tAI), eCGI := omit, tMSI_NRI := omit, cS_DomainOperator := omit diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 48ed7bd..8325625 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -4541,7 +4541,8 @@ f_create_gsup_expect(hex2str(g_pars.imsi)); lur := valueof(ts_SGsAP_LU_REQ(g_pars.imsi, mme_name, IMSI_attach, - ts_SGsAP_LAI('901'H, '70'H, 2342))); + ts_SGsAP_LAI('901'H, '70'H, 2342), + ts_SGsAP_TAI('901'H, '70'H, 555))); /* Old LAI, if MS sends it */ /* TMSI status, if MS has no valid TMSI */ /* IMEISV, if it supports "automatic device detection" */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7057a7c41794d62f7cbc412da3e805c1f0c69511 Gerrit-Change-Number: 23936 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 Apr 28 13:18:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 13:18:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: MME emulation should send TAI during SGs LU for CSFB support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23936 ) Change subject: msc: MME emulation should send TAI during SGs LU for CSFB support ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7057a7c41794d62f7cbc412da3e805c1f0c69511 Gerrit-Change-Number: 23936 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 13:18:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 13:18:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 13:18:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: MME emulation should send TAI during SGs LU for CSFB support In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23936 ) Change subject: msc: MME emulation should send TAI during SGs LU for CSFB support ...................................................................... msc: MME emulation should send TAI during SGs LU for CSFB support 3GPP TS 23.272 sec 4.3.3: "During the SGs location update procedure, obtaining the last used LTE PLMN ID via TAI in SGsAP-LOCATION-UPDATE-REQUEST as specified in TS 29.118". Related: SYS#5337 Change-Id: I7057a7c41794d62f7cbc412da3e805c1f0c69511 --- M library/SGsAP_Templates.ttcn M msc/MSC_Tests.ttcn 2 files changed, 29 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/SGsAP_Templates.ttcn b/library/SGsAP_Templates.ttcn index 4414dd1..21fff9e 100644 --- a/library/SGsAP_Templates.ttcn +++ b/library/SGsAP_Templates.ttcn @@ -13,6 +13,7 @@ import from SGsAP_Types all; import from GSM_Types all; import from General_Types all; +import from Osmocom_Types all; import from MobileL3_CommonIE_Types all; /* 9.4.2 */ @@ -162,6 +163,29 @@ } } +/* 9.4.21a */ +template (value) TrackingAreaIdentityValue ts_SGsAP_TAI(GsmMcc mcc, GsmMnc mnc, uint16_t tac) := { + mccDigit1 := mcc[0], + mccDigit2 := mcc[1], + mccDigit3 := mcc[2], + mncDigit3 := f_enc_mnc_digit3(mnc), + mncDigit1 := mnc[0], + mncDigit2 := mnc[1], + tAC := int2oct(tac, 2) +} +template (value) TrackingAreaIdentity ts_SGsAP_IE_TAI(template (value) TrackingAreaIdentityValue tai) := { + iEI := '00100011'B, + lengthIndicator := 5, + iD := tai +} +function ts_SGsAP_IE_TAI_omit(template (omit) TrackingAreaIdentityValue tai) +return template (omit) TrackingAreaIdentity { + if (istemplatekind(tai, "omit")) { + return omit; + } else { + return ts_SGsAP_IE_TAI(tai); + } +} /* 9.4.12 */ @@ -505,7 +529,8 @@ template (value) PDU_SGsAP ts_SGsAP_LU_REQ(hexstring imsi, template (value) octetstring mme_name, template (value) EPS_location_update_type eps_lu_type, - template (value) LocationAreaIdValue new_lai) := { + template (value) LocationAreaIdValue new_lai, + template (omit) TrackingAreaIdentityValue tAI := omit) := { sGsAP_LOCATION_UPDATE_REQUEST := { messageType := '00001001'B, iMSI := ts_SGsAP_IMSI(imsi), @@ -515,7 +540,7 @@ oldLocationAreaId := omit, tMSI_Status := omit, iMEI_SV := omit, - tAI := omit, + tAI := ts_SGsAP_IE_TAI_omit(tAI), eCGI := omit, tMSI_NRI := omit, cS_DomainOperator := omit diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 48ed7bd..8325625 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -4541,7 +4541,8 @@ f_create_gsup_expect(hex2str(g_pars.imsi)); lur := valueof(ts_SGsAP_LU_REQ(g_pars.imsi, mme_name, IMSI_attach, - ts_SGsAP_LAI('901'H, '70'H, 2342))); + ts_SGsAP_LAI('901'H, '70'H, 2342), + ts_SGsAP_TAI('901'H, '70'H, 555))); /* Old LAI, if MS sends it */ /* TMSI status, if MS has no valid TMSI */ /* IMEISV, if it supports "automatic device detection" */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7057a7c41794d62f7cbc412da3e805c1f0c69511 Gerrit-Change-Number: 23936 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 13:19:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 13:19:22 +0000 Subject: Change in osmo-msc[master]: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 ) Change subject: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 13:19:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:16:56 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:16:56 +0000 Subject: Change in libosmocore[master]: fix comment for osmo_tdef_fsm_inst_state_chg default_timeout In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23925 ) Change subject: fix comment for osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... Patch Set 2: so then the arg should be a *signed* long -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 14:16:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:19:34 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:19:34 +0000 Subject: Change in osmo-bsc[master]: Lb: RESET FSM: never send sccp_user == NULL In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23913 ) Change subject: Lb: RESET FSM: never send sccp_user == NULL ...................................................................... Patch Set 1: Code-Review+2 (1 comment) combining 2x +1 https://gerrit.osmocom.org/c/osmo-bsc/+/23913/1/src/osmo-bsc/lb.c File src/osmo-bsc/lb.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23913/1/src/osmo-bsc/lb.c at 62 PS1, Line 62: LOGP(DRESET, LOGL_DEBUG, "Not sending RESET to SMLC, Lb link down\n"); > Fine then. [?] probably won't happen since i presumably fixed the root cause of this happening in the other patch. but if it does yada yada -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I13834c4e576e8d33e67cb63e222b41255cd94875 Gerrit-Change-Number: 23913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 14:19:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:19:39 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:19:39 +0000 Subject: Change in osmo-bsc[master]: Lb: RESET FSM: never send sccp_user == NULL In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23913 ) Change subject: Lb: RESET FSM: never send sccp_user == NULL ...................................................................... Lb: RESET FSM: never send sccp_user == NULL A crash was reported in bssmap_le_tx_reset() sending a RESET with sccp_user == NULL. A previous patch fixes what I infer as the root cause, but I thought let's also have this additional safeguard. Related: OS#5134 Change-Id: I13834c4e576e8d33e67cb63e222b41255cd94875 --- M src/osmo-bsc/lb.c 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/lb.c b/src/osmo-bsc/lb.c index 0ff7c5c..e23de93 100644 --- a/src/osmo-bsc/lb.c +++ b/src/osmo-bsc/lb.c @@ -58,6 +58,11 @@ }, }; + if (!bsc_gsmnet->smlc->sccp_user) { + LOGP(DRESET, LOGL_DEBUG, "Not sending RESET to SMLC, Lb link down\n"); + return -1; + } + ss7 = osmo_ss7_instance_find(bsc_gsmnet->smlc->cs7_instance); OSMO_ASSERT(ss7); LOGP(DRESET, LOGL_INFO, "Sending RESET to SMLC: %s\n", osmo_sccp_addr_name(ss7, &bsc_gsmnet->smlc->smlc_addr)); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I13834c4e576e8d33e67cb63e222b41255cd94875 Gerrit-Change-Number: 23913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Apr 28 14:32:31 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:32:31 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability 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/+/23914 to look at the new patch set (#2). Change subject: Lb: add missing X12 timer configurability ...................................................................... Lb: add missing X12 timer configurability While adding timers for Channel Mode Modify, I notice that X12 is used in lcs_ta_req.c, but missing in net_init.c. Add it so that it is exposed on the VTY configuration. Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 --- M src/osmo-bsc/net_init.c M tests/timer.vty 2 files changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/14/23914/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 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 Wed Apr 28 14:32:31 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:32:31 +0000 Subject: Change in osmo-bsc[master]: Lb: make sure we never have missing timer configurability References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23937 ) Change subject: Lb: make sure we never have missing timer configurability ...................................................................... Lb: make sure we never have missing timer configurability After I found that X12 was missing from the VTY config, make sure that no timers have been forgotten in lcs_ta_req.c: change the default timeout to -1. We will notice missing timers during testing. Change-Id: I7c0b098622548bf0f0374c304522e6a9db0331e3 --- M src/osmo-bsc/lcs_ta_req.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/37/23937/1 diff --git a/src/osmo-bsc/lcs_ta_req.c b/src/osmo-bsc/lcs_ta_req.c index 3b859a7..bcee6e1 100644 --- a/src/osmo-bsc/lcs_ta_req.c +++ b/src/osmo-bsc/lcs_ta_req.c @@ -56,7 +56,7 @@ osmo_tdef_fsm_inst_state_chg(FI, STATE, \ lcs_ta_req_fsm_timeouts, \ (bsc_gsmnet)->T_defs, \ - 5) + -1) #define lcs_ta_req_fail(cause, fmt, args...) do { \ LOG_LCS_TA_REQ(lcs_ta_req, LOGL_ERROR, "BSSLAP TA Request failed in state %s: " fmt "\n", \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c0b098622548bf0f0374c304522e6a9db0331e3 Gerrit-Change-Number: 23937 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:33:07 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:33:07 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23914 ) Change subject: Lb: add missing X12 timer configurability ...................................................................... Patch Set 2: changing to -1 in a separate patch -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 14:33: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 Apr 28 14:33:15 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:33:15 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability In-Reply-To: References: Message-ID: neels has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23914 ) Change subject: Lb: add missing X12 timer configurability ...................................................................... Removed Code-Review-1 by pespin -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:36:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 14:36:12 +0000 Subject: Change in libosmocore[master]: fix comment for osmo_tdef_fsm_inst_state_chg default_timeout In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23925 ) Change subject: fix comment for osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... Patch Set 2: > Patch Set 2: > > so then the arg should be a *signed* long then you wouldn't be able to pass half of the values possible since a tdef supports a unsigned long range. It's just that last value is used as an error in those APIs, which I think is fine. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 14:36:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:37:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 14:37:30 +0000 Subject: Change in osmo-bsc[master]: Lb: make sure we never have missing timer configurability In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23937 ) Change subject: Lb: make sure we never have missing timer configurability ...................................................................... Patch Set 1: Code-Review+1 You can really squash this into the previous commit since it's tightly related, but as you prefer. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c0b098622548bf0f0374c304522e6a9db0331e3 Gerrit-Change-Number: 23937 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 28 Apr 2021 14:37: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 Apr 28 14:37:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 14:37:46 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23914 ) Change subject: Lb: add missing X12 timer configurability ...................................................................... Patch Set 2: Code-Review+1 +1 in case you don't end squashing the commits. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 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 Wed Apr 28 14:38:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:38:46 +0000 Subject: Change in libosmocore[master]: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout 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/+/23925 to look at the new patch set (#3). Change subject: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout The api doc indicates the possibility to pass -1, and calling osmo_tdef_get() actually casts the arg to a signed long. To end the confusion, change default_timeout from unsigned long to long. Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 --- M TODO-RELEASE M include/osmocom/core/tdef.h 2 files changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/23925/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 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 Wed Apr 28 14:39:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:39:14 +0000 Subject: Change in libosmocore[master]: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23925 ) Change subject: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... Patch Set 3: so how about this -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 14:39: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 Apr 28 14:40:02 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:40:02 +0000 Subject: Change in osmo-bsc[master]: gsm_lchan_name_compute with ctx References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23938 ) Change subject: gsm_lchan_name_compute with ctx ...................................................................... gsm_lchan_name_compute with ctx Use a talloc ctx directly without an intermediate static buffer. A subsequent patch will add a name tweak for VAMOS secondary lchans, so it felt appropriate to first clean this. Change-Id: Idb922605c15242a2cdc7c34668c845a179a15660 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_trx.c M src/osmo-bsc/gsm_data.c 3 files changed, 5 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/38/23938/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 0bc881b..9aecd2c 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -944,7 +944,7 @@ const char *gsm_chreq_name(enum gsm_chreq_reason_t c); char *gsm_ts_name(const struct gsm_bts_trx_ts *ts); char *gsm_ts_and_pchan_name(const struct gsm_bts_trx_ts *ts); -char *gsm_lchan_name_compute(const struct gsm_lchan *lchan); +char *gsm_lchan_name_compute(void *ctx, const struct gsm_lchan *lchan); static inline char *gsm_lchan_name(const struct gsm_lchan *lchan) { diff --git a/src/osmo-bsc/bts_trx.c b/src/osmo-bsc/bts_trx.c index 6d98929..1dfca95 100644 --- a/src/osmo-bsc/bts_trx.c +++ b/src/osmo-bsc/bts_trx.c @@ -105,15 +105,13 @@ for (l = 0; l < TS_MAX_LCHAN; l++) { struct gsm_lchan *lchan; - char *name; lchan = &ts->lchan[l]; lchan->ts = ts; lchan->nr = l; lchan->type = GSM_LCHAN_NONE; - name = gsm_lchan_name_compute(lchan); - lchan->name = talloc_strdup(trx, name); + lchan->name = gsm_lchan_name_compute(trx, lchan); } } diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 916ba68..47aceb0 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -334,14 +334,11 @@ return ts2str; } -char *gsm_lchan_name_compute(const struct gsm_lchan *lchan) +char *gsm_lchan_name_compute(void *ctx, const struct gsm_lchan *lchan) { struct gsm_bts_trx_ts *ts = lchan->ts; - - snprintf(ts2str, sizeof(ts2str), "(bts=%d,trx=%d,ts=%d,ss=%d)", - ts->trx->bts->nr, ts->trx->nr, ts->nr, lchan->nr); - - return ts2str; + return talloc_asprintf(ctx, "(bts=%d,trx=%d,ts=%d,ss=%d)", + ts->trx->bts->nr, ts->trx->nr, ts->nr, lchan->nr); } /* obtain the MO structure for a given object instance */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb922605c15242a2cdc7c34668c845a179a15660 Gerrit-Change-Number: 23938 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:40:03 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:40:03 +0000 Subject: Change in osmo-bsc[master]: log: drop duplicate logging in ts_setup_lchans() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23939 ) Change subject: log: drop duplicate logging in ts_setup_lchans() ...................................................................... log: drop duplicate logging in ts_setup_lchans() Change-Id: I569229328229047d399033d1483d09d323826692 --- M src/osmo-bsc/timeslot_fsm.c 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/39/23939/1 diff --git a/src/osmo-bsc/timeslot_fsm.c b/src/osmo-bsc/timeslot_fsm.c index 3fd9d69..41921cd 100644 --- a/src/osmo-bsc/timeslot_fsm.c +++ b/src/osmo-bsc/timeslot_fsm.c @@ -215,8 +215,6 @@ ts->pchan_is = ts->pchan_on_init; break; } - - LOG_TS(ts, LOGL_DEBUG, "lchans initialized: %d\n", max_lchans); } static void ts_fsm_not_initialized(struct osmo_fsm_inst *fi, uint32_t event, void *data) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I569229328229047d399033d1483d09d323826692 Gerrit-Change-Number: 23939 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:40:04 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:40:04 +0000 Subject: Change in osmo-bsc[master]: comment: tweak pchan_subslots() description References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23940 ) Change subject: comment: tweak pchan_subslots() description ...................................................................... comment: tweak pchan_subslots() description Change-Id: I4d3ca6efc7b4fadd6711ae80502027cec1b7b84e --- M src/osmo-bsc/gsm_data.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/40/23940/1 diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 47aceb0..2595ea9 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -565,8 +565,8 @@ [GSM_PCHAN_TCH_F_PDCH] = 1, }; -/*! According to ts->pchan and possibly ts->dyn_pchan, return the number of - * logical channels available in the timeslot. */ +/*! Return the maximum number of logical channels that may be used in a timeslot of the given physical channel + * configuration. */ uint8_t pchan_subslots(enum gsm_phys_chan_config pchan) { if (pchan < 0 || pchan >= ARRAY_SIZE(subslots_per_pchan)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4d3ca6efc7b4fadd6711ae80502027cec1b7b84e Gerrit-Change-Number: 23940 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:40:04 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:40:04 +0000 Subject: Change in osmo-bsc[master]: lchan_release(): do not release UNUSED lchan References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23941 ) Change subject: lchan_release(): do not release UNUSED lchan ...................................................................... lchan_release(): do not release UNUSED lchan I noticed that lchan_release() is generally called in varying error situations, so it makes sense to generally skip the release procedure when the lchan is already in the UNUSED state. Change-Id: I6e9faf682d1668388d5470419110408a098b9900 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/41/23941/1 diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index d58aac5..d2b7172 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -1592,7 +1592,7 @@ bool err, enum gsm48_rr_cause cause_rr, const struct osmo_plmn_id *last_eutran_plmn) { - if (!lchan || !lchan->fi) + if (!lchan || !lchan->fi || lchan->fi->state == LCHAN_ST_UNUSED) return; if (lchan->release.in_release_handler) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6e9faf682d1668388d5470419110408a098b9900 Gerrit-Change-Number: 23941 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:40:04 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:40:04 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: mode modify: fix missing timeouts and error transitions References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23942 ) Change subject: lchan_fsm: mode modify: fix missing timeouts and error transitions ...................................................................... lchan_fsm: mode modify: fix missing timeouts and error transitions Change-Id: I6364cfb78f661f5f7473dcec488e361e6a1dc9e4 --- M src/osmo-bsc/lchan_fsm.c M src/osmo-bsc/net_init.c M tests/timer.vty 3 files changed, 10 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/42/23942/1 diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index d2b7172..4eb95ff 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -217,6 +217,8 @@ [LCHAN_ST_WAIT_BEFORE_RF_RELEASE] = { .T=3111 }, [LCHAN_ST_WAIT_RF_RELEASE_ACK] = { .T=3111 }, [LCHAN_ST_WAIT_AFTER_ERROR] = { .T=-3111 }, + [LCHAN_ST_WAIT_RR_CHAN_MODE_MODIFY_ACK] = { .T=-13 }, + [LCHAN_ST_WAIT_RSL_CHAN_MODE_MODIFY_ACK] = { .T=-14 }, }; /* Transition to a state, using the T timer defined in lchan_fsm_timeouts. @@ -261,8 +263,8 @@ [LCHAN_ST_WAIT_RF_RELEASE_ACK] = LCHAN_ST_BORKEN, [LCHAN_ST_WAIT_AFTER_ERROR] = LCHAN_ST_UNUSED, [LCHAN_ST_BORKEN] = LCHAN_ST_BORKEN, - [LCHAN_ST_WAIT_RR_CHAN_MODE_MODIFY_ACK] = LCHAN_ST_BORKEN, - [LCHAN_ST_WAIT_RSL_CHAN_MODE_MODIFY_ACK] = LCHAN_ST_BORKEN, + [LCHAN_ST_WAIT_RR_CHAN_MODE_MODIFY_ACK] = LCHAN_ST_WAIT_RF_RELEASE_ACK, + [LCHAN_ST_WAIT_RSL_CHAN_MODE_MODIFY_ACK] = LCHAN_ST_WAIT_RF_RELEASE_ACK, }; #define lchan_fail(fmt, args...) lchan_fail_to(lchan_fsm_on_error[fi->state], fmt, ## args) diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 478c62f..6d88adb 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -54,6 +54,8 @@ { .T=-10, .default_val=5, .desc="Timeout for fully configured MGW endpoint" }, { .T=-11, .default_val=5, .desc="Timeout for Perform Location Response from SMLC" }, { .T=-12, .default_val=5, .desc="Timeout for obtaining TA after BSSLAP TA Request" }, + { .T=-13, .default_val=5, .desc="Timeout for RR Channel Mode Modify ACK (BSC <-> MS)" }, + { .T=-14, .default_val=5, .desc="Timeout for RSL Channel Mode Modify ACK (BSC <-> BTS)" }, { .T=-3111, .default_val=4, .desc="Wait time after lchan was released in error (should be T3111 + 2s)" }, { .T=-3210, .default_val=20, .desc="After L3 Complete, wait for MSC to confirm" }, {} diff --git a/tests/timer.vty b/tests/timer.vty index 4b9ddbb..71dd2c1 100644 --- a/tests/timer.vty +++ b/tests/timer.vty @@ -27,6 +27,8 @@ net: X10 = 5 s Timeout for fully configured MGW endpoint (default: 5 s) net: X11 = 5 s Timeout for Perform Location Response from SMLC (default: 5 s) net: X12 = 5 s Timeout for obtaining TA after BSSLAP TA Request (default: 5 s) +net: X13 = 5 s Timeout for RR Channel Mode Modify ACK (BSC <-> MS) (default: 5 s) +net: X14 = 5 s Timeout for RSL Channel Mode Modify ACK (BSC <-> BTS) (default: 5 s) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s) mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s) @@ -74,6 +76,8 @@ net: X10 = 5 s Timeout for fully configured MGW endpoint (default: 5 s) net: X11 = 5 s Timeout for Perform Location Response from SMLC (default: 5 s) net: X12 = 5 s Timeout for obtaining TA after BSSLAP TA Request (default: 5 s) +net: X13 = 5 s Timeout for RR Channel Mode Modify ACK (BSC <-> MS) (default: 5 s) +net: X14 = 5 s Timeout for RSL Channel Mode Modify ACK (BSC <-> BTS) (default: 5 s) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s) mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6364cfb78f661f5f7473dcec488e361e6a1dc9e4 Gerrit-Change-Number: 23942 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:40:04 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:40:04 +0000 Subject: Change in osmo-bsc[master]: lchan and assignment FSMs: make Channel Mode Modify more sane References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23943 ) Change subject: lchan and assignment FSMs: make Channel Mode Modify more sane ...................................................................... lchan and assignment FSMs: make Channel Mode Modify more sane The Channel Mode Modify procedure is currently implemented for changing a TCH lchan from signalling to voice mode. For that, however, it is re-using (abusing) the channel activation structs and state transitions, and thus always implies activating a voice stream when the mode modification is done. I will add a Channel Mode Modify to enable VAMOS mode soon, so I require separate structs and state transitions which also work on an lchan that already has a voice stream established: a struct lchan_modify_info and LCHAN_EV_REQUEST_MODE_MODIFY, and dedicated assignment FSM state ASSIGNMENT_ST_WAIT_LCHAN_MODIFIED. For the part where a Channel Mode Modify enables a voice stream after switching from signalling to speech mode, still use the channel activation code path, but only once the mode modification is done. General improvements: - To ask for a mode modification, emit an FSM event that ensures a mode modify only happens when the lchan state allows it. - The new lchan_modify_info struct reflects only those parts that have an effect during a mode modification (before the lchan_activate_info was fully populated, many values not having an effect). - More accurate logging, indicating "Mode Modify" instead of "Channel Activation" A TTCN3 test for the Channel Mode Modify procedure is added in Idf4efaed986de0bbd2b663313e837352cc139f0f, and the test passes both before and after this patch is applied. Related: SYS#4895 Change-Id: I4986844f839b1c9672c61d916eb3d33d0042d747 --- M doc/assignment-fsm.dot M include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/lchan_fsm.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/lchan_fsm.c 6 files changed, 212 insertions(+), 67 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/43/23943/1 diff --git a/doc/assignment-fsm.dot b/doc/assignment-fsm.dot index c218153..336a411 100644 --- a/doc/assignment-fsm.dot +++ b/doc/assignment-fsm.dot @@ -12,6 +12,7 @@ gscon2 [label="conn FSM",shape=box3d] lchan [label="lchan FSM\n(new lchan)",shape=box3d] old_lchan [label="old lchan",shape=box3d] + lchan2 [label="lchan FSM",shape=box3d] bssap [label="osmo_bsc_bssap.c",shape=box] @@ -22,7 +23,6 @@ bssap -> gscon [label="GSCON_EV_ASSIGNMENT_START\ndata=struct assignment_request",style=dotted] gscon -> WAIT_LCHAN_ACTIVE [label="assignment_fsm_start()",style=dotted] - gscon -> WAIT_LCHAN_ESTABLISHED [label="assignment_fsm_start()\n(mode modify)",style=dotted] WAIT_LCHAN_ACTIVE -> lchan [label="lchan_activate()\nFOR_ASSIGNMENT",style=dotted] lchan -> WAIT_LCHAN_ACTIVE [label="ASSIGNMENT_EV_\nLCHAN_\nACTIVE,ERROR",style=dotted] lchan -> WAIT_LCHAN_ESTABLISHED [label="ASSIGNMENT_EV_\nLCHAN_\nESTABLISHED,ERROR",style=dotted] @@ -40,4 +40,10 @@ WAIT_MGW_ENDPOINT_TO_MSC -> gscon2 [label="gscon_connect_\nmgw_to_msc()",style=dotted] gscon2 -> WAIT_MGW_ENDPOINT_TO_MSC [label="ASSIGNMENT_EV_\nMSC_MGW_OK",style=dotted] terminate -> gscon2 [label="GSCON_EV_\nASSIGNMENT_END",style=dotted] + + WAIT_LCHAN_ACTIVE -> WAIT_LCHAN_MODIFIED [label="assignment_fsm_start()\n(mode modify)"] + WAIT_LCHAN_MODIFIED -> lchan2 [label="lchan_mode_modify()\nFOR_ASSIGNMENT",style=dotted] + lchan2 -> WAIT_LCHAN_MODIFIED [label="ASSIGNMENT_EV_\nLCHAN_\nMODIFIED,ERROR",style=dotted] + WAIT_LCHAN_MODIFIED -> WAIT_MGW_ENDPOINT_TO_MSC [label="needs\nvoice\nstream"] + WAIT_LCHAN_MODIFIED -> terminate [label="no change\nin voice\nstream"] } diff --git a/include/osmocom/bsc/assignment_fsm.h b/include/osmocom/bsc/assignment_fsm.h index 156da42..b4af335 100644 --- a/include/osmocom/bsc/assignment_fsm.h +++ b/include/osmocom/bsc/assignment_fsm.h @@ -24,11 +24,13 @@ ASSIGNMENT_ST_WAIT_RR_ASS_COMPLETE, ASSIGNMENT_ST_WAIT_LCHAN_ESTABLISHED, ASSIGNMENT_ST_WAIT_MGW_ENDPOINT_TO_MSC, + ASSIGNMENT_ST_WAIT_LCHAN_MODIFIED, }; enum assignment_fsm_event { ASSIGNMENT_EV_LCHAN_ACTIVE, ASSIGNMENT_EV_LCHAN_ESTABLISHED, + ASSIGNMENT_EV_LCHAN_MODIFIED, ASSIGNMENT_EV_LCHAN_ERROR, ASSIGNMENT_EV_MSC_MGW_OK, ASSIGNMENT_EV_MSC_MGW_FAIL, diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 9aecd2c..23f44c5 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -564,6 +564,7 @@ FOR_ASSIGNMENT, FOR_HANDOVER, FOR_VTY, + FOR_MODE_MODIFY_RTP, }; extern const struct value_string lchan_activate_mode_names[]; @@ -589,6 +590,15 @@ uint8_t ta; }; +struct lchan_modify_info { + enum lchan_activate_mode modify_for; + enum gsm48_chan_mode chan_mode; + bool requires_voice_stream; + uint16_t msc_assigned_cic; + /* AMR config */ + uint16_t s15_s0; +}; + struct gsm_lchan { /* The TS that we're part of */ struct gsm_bts_trx_ts *ts; @@ -614,6 +624,11 @@ } activate; struct { + struct lchan_modify_info info; + bool concluded; + } modify; + + struct { /* If an event to release the lchan comes in while still waiting for responses, just mark this * flag, so that the lchan will gracefully release at the next sensible junction. */ bool requested; diff --git a/include/osmocom/bsc/lchan_fsm.h b/include/osmocom/bsc/lchan_fsm.h index ded7f54..3276f9d 100644 --- a/include/osmocom/bsc/lchan_fsm.h +++ b/include/osmocom/bsc/lchan_fsm.h @@ -58,6 +58,7 @@ void lchan_activate(struct gsm_lchan *lchan, struct lchan_activate_info *info); void lchan_ready_to_switch_rtp(struct gsm_lchan *lchan); +void lchan_mode_modify(struct gsm_lchan *lchan, struct lchan_modify_info *info); static inline const char *lchan_state_name(struct gsm_lchan *lchan) { diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index faaec53..f1be213 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -241,20 +241,23 @@ static void assignment_success(struct gsm_subscriber_connection *conn) { struct gsm_bts *bts; + bool lchan_changed = (conn->assignment.new_lchan != NULL); - /* Take on the new lchan */ - gscon_change_primary_lchan(conn, conn->assignment.new_lchan); - conn->assignment.new_lchan = NULL; + /* Take on the new lchan. If there only was a Channel Mode Modify, then there is no new lchan to take on. */ + if (lchan_changed) { + gscon_change_primary_lchan(conn, conn->assignment.new_lchan); - OSMO_ASSERT((bts = conn_get_bts(conn)) != NULL); - if (is_siemens_bts(bts) && ts_is_tch(conn->lchan->ts)) { - /* HACK: store the actual Classmark 2 LV from the subscriber and use it here! */ - uint8_t cm2_lv[] = { 0x02, 0x00, 0x00 }; - send_siemens_mrpci(conn->lchan, cm2_lv); + OSMO_ASSERT((bts = conn_get_bts(conn)) != NULL); + if (is_siemens_bts(bts) && ts_is_tch(conn->lchan->ts)) { + /* HACK: store the actual Classmark 2 LV from the subscriber and use it here! */ + uint8_t cm2_lv[] = { 0x02, 0x00, 0x00 }; + send_siemens_mrpci(conn->lchan, cm2_lv); + } + + /* apply LCLS configuration (if any) */ + lcls_apply_config(conn); } - - /* apply LCLS configuration (if any) */ - lcls_apply_config(conn); + conn->assignment.new_lchan = NULL; send_assignment_complete(conn); /* If something went wrong during send_assignment_complete(), the fi will be gone from @@ -267,15 +270,17 @@ return; } - /* Rembered this only for error handling: should assignment fail, assignment_reset() will release - * the MGW endpoint right away. If successful, the conn continues to use the endpoint. */ - conn->assignment.created_ci_for_msc = NULL; + if (lchan_changed) { + /* Rembered this only for error handling: should assignment fail, assignment_reset() will release + * the MGW endpoint right away. If successful, the conn continues to use the endpoint. */ + conn->assignment.created_ci_for_msc = NULL; - /* New RTP information is now accepted */ - conn->user_plane.msc_assigned_cic = conn->assignment.req.msc_assigned_cic; - osmo_strlcpy(conn->user_plane.msc_assigned_rtp_addr, conn->assignment.req.msc_rtp_addr, - sizeof(conn->user_plane.msc_assigned_rtp_addr)); - conn->user_plane.msc_assigned_rtp_port = conn->assignment.req.msc_rtp_port; + /* New RTP information is now accepted */ + conn->user_plane.msc_assigned_cic = conn->assignment.req.msc_assigned_cic; + osmo_strlcpy(conn->user_plane.msc_assigned_rtp_addr, conn->assignment.req.msc_rtp_addr, + sizeof(conn->user_plane.msc_assigned_rtp_addr)); + conn->user_plane.msc_assigned_rtp_port = conn->assignment.req.msc_rtp_port; + } LOG_ASSIGNMENT(conn, LOGL_DEBUG, "Assignment successful\n"); osmo_fsm_inst_term(conn->assignment.fi, OSMO_FSM_TERM_REGULAR, 0); @@ -285,7 +290,9 @@ static void assignment_fsm_update_id(struct gsm_subscriber_connection *conn) { - struct gsm_lchan *new_lchan = conn->assignment.new_lchan; + /* Assignment can do a new channel activation, in which case new_lchan points at the new lchan. + * Or assignment can Channel Mode Modify the already used lchan, in which case new_lchan == NULL. */ + struct gsm_lchan *new_lchan = (conn->assignment.new_lchan ? : conn->lchan); if (!new_lchan) { osmo_fsm_inst_update_id(conn->assignment.fi, conn->fi->id); return; @@ -435,7 +442,8 @@ [CH_RATE_FULL] = "FR", }; struct osmo_fsm_inst *fi; - struct lchan_activate_info info; + struct lchan_activate_info activ_info; + struct lchan_modify_info modif_info; int i; OSMO_ASSERT(conn); @@ -465,6 +473,8 @@ * LCHAN_EV_REQUEST_MODE_MODIFY in lchan_fsm.c. To not break the lchan, do not even attempt to re-use an lchan * that already has an RTP stream set up, rather establish a new lchan (that transition is well implemented). */ if (reuse_existing_lchan(conn) && !conn->lchan->fi_rtp) { + /* The new lchan is the old lchan, keep new_lchan == NULL. */ + conn->assignment.new_lchan = NULL; /* If the requested mode and the current TCH mode matches up, just send the * assignment complete directly and be done with the assignment procedure. */ @@ -494,28 +504,17 @@ gsm48_chan_mode_name(conn->lchan->ch_mode_rate.chan_mode), gsm_lchan_name(conn->lchan)); - info = (struct lchan_activate_info){ - .activ_for = FOR_ASSIGNMENT, - .for_conn = conn, + modif_info = (struct lchan_modify_info){ + .modify_for = FOR_ASSIGNMENT, .chan_mode = conn->lchan->ch_mode_rate.chan_mode, - .encr = conn->lchan->encr, - .s15_s0 = conn->lchan->ch_mode_rate.s15_s0, .requires_voice_stream = conn->assignment.requires_voice_stream, + .s15_s0 = conn->lchan->ch_mode_rate.s15_s0, .msc_assigned_cic = req->msc_assigned_cic, - .re_use_mgw_endpoint_from_lchan = conn->lchan, - .ta = conn->lchan->last_ta, - .ta_known = true, }; - osmo_fsm_inst_dispatch(conn->lchan->fi, LCHAN_EV_REQUEST_MODE_MODIFY, &info); - - /* Since we opted not to allocate a new lchan, the new lchan is still the old lchan. */ - conn->assignment.new_lchan = conn->lchan; - - /* Also we need to skip the RR assignment, so we jump forward and wait for the lchan_fsm until it - * reaches the established state again. */ - assignment_fsm_state_chg(ASSIGNMENT_ST_WAIT_LCHAN_ESTABLISHED); - + if (assignment_fsm_state_chg(ASSIGNMENT_ST_WAIT_LCHAN_MODIFIED)) + return; + lchan_mode_modify(conn->lchan, &modif_info); return; } @@ -571,7 +570,7 @@ req->use_osmux ? "yes" : "no"); assignment_fsm_state_chg(ASSIGNMENT_ST_WAIT_LCHAN_ACTIVE); - info = (struct lchan_activate_info){ + activ_info = (struct lchan_activate_info){ .activ_for = FOR_ASSIGNMENT, .for_conn = conn, .chan_mode = conn->lchan->ch_mode_rate.chan_mode, @@ -583,7 +582,7 @@ .ta = conn->lchan->last_ta, .ta_known = true, }; - lchan_activate(conn->assignment.new_lchan, &info); + lchan_activate(conn->assignment.new_lchan, &activ_info); } static void assignment_fsm_wait_lchan(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -695,8 +694,10 @@ conn->assignment.req.msc_rtp_addr, conn->assignment.req.msc_rtp_port); + /* Assignment can do a new channel activation, in which case new_lchan points at the new lchan. + * Or assignment can Channel Mode Modify the already used lchan, in which case new_lchan == NULL. */ if (!gscon_connect_mgw_to_msc(conn, - conn->assignment.new_lchan, + conn->assignment.new_lchan ? : conn->lchan, conn->assignment.req.msc_rtp_addr, conn->assignment.req.msc_rtp_port, fi, @@ -742,6 +743,19 @@ } } +static void assignment_fsm_wait_lchan_modified(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + + case ASSIGNMENT_EV_LCHAN_MODIFIED: + assignment_fsm_post_lchan_established(fi); + return; + + default: + OSMO_ASSERT(false); + } +} + #define S(x) (1 << (x)) static const struct osmo_fsm_state assignment_fsm_states[] = { @@ -754,7 +768,7 @@ .out_state_mask = 0 | S(ASSIGNMENT_ST_WAIT_LCHAN_ACTIVE) | S(ASSIGNMENT_ST_WAIT_RR_ASS_COMPLETE) - | S(ASSIGNMENT_ST_WAIT_LCHAN_ESTABLISHED) /* MODE MODIFY */ + | S(ASSIGNMENT_ST_WAIT_LCHAN_MODIFIED) , }, [ASSIGNMENT_ST_WAIT_RR_ASS_COMPLETE] = { @@ -790,11 +804,22 @@ | S(ASSIGNMENT_EV_MSC_MGW_FAIL) , }, + [ASSIGNMENT_ST_WAIT_LCHAN_MODIFIED] = { + .name = "WAIT_LCHAN_MODIFIED", + .action = assignment_fsm_wait_lchan_modified, + .in_event_mask = 0 + | S(ASSIGNMENT_EV_LCHAN_MODIFIED) + , + .out_state_mask = 0 + | S(ASSIGNMENT_ST_WAIT_MGW_ENDPOINT_TO_MSC) + , + }, }; static const struct value_string assignment_fsm_event_names[] = { OSMO_VALUE_STRING(ASSIGNMENT_EV_LCHAN_ACTIVE), OSMO_VALUE_STRING(ASSIGNMENT_EV_LCHAN_ESTABLISHED), + OSMO_VALUE_STRING(ASSIGNMENT_EV_LCHAN_MODIFIED), OSMO_VALUE_STRING(ASSIGNMENT_EV_LCHAN_ERROR), OSMO_VALUE_STRING(ASSIGNMENT_EV_MSC_MGW_OK), OSMO_VALUE_STRING(ASSIGNMENT_EV_MSC_MGW_FAIL), @@ -807,6 +832,11 @@ void assignment_fsm_allstate_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_subscriber_connection *conn = assignment_fi_conn(fi); + + /* Assignment can do a new channel activation, in which case new_lchan points at the new lchan. + * Or assignment can Channel Mode Modify the already used lchan, in which case new_lchan == NULL. */ + struct gsm_lchan *new_lchan = conn->assignment.new_lchan ? : conn->lchan; + switch (event) { case ASSIGNMENT_EV_CONN_RELEASING: @@ -815,10 +845,11 @@ return; case ASSIGNMENT_EV_LCHAN_ERROR: - if (data != conn->assignment.new_lchan) + if (data != new_lchan) return; - assignment_fail(conn->assignment.new_lchan->activate.gsm0808_error_cause, - "Failed to activate lchan %s", + assignment_fail(new_lchan->activate.gsm0808_error_cause, + "Failed to %s lchan %s", + conn->assignment.new_lchan ? "activate" : "modify", gsm_lchan_name(conn->assignment.new_lchan)); return; diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 4eb95ff..e422cf9 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -85,6 +85,53 @@ talloc_free(last_error_was); } +static void lchan_on_mode_modify_success(struct gsm_lchan *lchan) +{ + lchan->modify.concluded = true; + + switch (lchan->modify.info.modify_for) { + + case FOR_ASSIGNMENT: + osmo_fsm_inst_dispatch(lchan->conn->assignment.fi, ASSIGNMENT_EV_LCHAN_MODIFIED, lchan); + break; + + default: + break; + } +} + +#define lchan_on_mode_modify_failure(lchan, modify_for, for_conn) \ + _lchan_on_mode_modify_failure(lchan, modify_for, for_conn, \ + __FILE__, __LINE__) +static void _lchan_on_mode_modify_failure(struct gsm_lchan *lchan, enum lchan_activate_mode modify_for, + struct gsm_subscriber_connection *for_conn, + const char *file, int line) +{ + if (lchan->modify.concluded) + return; + lchan->modify.concluded = true; + + switch (modify_for) { + + case FOR_ASSIGNMENT: + LOG_LCHAN(lchan, LOGL_NOTICE, "Signalling Assignment FSM of error (%s)\n", + lchan->last_error ? : "unknown error"); + _osmo_fsm_inst_dispatch(for_conn->assignment.fi, ASSIGNMENT_EV_LCHAN_ERROR, lchan, + file, line); + return; + + case FOR_VTY: + LOG_LCHAN(lchan, LOGL_ERROR, "VTY user invoked lchan Channel Mode Modify failed (%s)\n", + lchan->last_error ? : "unknown error"); + break; + + default: + LOG_LCHAN(lchan, LOGL_ERROR, "lchan Channel Mode Modify failed (%s)\n", + lchan->last_error ? : "unknown error"); + break; + } +} + /* The idea here is that we must not require to change any lchan state in order to deny a request. */ #define lchan_on_activation_failure(lchan, for_conn, activ_for) \ _lchan_on_activation_failure(lchan, for_conn, activ_for, \ @@ -141,6 +188,10 @@ lchan->last_error ? : "unknown error"); break; + case FOR_MODE_MODIFY_RTP: + lchan_on_mode_modify_failure(lchan, lchan->modify.info.modify_for, for_conn); + break; + default: LOG_LCHAN(lchan, LOGL_ERROR, "lchan activation failed (%s)\n", lchan->last_error ? : "unknown error"); @@ -202,6 +253,10 @@ * we will try to roll back a modified RTP connection. */ break; + case FOR_MODE_MODIFY_RTP: + lchan_on_mode_modify_success(lchan); + break; + default: LOG_LCHAN(lchan, LOGL_NOTICE, "lchan %s fully established\n", lchan_activate_mode_name(lchan->activate.info.activ_for)); @@ -342,6 +397,27 @@ /* Remain in state UNUSED */ } +void lchan_mode_modify(struct gsm_lchan *lchan, struct lchan_modify_info *info) +{ + int rc; + + OSMO_ASSERT(lchan && info); + + /* To make sure that the lchan is actually allowed to initiate Channel Mode Modify, feed through an FSM event. + */ + rc = osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_REQUEST_MODE_MODIFY, info); + + if (rc) { + LOG_LCHAN(lchan, LOGL_ERROR, + "Channel Mode Modify requested, but cannot dispatch LCHAN_EV_REQUEST_MODE_MODIFY event\n"); + goto abort; + } + return; + +abort: + lchan_on_mode_modify_failure(lchan, info->modify_for, lchan->conn); +} + static void lchan_fsm_update_id(struct gsm_lchan *lchan) { osmo_fsm_inst_update_id_f(lchan->fi, "%u-%u-%u-%s-%u", @@ -898,7 +974,7 @@ static void lchan_fsm_wait_rr_chan_mode_modify_ack_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_lchan *lchan = lchan_fi_lchan(fi); - gsm48_lchan_modify(lchan, lchan->activate.info.chan_mode); + gsm48_lchan_modify(lchan, lchan->modify.info.chan_mode); } static void lchan_fsm_wait_rr_chan_mode_modify_ack(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -938,10 +1014,28 @@ switch (event) { case LCHAN_EV_RSL_CHAN_MODE_MODIFY_ACK: - if (lchan->activate.info.requires_voice_stream) + /* The Channel Mode Modify was ACKed, now the requested values become the accepted and used values. */ + lchan->tch_mode = lchan->modify.info.chan_mode; + lchan->s15_s0 = lchan->modify.info.s15_s0; + + if (lchan->modify.info.requires_voice_stream + && !lchan->fi_rtp) { + /* Continue with RTP stream establishing as done in lchan_activate(). Place the requested values in + * lchan->activate.info and continue with voice stream setup. */ + lchan->activate.info = (struct lchan_activate_info){ + /* No action required for when the voice stream is established */ + .activ_for = FOR_MODE_MODIFY_RTP, + .for_conn = lchan->conn, + .s15_s0 = lchan->modify.info.s15_s0, + .requires_voice_stream = true, + .msc_assigned_cic = lchan->modify.info.msc_assigned_cic, + }; + lchan->activate.concluded = false; lchan_fsm_state_chg(LCHAN_ST_WAIT_RLL_RTP_ESTABLISH); - else + } else { lchan_fsm_state_chg(LCHAN_ST_ESTABLISHED); + lchan_on_mode_modify_success(lchan); + } return; case LCHAN_EV_RSL_CHAN_MODE_MODIFY_NACK: @@ -1031,7 +1125,7 @@ static void lchan_fsm_established(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_lchan *lchan = lchan_fi_lchan(fi); - struct lchan_activate_info *info; + struct lchan_modify_info *modif_info; struct osmo_mgcpc_ep_ci *use_mgwep_ci; switch (event) { @@ -1069,35 +1163,29 @@ return; } - info = data; - lchan->activate.info = *info; + modif_info = data; + lchan->modify.info = *modif_info; + lchan->modify.concluded = false; + use_mgwep_ci = lchan_use_mgw_endpoint_ci_bts(lchan); - if (info->chan_mode == GSM48_CMODE_SPEECH_AMR) { - if (lchan_mr_config(lchan, info->s15_s0) < 0) { + if (gsm48_chan_mode_to_non_vamos(modif_info->chan_mode) == GSM48_CMODE_SPEECH_AMR) { + if (lchan_mr_config(lchan, modif_info->s15_s0) < 0) { lchan_fail("Can not generate multirate configuration IE\n"); return; } } LOG_LCHAN(lchan, LOGL_INFO, - "Modification requested: %s voice=%s MGW-ci=%s type=%s tch-mode=%s encr-alg=A5/%u ck=%s\n", - lchan_activate_mode_name(lchan->activate.info.activ_for), - lchan->activate.info.requires_voice_stream ? "yes" : "no", - lchan->activate.info.requires_voice_stream ? + "Modification requested: %s voice=%s MGW-ci=%s type=%s tch-mode=%s\n", + lchan_activate_mode_name(lchan->modify.info.modify_for), + lchan->modify.info.requires_voice_stream ? "yes" : "no", + lchan->modify.info.requires_voice_stream ? (use_mgwep_ci ? osmo_mgcpc_ep_ci_name(use_mgwep_ci) : "new") : "none", gsm_lchant_name(lchan->type), - gsm48_chan_mode_name(lchan->tch_mode), - (lchan->activate.info.encr.alg_id ? : 1) - 1, - lchan->activate.info.encr.key_len ? osmo_hexdump_nospc(lchan->activate.info.encr.key, - lchan->activate.info.encr.key_len) : "none"); + gsm48_chan_mode_name(lchan->tch_mode)); - /* While the mode is changed the lchan is virtually "not activated", at least - * from the FSM implementations perspective */ - lchan->activate.concluded = false; - - /* Initiate mode modification, start with the MS side (RR) */ lchan_fsm_state_chg(LCHAN_ST_WAIT_RR_CHAN_MODE_MODIFY_ACK); return; @@ -1419,6 +1507,7 @@ | S(LCHAN_EV_RSL_CHAN_MODE_MODIFY_NACK) , .out_state_mask = 0 + | S(LCHAN_ST_WAIT_RF_RELEASE_ACK) | S(LCHAN_ST_BORKEN) | S(LCHAN_ST_WAIT_RLL_RTP_ESTABLISH) , @@ -1531,6 +1620,7 @@ OSMO_VALUE_STRING(LCHAN_EV_RR_CHAN_MODE_MODIFY_ERROR), OSMO_VALUE_STRING(LCHAN_EV_RSL_CHAN_MODE_MODIFY_ACK), OSMO_VALUE_STRING(LCHAN_EV_RSL_CHAN_MODE_MODIFY_NACK), + OSMO_VALUE_STRING(LCHAN_EV_REQUEST_MODE_MODIFY), {} }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4986844f839b1c9672c61d916eb3d33d0042d747 Gerrit-Change-Number: 23943 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 14:52:42 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 14:52:42 +0000 Subject: Change in libosmocore[master]: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout 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/+/23925 to look at the new patch set (#4). Change subject: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout The api doc indicates the possibility to pass -1, and calling osmo_tdef_get() actually casts the arg to a signed long. To end the confusion, change default_timeout from unsigned long to long. Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 --- M TODO-RELEASE M include/osmocom/core/tdef.h M src/tdef.c 3 files changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/23925/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 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 Wed Apr 28 14:55:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 14:55:05 +0000 Subject: Change in libosmocore[master]: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23925 ) Change subject: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 14:55: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 Apr 28 15:33:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 15:33:10 +0000 Subject: Change in libosmocore[master]: socket: reduce code duplication, introduce socket_helper_tail() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23933 ) Change subject: socket: reduce code duplication, introduce socket_helper_tail() ...................................................................... Patch Set 1: > I don't like code duplication and vote for this patch, but agree with Pau here. What about using a more concrete name than socket_helper_tail(), e.g. socket_set_nonblock()? because I'd then have to rename it in the next patch which adds more code to _tail() -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95056940ddc26b65f63eedaeaab6882edaef6317 Gerrit-Change-Number: 23933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 28 Apr 2021 15:33: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 Apr 28 15:38:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 15:38:37 +0000 Subject: Change in osmo-gsm-manuals[master]: glossary: fix various typos I introduced. References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23944 ) Change subject: glossary: fix various typos I introduced. ...................................................................... glossary: fix various typos I introduced. Change-Id: Iaf045bd20afb86384e00663df234197eed4d31c4 --- M common/chapters/glossary.adoc 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/44/23944/1 diff --git a/common/chapters/glossary.adoc b/common/chapters/glossary.adoc index 20794a1..926ebd3 100644 --- a/common/chapters/glossary.adoc +++ b/common/chapters/glossary.adoc @@ -77,12 +77,12 @@ deci-Bel (milliwatt); unit of measurement for signal strength of radio signals DHCP:: - Dynamic Host Configuration Protocol (_IETF RFC 2131_ <> + Dynamic Host Configuration Protocol (_IETF RFC 2131_ <>) downlink:: Direction of messages / signals from the network core towards the mobile phone DSCP:: - Diffrentiated Services Code Point (_IETF RFC 2474_ <> + Differentiated Services Code Point (_IETF RFC 2474_ <>) DSP:: Digital Signal Processor dvnixload:: @@ -359,7 +359,7 @@ TFTP:: Trivial File Transfer Protocol; (_IETF RFC 1350_ <>) TOS:: - Type Of Service; bit-field in IPv4 header, now re-used as DSCP (_IETF RFC 791_ <>) TRX:: Transceiver; element of a BTS serving a single carrier TS:: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23944 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: Iaf045bd20afb86384e00663df234197eed4d31c4 Gerrit-Change-Number: 23944 Gerrit-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 Apr 28 15:39:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 15:39:35 +0000 Subject: Change in osmo-gsm-manuals[master]: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 ) Change subject: Add new common chapter about QoS, IP DSCP and IEEE 802.1q PCP ...................................................................... Patch Set 6: (4 comments) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/glossary.adoc File common/chapters/glossary.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/glossary.adoc at 80 PS6, Line 80: ( > Here too, BTW. thanks, fixed in https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23944 https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/glossary.adoc at 85 PS6, Line 85: ( > Missing closing brace for this one. thanks, fixed in https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23944 https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/glossary.adoc at 362 PS6, Line 362: << > Missing closing '>>' thanks, fixed in https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23944 https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/qos-dscp-pcp.adoc File common/chapters/qos-dscp-pcp.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926/6/common/chapters/qos-dscp-pcp.adoc at 161 PS6, Line 161: include::{srcdir}/chapters/qos-example.adoc[] > AFAIU, this file needs to be in the projects's source tree, right? yes, that's correct. So every program can bring its own example into this section. That's why it uses {scrdir} and not common in the path. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23926 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: Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Gerrit-Change-Number: 23926 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 28 Apr 2021 15:39:35 +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 Apr 28 15:39:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 15:39:59 +0000 Subject: Change in osmo-gsm-manuals[master]: glossary: fix various typos I introduced. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23944 ) Change subject: glossary: fix various typos I introduced. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23944 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: Iaf045bd20afb86384e00663df234197eed4d31c4 Gerrit-Change-Number: 23944 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 28 Apr 2021 15:39: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 Apr 28 15:41:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 15:41:18 +0000 Subject: Change in osmo-gsm-manuals[master]: glossary: fix various typos I introduced. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23944 ) Change subject: glossary: fix various typos I introduced. ...................................................................... glossary: fix various typos I introduced. Change-Id: Iaf045bd20afb86384e00663df234197eed4d31c4 --- M common/chapters/glossary.adoc 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/common/chapters/glossary.adoc b/common/chapters/glossary.adoc index 20794a1..926ebd3 100644 --- a/common/chapters/glossary.adoc +++ b/common/chapters/glossary.adoc @@ -77,12 +77,12 @@ deci-Bel (milliwatt); unit of measurement for signal strength of radio signals DHCP:: - Dynamic Host Configuration Protocol (_IETF RFC 2131_ <> + Dynamic Host Configuration Protocol (_IETF RFC 2131_ <>) downlink:: Direction of messages / signals from the network core towards the mobile phone DSCP:: - Diffrentiated Services Code Point (_IETF RFC 2474_ <> + Differentiated Services Code Point (_IETF RFC 2474_ <>) DSP:: Digital Signal Processor dvnixload:: @@ -359,7 +359,7 @@ TFTP:: Trivial File Transfer Protocol; (_IETF RFC 1350_ <>) TOS:: - Type Of Service; bit-field in IPv4 header, now re-used as DSCP (_IETF RFC 791_ <>) TRX:: Transceiver; element of a BTS serving a single carrier TS:: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/23944 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: Iaf045bd20afb86384e00663df234197eed4d31c4 Gerrit-Change-Number: 23944 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 Apr 28 15:45:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 15:45:39 +0000 Subject: Change in libosmocore[master]: socket: reduce code duplication, introduce socket_helper_tail() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23933 ) Change subject: socket: reduce code duplication, introduce socket_helper_tail() ...................................................................... Patch Set 1: Code-Review+1 Ok then! -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95056940ddc26b65f63eedaeaab6882edaef6317 Gerrit-Change-Number: 23933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 15: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 Wed Apr 28 15:48:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 15:48:17 +0000 Subject: Change in libosmocore[master]: socket: QoS support for all our socket init functions In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23934 ) Change subject: socket: QoS support for all our socket init functions ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23934/1/include/osmocom/core/socket.h File include/osmocom/core/socket.h: https://gerrit.osmocom.org/c/libosmocore/+/23934/1/include/osmocom/core/socket.h at 48 PS1, Line 48: &0x3f A bit hard to read without spaces around the '&', but not critical. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If22988735fe05e51226c6b091a5348dcf1208cdf Gerrit-Change-Number: 23934 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 15:48:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 15:52:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 15:52:20 +0000 Subject: Change in osmo-bsc[master]: log: drop duplicate logging in ts_setup_lchans() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23939 ) Change subject: log: drop duplicate logging in ts_setup_lchans() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I569229328229047d399033d1483d09d323826692 Gerrit-Change-Number: 23939 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 15:52: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 Apr 28 15:54:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 15:54:21 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: mode modify: fix missing timeouts and error transitions In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23942 ) Change subject: lchan_fsm: mode modify: fix missing timeouts and error transitions ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6364cfb78f661f5f7473dcec488e361e6a1dc9e4 Gerrit-Change-Number: 23942 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 15:54: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 Apr 28 15:55:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 15:55:15 +0000 Subject: Change in osmo-bsc[master]: comment: tweak pchan_subslots() description In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23940 ) Change subject: comment: tweak pchan_subslots() description ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4d3ca6efc7b4fadd6711ae80502027cec1b7b84e Gerrit-Change-Number: 23940 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 15:55:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 15:55:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 15:55:44 +0000 Subject: Change in osmo-bsc[master]: lchan_release(): do not release UNUSED lchan In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23941 ) Change subject: lchan_release(): do not release UNUSED lchan ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6e9faf682d1668388d5470419110408a098b9900 Gerrit-Change-Number: 23941 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 15:55:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:25 +0000 Subject: Change in docker-playground[master]: make: add UID as --build-arg References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23945 ) Change subject: make: add UID as --build-arg ...................................................................... make: add UID as --build-arg Allow to give the user running inside docker the same UID as the user outside. Change-Id: I4b3689a626c50c9ac38eca6b5449b8ec0344c3de --- M make/Makefile 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/45/23945/1 diff --git a/make/Makefile b/make/Makefile index d2cacf3..3b4ea81 100644 --- a/make/Makefile +++ b/make/Makefile @@ -15,6 +15,7 @@ # REGISTRY_HOST?=docker.io USERNAME?=$(USER) +UID=$(shell id -u) NAME?=$(shell basename $(CURDIR)) LIBOSMOCORE_BRANCH?=master OSMO_TTCN3_BRANCH?=master @@ -69,6 +70,7 @@ docker-build: .release docker build \ --build-arg USER=$(USERNAME) \ + --build-arg UID=$(UID) \ --build-arg REGISTRY=$(REGISTRY_HOST) \ --build-arg OSMO_TTCN3_BRANCH=$(OSMO_TTCN3_BRANCH) \ --build-arg UPSTREAM_DISTRO=$(UPSTREAM_DISTRO) \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b3689a626c50c9ac38eca6b5449b8ec0344c3de Gerrit-Change-Number: 23945 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:25 +0000 Subject: Change in docker-playground[master]: debian10-obs-submit: new container References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23946 ) Change subject: debian10-obs-submit: new container ...................................................................... debian10-obs-submit: new container Add new container to be used by osmo-ci Icc89e20950c2aaa67b209340d1d797b76fce32d2. Related: SYS#5370 Change-Id: Ibb55ad18d2ccf4313f52fa3e3c10d4420c84dced --- A debian10-obs-submit/Dockerfile A debian10-obs-submit/Makefile 2 files changed, 27 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/46/23946/1 diff --git a/debian10-obs-submit/Dockerfile b/debian10-obs-submit/Dockerfile new file mode 100644 index 0000000..bc3bbf7 --- /dev/null +++ b/debian10-obs-submit/Dockerfile @@ -0,0 +1,26 @@ +# Used by osmo-ci.git scripts/osmocom-packages-docker.sh +ARG REGISTRY=docker.io +ARG UPSTREAM_DISTRO=debian:buster +FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG UID + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y --no-install-recommends \ + debhelper \ + devscripts \ + dpkg-dev \ + git \ + git-buildpackage \ + meson \ + osc \ + patch \ + sed \ + && \ + apt-get clean + +RUN useradd --uid=${UID} -m user +USER user +RUN git config --global user.email "obs-submit at docker" && \ + git config --global user.name "obs-submit" diff --git a/debian10-obs-submit/Makefile b/debian10-obs-submit/Makefile new file mode 100644 index 0000000..8d0e10b --- /dev/null +++ b/debian10-obs-submit/Makefile @@ -0,0 +1 @@ +include ../make/Makefile -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ibb55ad18d2ccf4313f52fa3e3c10d4420c84dced Gerrit-Change-Number: 23946 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:31 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: no change to osmocom-$FEED changelog References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23947 ) Change subject: OBS: nightly: no change to osmocom-$FEED changelog ...................................................................... OBS: nightly: no change to osmocom-$FEED changelog Skip the logic to generate a new debian/changelog version for osmocom-nightly and osmocom-next packages in build(). Use $OSMO_OBS_CONFLICT_PKGVER instead, as it gets written to debian/changelog in common-obs-conflict.sh already, and append the date to the variable. This is in preparation to add the date to versions of Osmocom nightly/next packages too, without this change we would have it twice in the osmocom-$FEED packages. Related: OS#5135 Change-Id: I85f0bcb633c16c7b5a81104f198d9561f53c0c01 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/47/23947/1 diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index c90ed2f..6ae8a26 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -11,6 +11,7 @@ set -x DT=$(date +%Y%m%d%H%M) +OSMO_OBS_CONFLICT_PKGVER="$OSMO_OBS_CONFLICT_PKGVER.$DT" TOP=$(pwd)/$(mktemp -d nightly-3g_XXXXXX) # Set FEED and PROJ, based on the FEED env var @@ -117,7 +118,7 @@ local gitbpargs=$3 local repodir=$REPO/$name local oscdir=$REPO/osc/$PROJ/$name - local dependver="$OSMO_OBS_CONFLICT_PKGVER.$DT" + local dependver="$OSMO_OBS_CONFLICT_PKGVER" if [ -z "$changelog" ] ; then changelog=commit @@ -239,7 +240,7 @@ osmo_obs_checkout_copy debian8 osmo-gsm-manuals osmo_obs_checkout_copy debian8 osmo-trx - build osmocom-$FEED + build osmocom-$FEED no_commit build limesuite no_commit --git-upstream-tree="$(get_last_tag limesuite)" build osmo-gsm-manuals build osmo-gsm-manuals-debian8 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I85f0bcb633c16c7b5a81104f198d9561f53c0c01 Gerrit-Change-Number: 23947 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:31 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: append date to package versions References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23948 ) Change subject: OBS: nightly: append date to package versions ...................................................................... OBS: nightly: append date to package versions Add date to increase version of Osmocom packages even if commit did not change. Fixes: OS#5135 Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/48/23948/1 diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 6ae8a26..706d786 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -138,7 +138,8 @@ cd "$repodir" if [ "$changelog" = "commit" ] ; then - VER=$(get_commit_version) + # Add date to increase version even if commit did not change (OS#5135) + VER="$(get_commit_version).$DT" osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" "$dependver" dch -b -v "$VER" -m "Snapshot build" git commit -m "$VER snapshot" debian/ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 Gerrit-Change-Number: 23948 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:32 +0000 Subject: Change in osmo-ci[master]: OBS: require PROJ environment variable to be set References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23949 ) Change subject: OBS: require PROJ environment variable to be set ...................................................................... OBS: require PROJ environment variable to be set Uploading to network:osmocom:* should only be done when these scripts are running in the Osmocom jenkins. Remove the default and require users of the script to explicitly set PROJ. Related: SYS#5370 Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 --- M jobs/osmocom-obs.yml M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 4 files changed, 14 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/49/23949/1 diff --git a/jobs/osmocom-obs.yml b/jobs/osmocom-obs.yml index 4d165d6..6562745 100644 --- a/jobs/osmocom-obs.yml +++ b/jobs/osmocom-obs.yml @@ -27,6 +27,7 @@ default: 'refs/remotes/origin/master' builders: - shell: + export PROJ=network:osmocom:{type} ./scripts/osmocom-{type}-packages.sh scm: - git: diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 38719c8..c5b03f9 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -15,6 +15,10 @@ sed \ wget +if [ -z "$PROJ" ]; then + echo "PROJ environment variable is not set" + exit 1 +fi # Add dependency to all (sub)packages in debian/control and commit the change. # $1: path to debian/control file diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 8eef259..605023c 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -1,14 +1,13 @@ #!/bin/sh # Generate source packages and upload them to OBS, for the latest feed. +# Environment variables: +# * PROJ: the OBS namespace to upload to (e.g. network:osmocom:latest) . "$(dirname "$0")/common.sh" . "$(dirname "$0")/common-obs.sh" set -e set -x -# OBS project name -PROJ=network:osmocom:latest - DT=$(date +%Y%m%d%H%M) TOP=$(pwd) DEBSRCDIR="$TOP/debsrc" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 706d786..5d37763 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -1,7 +1,8 @@ #!/bin/bash # Generate source packages and upload them to OBS, for the nightly or next feed. # Environment variables: -# * FEED: the binary package feed to upload to, this also controls the source branch that is used: +# * PROJ: the OBS namespace to upload to (e.g. network:osmocom:nightly) +# * FEED: controls the source branch that is used: # * "nightly": use "master" branch (default) # * "next": use "next" branch if it exists, otherwise use "master" branch . "$(dirname "$0")/common.sh" @@ -13,23 +14,12 @@ DT=$(date +%Y%m%d%H%M) OSMO_OBS_CONFLICT_PKGVER="$OSMO_OBS_CONFLICT_PKGVER.$DT" TOP=$(pwd)/$(mktemp -d nightly-3g_XXXXXX) +FEED="${FEED:-nightly}" -# Set FEED and PROJ, based on the FEED env var -parse_feed_proj() { - FEED="${FEED:-nightly}" - case "$FEED" in - nightly) - PROJ=network:osmocom:nightly - ;; - next) - PROJ=network:osmocom:next - ;; - *) - echo "unsupported feed: $FEED" - exit 1 - ;; - esac -} +if [ "$FEED" != "nightly" ] && [ "$FEED" != "next" ]; then + echo "unsupported feed: $FEED" + exit 1 +fi ### OBS build prepare() { @@ -284,5 +274,4 @@ post } -parse_feed_proj build_osmocom -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 Gerrit-Change-Number: 23949 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:33 +0000 Subject: Change in osmo-ci[master]: Cosmetic: OBS: explain difference latest/nightly References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23950 ) Change subject: Cosmetic: OBS: explain difference latest/nightly ...................................................................... Cosmetic: OBS: explain difference latest/nightly Related: SYS#5370 Change-Id: I4de2a9e9d096f8f77bfd72b8cabb0a69af2d51df --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/50/23950/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 605023c..fd89471 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -1,5 +1,6 @@ #!/bin/sh # Generate source packages and upload them to OBS, for the latest feed. +# New packages are only uploaded if the source changed. # Environment variables: # * PROJ: the OBS namespace to upload to (e.g. network:osmocom:latest) . "$(dirname "$0")/common.sh" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 5d37763..95e7400 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -1,5 +1,7 @@ #!/bin/bash # Generate source packages and upload them to OBS, for the nightly or next feed. +# New packages are always uploaded, even if the source does not change. Only +# packages of the same build date (DT) can be installed together. # Environment variables: # * PROJ: the OBS namespace to upload to (e.g. network:osmocom:nightly) # * FEED: controls the source branch that is used: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4de2a9e9d096f8f77bfd72b8cabb0a69af2d51df Gerrit-Change-Number: 23950 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:34 +0000 Subject: Change in osmo-ci[master]: OBS: latest: support new 2021q1 feed References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23951 ) Change subject: OBS: latest: support new 2021q1 feed ...................................................................... OBS: latest: support new 2021q1 feed Related: SYS#5370 Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 --- M scripts/osmocom-latest-packages.sh 1 file changed, 54 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/51/23951/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index fd89471..767d866 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -3,15 +3,38 @@ # New packages are only uploaded if the source changed. # Environment variables: # * PROJ: the OBS namespace to upload to (e.g. network:osmocom:latest) +# * FEED: +# * "latest": use latest tagged release (default) +# * other (e.g. "2021q1"): use last commit of branch of same name, exit with +# error if it does not exist . "$(dirname "$0")/common.sh" . "$(dirname "$0")/common-obs.sh" +FEEDS=" + 2021q1 + latest +" + set -e set -x DT=$(date +%Y%m%d%H%M) TOP=$(pwd) DEBSRCDIR="$TOP/debsrc" +FEED="${FEED:-latest}" + +verify_feed() { + local i + + for i in $FEEDS; do + if [ "$i" = "$FEED" ]; then + return + fi + done + + echo "unsupported feed: $FEED" + exit 1 +} ### OBS build prepare() { @@ -25,7 +48,15 @@ mkdir "$DEBSRCDIR" cd "$TOP" - osmo_obs_prepare_conflict "osmocom-latest" "osmocom-nightly" "osmocom-next" + + local conflict_args="osmocom-nightly osmocom-next" + local i + for i in $FEEDS; do + if [ "$i" != "$FEED" ]; then + conflict_args="$conflict_args osmocom-$i" + fi + done + osmo_obs_prepare_conflict "osmocom-$FEED" $conflict_args } get_last_tag() { @@ -54,8 +85,14 @@ [ -d "$project" ] || osmo_git_clone_date "$url" "$project" cd "$project" git fetch - VER=$(get_last_tag "$project") - git checkout -f -B "$VER" "refs/tags/$VER" + + if [ "$FEED" = "latest" ]; then + VER=$(get_last_tag "$project") + git checkout -f -B "$VER" "refs/tags/$VER" + else + git checkout -f -B "$FEED" "origin/$FEED" + fi + if [ "$project" = "open5gs" ]; then meson subprojects download freeDiameter fi @@ -68,12 +105,18 @@ echo echo "====> Building $project" cd "$TOP/$project" - VER=$(get_last_tag "$project") + + if [ "$FEED" = "latest" ]; then + debian_branch=$(get_last_tag "$project") + else + debian_branch="$FEED" + fi + if [ -x ./git-version-gen ]; then ./git-version-gen . > .tarball-version 2>/dev/null fi - osmo_obs_add_depend_deb "./debian/control" "$project" "osmocom-latest" + osmo_obs_add_depend_deb "./debian/control" "$project" "osmocom-$FEED" if [ "$project" = "open5gs" ]; then # we cannot control the output directory of the generated source :( @@ -82,11 +125,11 @@ mv "../$name"*.tar* "../$name"*.dsc "$output" elif [ -x ./git-version-gen ]; then gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$output" \ - "--git-debian-branch=$VER" --git-ignore-new $gitbpargs \ + "--git-debian-branch=$debian_branch" --git-ignore-new $gitbpargs \ --git-postexport='cp $GBP_GIT_DIR/../.tarball-version $GBP_TMP_DIR/' else gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$output" \ - "--git-debian-branch=$VER" --git-ignore-new $gitbpargs + "--git-debian-branch=$debian_branch" --git-ignore-new $gitbpargs fi if [ ! -d "$TOP/$PROJ/$project" ] ; then @@ -109,7 +152,7 @@ fi fi - osmo_obs_add_rpm_spec "$TOP/$PROJ/$project" "$TOP/$project" "$project" "osmocom-latest" + osmo_obs_add_rpm_spec "$TOP/$PROJ/$project" "$TOP/$project" "$project" "osmocom-$FEED" cd "$TOP" } @@ -159,7 +202,7 @@ cd "$TOP" osmo_obs_checkout_copy debian8 osmo-gsm-manuals - build osmocom-latest + build osmocom-$FEED build limesuite --git-upstream-tree="$(get_last_tag limesuite)" build osmo-gsm-manuals build osmo-gsm-manuals-debian8 @@ -196,7 +239,8 @@ build osmo-gbproxy cd "$TOP/$PROJ" - osc ci -m "Latest Tagged versions of $DT" --noservice + osc ci -m "$FEED versions of $DT" --noservice } +verify_feed build_osmocom -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 Gerrit-Change-Number: 23951 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:34 +0000 Subject: Change in osmo-ci[master]: OBS: add PACKAGES env var References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23952 ) Change subject: OBS: add PACKAGES env var ...................................................................... OBS: add PACKAGES env var Skip checking out and building source packages of all other packages, if the environment variable is set. Related: SYS#5370 Change-Id: I83c3744713fd6abda4b832460f30eb2e79ebeed8 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 52 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/52/23952/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index c5b03f9..156dfba 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -171,6 +171,27 @@ fi } +# Check if checkout or build of a given package should be skipped, based on the +# PACKAGES environment variable. +# $1: package name (e.g. "libosmocore") +osmo_obs_skip_pkg() { + local pkgname="$1" + + if [ -z "$PACKAGES" ]; then + # Don't skip + return 1 + fi + + for i in "osmocom-$FEED" $PACKAGES; do + if [ "$i" = "$pkgname" ]; then + return 1 + fi + done + + # Skip + return 0 +} + # Copy an already checked out repository dir and apply a distribution specific patch. # $PWD must be where all repositories are checked out in subdirs. # $1: distribution name (e.g. "debian8") @@ -180,6 +201,10 @@ local repo="$2" local patch + if osmo_obs_skip_pkg "$repo"; then + return + fi + echo echo "====> Checking out $repo-$distro" diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 767d866..c530f27 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -7,6 +7,7 @@ # * "latest": use latest tagged release (default) # * other (e.g. "2021q1"): use last commit of branch of same name, exit with # error if it does not exist +# * PACKAGES: set to a space-separated list of packages to skip all others . "$(dirname "$0")/common.sh" . "$(dirname "$0")/common-obs.sh" @@ -75,6 +76,10 @@ url=$2 gitbpargs="" + if osmo_obs_skip_pkg "$project"; then + return + fi + if [ -z "$url" ]; then url="$(osmo_git_clone_url "$project")" fi @@ -102,6 +107,11 @@ project=$1 gitbpargs="$2" output="$DEBSRCDIR/$project" + + if osmo_obs_skip_pkg "$project"; then + return + fi + echo echo "====> Building $project" cd "$TOP/$project" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 95e7400..ea69b94 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -7,6 +7,7 @@ # * FEED: controls the source branch that is used: # * "nightly": use "master" branch (default) # * "next": use "next" branch if it exists, otherwise use "master" branch +# * PACKAGES: set to a space-separated list of packages to skip all others . "$(dirname "$0")/common.sh" . "$(dirname "$0")/common-obs.sh" @@ -85,6 +86,10 @@ local url=$2 local branch=$3 + if osmo_obs_skip_pkg "$name"; then + return + fi + if [ -z "$url" ]; then url="$(osmo_git_clone_url "$name")" fi @@ -112,6 +117,10 @@ local oscdir=$REPO/osc/$PROJ/$name local dependver="$OSMO_OBS_CONFLICT_PKGVER" + if osmo_obs_skip_pkg "$name"; then + return + fi + if [ -z "$changelog" ] ; then changelog=commit fi @@ -165,6 +174,10 @@ } checkout_limesuite() { + if osmo_obs_skip_pkg "limesuite"; then + return + fi + cd "$REPO" git clone https://github.com/myriadrf/LimeSuite limesuite TAG="$(get_last_tag limesuite)" @@ -173,6 +186,10 @@ } checkout_open5gs() { + if osmo_obs_skip_pkg "open5gs"; then + return + fi + cd "$REPO" git clone https://github.com/open5gs/open5gs cd open5gs -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I83c3744713fd6abda4b832460f30eb2e79ebeed8 Gerrit-Change-Number: 23952 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:34 +0000 Subject: Change in osmo-ci[master]: OBS: refactor git_version_gen related logic References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23953 ) Change subject: OBS: refactor git_version_gen related logic ...................................................................... OBS: refactor git_version_gen related logic Move git_version_gen calls into an own function and add some of the description from I76e3713f0b01a6110091ff90e8e53aa79533c374 where this code was added. Don't call it inside get_commit_version anymore, but call it before. Don't try to cat the resulting .tarball-version there if it doesn't exist. Related: SYS#5370 Change-Id: I9a1b6ae4b4311abb77dc6390733c5e330e3d489e --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 21 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/53/23953/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 156dfba..a585e46 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -243,3 +243,12 @@ git commit -m "auto-commit: apply $patch" debian/ cd .. } + +# Run git-version-gen inside Osmocom repositories, so the .tarball-version +# becomes part of the source repository. Usually this would be done with +# "make dist", but we use git-buildpackage instead. +osmo_obs_git_version_gen() { + if [ -x ./git-version-gen ]; then + ./git-version-gen . > .tarball-version 2>/dev/null + fi +} diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index c530f27..a0bac45 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -122,9 +122,7 @@ debian_branch="$FEED" fi - if [ -x ./git-version-gen ]; then - ./git-version-gen . > .tarball-version 2>/dev/null - fi + osmo_obs_git_version_gen osmo_obs_add_depend_deb "./debian/control" "$project" "osmocom-$FEED" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index ea69b94..07b0c81 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -53,15 +53,18 @@ echo "${VER}" } +# Return a version based on the latest tag and commit (e.g. "1.5.1.93.47cc") +# or fall back to the last debian version with current date appended +# (e.g. "2.2.6.202104270126"). Run osmo_obs_git_version_gen before. +# $PWD must be inside a git repository. get_commit_version() { - # return a version based on the commit - local version + local version="" - # determine git version *and generate the .tarball-version file* - test -x ./git-version-gen && ./git-version-gen . > .tarball-version 2>/dev/null - version=$(cat .tarball-version) - # debian doesn't allow '-' in version. - version=$(echo "$version" | sed 's/-/./g' ) + if [ -e ".tarball-version" ]; then + version=$(cat .tarball-version) + # debian doesn't allow '-' in version. + version=$(echo "$version" | sed 's/-/./g' ) + fi # deb version deb_version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,') @@ -139,6 +142,7 @@ cd "$repodir" if [ "$changelog" = "commit" ] ; then + osmo_obs_git_version_gen # Add date to increase version even if commit did not change (OS#5135) VER="$(get_commit_version).$DT" osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" "$dependver" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I9a1b6ae4b4311abb77dc6390733c5e330e3d489e Gerrit-Change-Number: 23953 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:34 +0000 Subject: Change in osmo-ci[master]: OBS: latest: add commit to version for 2021q1 feed References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23954 ) Change subject: OBS: latest: add commit to version for 2021q1 feed ...................................................................... OBS: latest: add commit to version for 2021q1 feed Move get_commit_version to common-obs.sh and call it in osmocom-latest-packages.sh, if the feed is not "latest". This way, the packages don't have the latest tag as version anymore, and the version changes if commits get pushed to the feed's branch. Related: SYS#5370 Change-Id: I4a4fa3b8f66652ef36a7fe62047a88a69c473f19 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 39 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/54/23954/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index a585e46..0fba061 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -252,3 +252,33 @@ ./git-version-gen . > .tarball-version 2>/dev/null fi } + +# Return a version based on the latest tag and commit (e.g. "1.5.1.93.47cc") +# or fall back to the last debian version with current date appended +# (e.g. "2.2.6.202104270126"). Run osmo_obs_git_version_gen before. +# $PWD must be inside a git repository. +osmo_obs_get_commit_version() { + local version="" + + if [ -e ".tarball-version" ]; then + version=$(cat .tarball-version) + # debian doesn't allow '-' in version. + version=$(echo "$version" | sed 's/-/./g' ) + fi + + # deb version + deb_version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,') + if [ -z "$version" ] || [ "$version" = "UNKNOWN" ]; then + version="$deb_version.$DT" + else + # add epoch from debian/changelog + case $deb_version in + *:*) + epoch=$(echo "$deb_version" | cut -d : -f 1) + version=$epoch:$version + ;; + esac + fi + + echo -n "$version" +} diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index a0bac45..1f0ed77 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -116,14 +116,20 @@ echo "====> Building $project" cd "$TOP/$project" + osmo_obs_git_version_gen + if [ "$FEED" = "latest" ]; then debian_branch=$(get_last_tag "$project") else debian_branch="$FEED" + # Set new debian changelog version with commit appended. This version will + # become part of resulting filenames, and will change if commits have been + # added to the feed's branch. + VER="$(osmo_obs_get_commit_version)" + dch -b -v "$VER" -m "Snapshot build" + git commit -m "$VER snapshot" debian/ fi - osmo_obs_git_version_gen - osmo_obs_add_depend_deb "./debian/control" "$project" "osmocom-$FEED" if [ "$project" = "open5gs" ]; then diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 07b0c81..3b5304d 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -53,36 +53,6 @@ echo "${VER}" } -# Return a version based on the latest tag and commit (e.g. "1.5.1.93.47cc") -# or fall back to the last debian version with current date appended -# (e.g. "2.2.6.202104270126"). Run osmo_obs_git_version_gen before. -# $PWD must be inside a git repository. -get_commit_version() { - local version="" - - if [ -e ".tarball-version" ]; then - version=$(cat .tarball-version) - # debian doesn't allow '-' in version. - version=$(echo "$version" | sed 's/-/./g' ) - fi - - # deb version - deb_version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,') - if [ -z "$version" ] || [ "$version" = "UNKNOWN" ]; then - version="$deb_version.$DT" - else - # add epoch from debian/changelog - case $deb_version in - *:*) - epoch=$(echo "$deb_version" | cut -d : -f 1) - version=$epoch:$version - ;; - esac - fi - - echo -n "$version" -} - ### common checkout() { local name=$1 @@ -144,7 +114,7 @@ if [ "$changelog" = "commit" ] ; then osmo_obs_git_version_gen # Add date to increase version even if commit did not change (OS#5135) - VER="$(get_commit_version).$DT" + VER="$(osmo_obs_get_commit_version).$DT" osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" "$dependver" dch -b -v "$VER" -m "Snapshot build" git commit -m "$VER snapshot" debian/ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a4fa3b8f66652ef36a7fe62047a88a69c473f19 Gerrit-Change-Number: 23954 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:35 +0000 Subject: Change in osmo-ci[master]: OBS: common: don't require wget anymore References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23955 ) Change subject: OBS: common: don't require wget anymore ...................................................................... OBS: common: don't require wget anymore Not needed anymore since Iaf2527043e9acdb6acff3e481d4516ac4b75b7e7. Change-Id: I2e03487058e4c2c9426872975953fa1814b24ccd --- M scripts/common-obs.sh 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/55/23955/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 0fba061..36c0367 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -12,8 +12,7 @@ mktemp \ osc \ patch \ - sed \ - wget + sed if [ -z "$PROJ" ]; then echo "PROJ environment variable is not set" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I2e03487058e4c2c9426872975953fa1814b24ccd Gerrit-Change-Number: 23955 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:11:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 28 Apr 2021 16:11:35 +0000 Subject: Change in osmo-ci[master]: OBS: add osmocom-packages-docker.sh References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23956 ) Change subject: OBS: add osmocom-packages-docker.sh ...................................................................... OBS: add osmocom-packages-docker.sh Add a simple helper script to run osmocom-*-packages.sh in docker to avoid installing dependencies on the host system. Related: SYS#5370 Depends: docker-playground Ibb55ad18d2ccf4313f52fa3e3c10d4420c84dced Change-Id: Icc89e20950c2aaa67b209340d1d797b76fce32d2 --- A scripts/osmocom-packages-docker.sh 1 file changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/56/23956/1 diff --git a/scripts/osmocom-packages-docker.sh b/scripts/osmocom-packages-docker.sh new file mode 100755 index 0000000..66eb311 --- /dev/null +++ b/scripts/osmocom-packages-docker.sh @@ -0,0 +1,34 @@ +#!/bin/sh -ex +# Run osmocom-*-packages.sh in a docker container, so dependencies don't need +# to be installed on the host machine. See osmocom-nightly-packages.sh and +# osmocom-latest-packages.sh for supported environment variables. +SCRIPTS="$(realpath "$(dirname "$0")")" +IMAGE="debian10-obs-submit" +OSCRC="${OSCRC:-.oscrc}" + +if ! [ -f "$OSCRC" ]; then + echo "ERROR: missing OSCRC (should point to OSC credentials file)" + exit 1 +fi + +. "$SCRIPTS/common.sh" +docker_images_require "$IMAGE" + +case "$FEED" in +nightly|next|latest) + SCRIPT="osmocom-$FEED-packages.sh" + ;; +*) + # "2021q1" etc, osmocom-latest.sh verifies and uses $FEED + SCRIPT="osmocom-latest-packages.sh" + ;; +esac + +docker run \ + -e "FEED=$FEED" \ + -e "PACKAGES=$PACKAGES" \ + -e "PROJ=$PROJ" \ + -v "$SCRIPTS:/scripts" \ + -v "$(realpath "$OSCRC"):/home/user/.oscrc" \ + "$USER/$IMAGE" \ + sh -c "cd ~ && /scripts/$SCRIPT" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icc89e20950c2aaa67b209340d1d797b76fce32d2 Gerrit-Change-Number: 23956 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 16:42:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 16:42:55 +0000 Subject: Change in libosmo-abis[master]: ipa: Introduce support for user-specific DSCP and priority References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23957 ) Change subject: ipa: Introduce support for user-specific DSCP and priority ...................................................................... ipa: Introduce support for user-specific DSCP and priority This adds new members to struct ipa_server_link and ipa_client_conn, which can be set by the user before ipa_client_conn_open() or ipa_server_link_open() to ensure DSCP / priority values are applied from the first outgoing packet onwards. Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c --- M TODO-RELEASE M include/osmocom/abis/ipa.h M src/input/ipa.c 3 files changed, 14 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/57/23957/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index d0852fc..7e2cdb0 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,3 +7,5 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line +libosmo-abis ABI break ipa_client_conn new struct members dscp, priority +libosmo-abis ABI break ipa_server_link new struct members dscp, priority diff --git a/include/osmocom/abis/ipa.h b/include/osmocom/abis/ipa.h index 4764a95..7e13a6d 100644 --- a/include/osmocom/abis/ipa.h +++ b/include/osmocom/abis/ipa.h @@ -19,6 +19,8 @@ uint16_t port; int (*accept_cb)(struct ipa_server_link *link, int fd); void *data; + uint8_t dscp; + uint8_t priority; }; struct ipa_server_link * @@ -80,6 +82,8 @@ struct msgb *pending_msg; const char *local_addr; uint16_t local_port; + uint8_t dscp; + uint8_t priority; }; struct ipa_client_conn * diff --git a/src/input/ipa.c b/src/input/ipa.c index f01ecd9..c121987 100644 --- a/src/input/ipa.c +++ b/src/input/ipa.c @@ -224,7 +224,8 @@ ret = osmo_sock_init2(AF_INET, SOCK_STREAM, IPPROTO_TCP, link->local_addr, link->local_port, link->addr, link->port, - OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT|OSMO_SOCK_F_NONBLOCK); + OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT|OSMO_SOCK_F_NONBLOCK| + OSMO_SOCK_F_DSCP(link->dscp) | OSMO_SOCK_F_PRIO(link->priority)); if (ret < 0) return ret; link->ofd->fd = ret; @@ -282,6 +283,10 @@ LOGIPA(link, LOGL_NOTICE, "accept()ed new link from %s:%u\n", inet_ntoa(sa.sin_addr), ntohs(sa.sin_port)); + /* make new fd inherit DSCP + priority of listen-socket */ + osmo_sock_set_dscp(fd, link->dscp); + osmo_sock_set_priority(fd, link->priority); + ret = link->accept_cb(link, fd); if (ret < 0) { LOGP(DLINP, LOGL_ERROR, @@ -330,7 +335,8 @@ int ret; ret = osmo_sock_init(AF_INET, SOCK_STREAM, IPPROTO_TCP, - link->addr, link->port, OSMO_SOCK_F_BIND); + link->addr, link->port, OSMO_SOCK_F_BIND| + OSMO_SOCK_F_DSCP(link->dscp) | OSMO_SOCK_F_PRIO(link->priority)); if (ret < 0) return ret; -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Gerrit-Change-Number: 23957 Gerrit-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 Apr 28 16:42:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 16:42:55 +0000 Subject: Change in libosmo-abis[master]: e1_input: Allow (vty) configuration of IP DSCP and socket priority References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23958 ) Change subject: e1_input: Allow (vty) configuration of IP DSCP and socket priority ...................................................................... e1_input: Allow (vty) configuration of IP DSCP and socket priority Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Related: SYS#5427 --- M include/internal.h M src/e1_input_vty.c M src/input/ipaccess.c 3 files changed, 74 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/58/23958/1 diff --git a/include/internal.h b/include/internal.h index aeca02f..d0d5e23 100644 --- a/include/internal.h +++ b/include/internal.h @@ -10,6 +10,19 @@ struct e1inp_sign_link; struct e1inp_ts; +struct ipa_proto_pars { + uint8_t dscp; + uint8_t priority; +}; + +struct ipa_pars { + struct ipa_proto_pars oml; + struct ipa_proto_pars rsl; +}; + +/* global parameters of IPA input driver */ +extern struct ipa_pars g_e1inp_ipaccess_pars; + /* talloc context for libosmo-abis. */ extern void *libosmo_abis_ctx; @@ -19,6 +32,11 @@ void e1inp_ipa_set_bind_addr(const char *ip_bind_addr); const char *e1inp_ipa_get_bind_addr(void); +void e1inp_ipa_set_oml_dscp(uint8_t dscp); +void e1inp_ipa_set_rsl_dscp(uint8_t dscp); +void e1inp_ipa_set_oml_priority(uint8_t prio); +void e1inp_ipa_set_rsl_priority(uint8_t prio); + /* ipaccess.c requires these functions defined here */ struct msgb; struct msgb *ipa_msg_alloc(int headroom); diff --git a/src/e1_input_vty.c b/src/e1_input_vty.c index d915c19..aa2596c 100644 --- a/src/e1_input_vty.c +++ b/src/e1_input_vty.c @@ -1,5 +1,5 @@ /* E1 vty interface */ -/* (C) 2011 by Harald Welte +/* (C) 2011-2021 by Harald Welte * All Rights Reserved * * SPDX-License-Identifier: AGPL-3.0+ @@ -293,6 +293,38 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_ipa_dscp, cfg_ipa_dscp_cmd, + X(OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK), + "ipa dscp (oml|rsl) <0-63>", + "ipa driver config\n" + "Set IP DSCP value for outbound packets\n" + "Set IP DSCP for OML link\n" + "Set IP DSCP for RSL link\n" + "IP DSCP Value to use\n") +{ + if (!strcmp(argv[0], "oml")) + g_e1inp_ipaccess_pars.oml.dscp = atoi(argv[1]); + else + g_e1inp_ipaccess_pars.rsl.dscp = atoi(argv[1]); + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_ipa_priority, cfg_ipa_priority_cmd, + X(OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK), + "ipa priority (oml|rsl) <0-255>", + "ipa driver config\n" + "Set socket priority value for outbound packets\n" + "Set socket priority for OML link\n" + "Set socket priority for RSL link\n" + "socket priority value to use (>6 requires CAP_NET_ADMIN)\n") +{ + if (!strcmp(argv[0], "oml")) + g_e1inp_ipaccess_pars.oml.priority = atoi(argv[1]); + else + g_e1inp_ipaccess_pars.rsl.priority = atoi(argv[1]); + return CMD_SUCCESS; +} + static int e1inp_config_write(struct vty *vty) { struct e1inp_line *line; @@ -336,6 +368,15 @@ vty_out(vty, " ipa bind %s%s", ipa_bind, VTY_NEWLINE); + if (g_e1inp_ipaccess_pars.oml.dscp) + vty_out(vty, " ipa dscp oml %u%s", g_e1inp_ipaccess_pars.oml.dscp, VTY_NEWLINE); + if (g_e1inp_ipaccess_pars.rsl.dscp) + vty_out(vty, " ipa dscp rsl %u%s", g_e1inp_ipaccess_pars.rsl.dscp, VTY_NEWLINE); + if (g_e1inp_ipaccess_pars.oml.priority) + vty_out(vty, " ipa priority oml %u%s", g_e1inp_ipaccess_pars.oml.priority, VTY_NEWLINE); + if (g_e1inp_ipaccess_pars.rsl.priority) + vty_out(vty, " ipa priority rsl %u%s", g_e1inp_ipaccess_pars.rsl.priority, VTY_NEWLINE); + return CMD_SUCCESS; } @@ -491,6 +532,8 @@ install_lib_element(L_E1INP_NODE, &cfg_e1_line_no_ipa_keepalive_cmd); install_lib_element(L_E1INP_NODE, &cfg_ipa_bind_cmd); + install_lib_element(L_E1INP_NODE, &cfg_ipa_dscp_cmd); + install_lib_element(L_E1INP_NODE, &cfg_ipa_priority_cmd); install_lib_element_ve(&show_e1drv_cmd); install_lib_element_ve(&show_e1line_cmd); diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c index be882a9..e876790 100644 --- a/src/input/ipaccess.c +++ b/src/input/ipaccess.c @@ -1,6 +1,6 @@ /* OpenBSC Abis input driver for ip.access */ -/* (C) 2009 by Harald Welte +/* (C) 2009-2021 by Harald Welte * (C) 2010 by Holger Hans Peter Freyther * (C) 2010 by On-Waves * @@ -51,6 +51,9 @@ #include #include +/* global parameters of IPA input driver */ +struct ipa_pars g_e1inp_ipaccess_pars; + static void *tall_ipa_ctx; #define TS1_ALLOC_SIZE 900 @@ -1041,6 +1044,8 @@ "BSC link: %s\n", strerror(errno)); return -ENOMEM; } + oml_link->dscp = g_e1inp_ipaccess_pars.oml.dscp; + oml_link->priority = g_e1inp_ipaccess_pars.oml.priority; if (ipa_server_link_open(oml_link) < 0) { LOGP(DLINP, LOGL_ERROR, "cannot open OML BSC link: %s\n", strerror(errno)); @@ -1055,6 +1060,8 @@ "BSC link: %s\n", strerror(errno)); return -ENOMEM; } + rsl_link->dscp = g_e1inp_ipaccess_pars.rsl.dscp; + rsl_link->priority = g_e1inp_ipaccess_pars.rsl.priority; if (ipa_server_link_open(rsl_link) < 0) { LOGP(DLINP, LOGL_ERROR, "cannot open RSL BSC link: %s\n", strerror(errno)); @@ -1087,6 +1094,8 @@ "BTS link: %s\n", strerror(errno)); return -ENOMEM; } + link->dscp = g_e1inp_ipaccess_pars.oml.dscp; + link->priority = g_e1inp_ipaccess_pars.oml.priority; if (ipa_client_conn_open(link) < 0) { LOGP(DLINP, LOGL_ERROR, "cannot open OML BTS link: %s\n", strerror(errno)); @@ -1141,6 +1150,8 @@ "BTS link: %s\n", strerror(errno)); return -ENOMEM; } + rsl_link->dscp = g_e1inp_ipaccess_pars.rsl.dscp; + rsl_link->priority = g_e1inp_ipaccess_pars.rsl.priority; if (ipa_client_conn_open(rsl_link) < 0) { LOGP(DLINP, LOGL_ERROR, "cannot open RSL BTS link: %s\n", strerror(errno)); -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Gerrit-Change-Number: 23958 Gerrit-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 Apr 28 16:45:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 16:45:04 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example 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-bts/+/23927 to look at the new patch set (#2). Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... manual: Include QoS chapter and add osmo-bts specific example Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Requires: libosmo-abis.git I8991dd6eb406a5b9a70498974fc1ad339452f871 --- M TODO-RELEASE A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmobts-usermanual.adoc 3 files changed, 55 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/23927/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 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 Wed Apr 28 16:45:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 16:45:05 +0000 Subject: Change in osmo-bts[master]: manual: Remove manual revision history; we don't use it anywawy References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23959 ) Change subject: manual: Remove manual revision history; we don't use it anywawy ...................................................................... manual: Remove manual revision history; we don't use it anywawy Change-Id: I25c4d8b694756c6eed81c9b552a389ca5bd04ea7 --- M doc/manuals/osmobts-abis-docinfo.xml M doc/manuals/osmobts-usermanual-docinfo.xml M doc/manuals/rtp-amr-docinfo.xml M doc/manuals/vty/osmobts-vty-reference.xml 4 files changed, 0 insertions(+), 79 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/59/23959/1 diff --git a/doc/manuals/osmobts-abis-docinfo.xml b/doc/manuals/osmobts-abis-docinfo.xml index 4e23394..363d812 100644 --- a/doc/manuals/osmobts-abis-docinfo.xml +++ b/doc/manuals/osmobts-abis-docinfo.xml @@ -1,39 +1,3 @@ - - - 1 - December 2015 - NJH, HW - - Initial version, reflecting OsmoBTS master branch as on 2015-Dec-7 - (commit e28a20a2d9d049cd6312e218a7646593bbc43431). - - - - 2 - February 2016 - HW - - Updated version with Message Sequence Chart of OML and RSL bring-up. - - - - 2.1 - February 2016 - HW - - Fix A-bis OML/RSL port number swap in message seqeuence charts. - - - - 2.2 - July 2016 - NJH, HW - - Add description on Dynamic Channel Configuration in OML and activation in RSL. - - - - diff --git a/doc/manuals/osmobts-usermanual-docinfo.xml b/doc/manuals/osmobts-usermanual-docinfo.xml index aa3285f..6b4f5f8 100644 --- a/doc/manuals/osmobts-usermanual-docinfo.xml +++ b/doc/manuals/osmobts-usermanual-docinfo.xml @@ -1,14 +1,3 @@ - - - 1 - January 2016 - HW - - Initial version, reflecting OsmoBTS master branch as on FIXME - (commit FIXME). - - - diff --git a/doc/manuals/rtp-amr-docinfo.xml b/doc/manuals/rtp-amr-docinfo.xml index 3f4de8d..a575fb5 100644 --- a/doc/manuals/rtp-amr-docinfo.xml +++ b/doc/manuals/rtp-amr-docinfo.xml @@ -1,29 +1,3 @@ - - - 1 - October 2016 - HW - - Initial version - - - - 2 - November 2016 - MS - - FSM added - - - - 3 - July 2017 - PE - - Add section and update sequence charts to describe requirement to receive all PH-DATA.ind events - - - diff --git a/doc/manuals/vty/osmobts-vty-reference.xml b/doc/manuals/vty/osmobts-vty-reference.xml index a38eb05..b62f1d6 100644 --- a/doc/manuals/vty/osmobts-vty-reference.xml +++ b/doc/manuals/vty/osmobts-vty-reference.xml @@ -13,12 +13,6 @@ - v1 - 13th October 2016 - hw - Initial - - v2 @@REV_DATE@@ s.f.m.c. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I25c4d8b694756c6eed81c9b552a389ca5bd04ea7 Gerrit-Change-Number: 23959 Gerrit-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 Apr 28 16:45:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 16:45:05 +0000 Subject: Change in osmo-bts[master]: manuals: Update copyright years References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23960 ) Change subject: manuals: Update copyright years ...................................................................... manuals: Update copyright years Change-Id: I353013ddfc8c5506599e723e713d93f3f041f15d --- M doc/manuals/osmobts-abis-docinfo.xml M doc/manuals/osmobts-usermanual-docinfo.xml M doc/manuals/rtp-amr-docinfo.xml 3 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/60/23960/1 diff --git a/doc/manuals/osmobts-abis-docinfo.xml b/doc/manuals/osmobts-abis-docinfo.xml index 363d812..3bbbe7f 100644 --- a/doc/manuals/osmobts-abis-docinfo.xml +++ b/doc/manuals/osmobts-abis-docinfo.xml @@ -25,7 +25,7 @@ - 2015-2016 + 2015-2021 sysmocom - s.f.m.c. GmbH diff --git a/doc/manuals/osmobts-usermanual-docinfo.xml b/doc/manuals/osmobts-usermanual-docinfo.xml index 6b4f5f8..1704f89 100644 --- a/doc/manuals/osmobts-usermanual-docinfo.xml +++ b/doc/manuals/osmobts-usermanual-docinfo.xml @@ -14,7 +14,7 @@ - 2016 + 2016-2021 sysmocom - s.f.m.c. GmbH diff --git a/doc/manuals/rtp-amr-docinfo.xml b/doc/manuals/rtp-amr-docinfo.xml index a575fb5..84d5558 100644 --- a/doc/manuals/rtp-amr-docinfo.xml +++ b/doc/manuals/rtp-amr-docinfo.xml @@ -25,7 +25,7 @@ - 2016 + 2016-2021 sysmocom - s.f.m.c. GmbH -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I353013ddfc8c5506599e723e713d93f3f041f15d Gerrit-Change-Number: 23960 Gerrit-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 Apr 28 16:49:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 16:49:58 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example 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-bts/+/23927 to look at the new patch set (#3). Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... manual: Include QoS chapter and add osmo-bts specific example Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Requires: libosmo-abis.git I8991dd6eb406a5b9a70498974fc1ad339452f871 --- M TODO-RELEASE A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmobts-usermanual.adoc 3 files changed, 67 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/23927/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 17:00:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:00:30 +0000 Subject: Change in osmo-bsc[master]: manual: Include QoS chapter and add osmo-bsc specific example References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23961 ) Change subject: manual: Include QoS chapter and add osmo-bsc specific example ...................................................................... manual: Include QoS chapter and add osmo-bsc specific example Change-Id: I35b0b67dfe40d37c3f2896472b8bf35bfcc89cda Depends: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Depends: libosmo-abis.git I8991dd6eb406a5b9a70498974fc1ad339452f871 --- M TODO-RELEASE A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmobsc-usermanual.adoc 3 files changed, 52 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/23961/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index d0852fc..e8d67c3 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,3 +7,4 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line +update dependency to libosmo-abis > 1.1.1 for new e1_input vty commands for DSCP + priority diff --git a/doc/manuals/chapters/qos-example.adoc b/doc/manuals/chapters/qos-example.adoc new file mode 100644 index 0000000..2897377 --- /dev/null +++ b/doc/manuals/chapters/qos-example.adoc @@ -0,0 +1,49 @@ +==== Full example of QoS for osmo-bsc Abis downlink QoS + +In the below example we will show the full set of configuration required +for both DSCP and PCP differentiation of downlink Abis traffic by osmo-bsc. + +What we want to achieve in this example is the following configuration: + +.DSCP and PCP assignments for osmo-bsc Abis downlink traffic in this example +[options="header",width="30%",cols="2,1,1"] +|=== +|Traffic |DSCP|PCP +|A-bis RSL | 56| 7 +|A-bis RTP | 46| 6 +|A-bis OML | 34| 5 +|=== + +The RTP related configuration must be configured on the BSC-colocated `osmo-mgw`, +and is hence out of scope for this manual. + +. configure the osmocom program to set the DSCP value +. configure an egrees QoS map to map from priority to PCP + +.Example Step 1: add related VTY configuration to `osmo-bsc.cfg` +---- +... +e1_input + ipa dscp oml 34 + ipa priority oml 5 + ipa dscp rsl 56 + ipa priority rsl 7 +... +---- + +.Example Step 2: egress QoS map to map from DSCP values to priority values +---- +$ sudo ip link set dev eth0.9<1> type vlan egress-qos-map 0:0 5:5 6:6 7:7 <2> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9`. +<2> create a egress QoS map that maps the priority value 1:1 to the PCP. We also include the + mapping 5:5 from the osmo-mgw example (see <>) here. + +NOTE:: The settings of the `ip` command are volatile and only active until +the next reboot (or the network device or VLAN is removed). Please refer to +the documentation of your specific Linux distribution in order to find out how +to make such settings persistent by means of an `ifup` hook whenever the interface +comes up. For CentOS/RHEL 8 this can e.g. be achieved by means of an `/sbin/ifup-local +script` (when using `network-scripts` and not NetworkManager). For Debian or Ubuntu, +this typically involves adding `up` lines to `/etc/network/interfaces` or a `/etc/network/if-up.d` +script. diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc index e66b2be..e00eba0 100644 --- a/doc/manuals/osmobsc-usermanual.adoc +++ b/doc/manuals/osmobsc-usermanual.adoc @@ -48,6 +48,8 @@ include::./common/chapters/vty_cpu_sched.adoc[] +include::./common/chapters/qos-dscp-pcp.adoc[] + include::{srcdir}/chapters/aoip-flows.adoc[] include::./common/chapters/port_numbers.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23961 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35b0b67dfe40d37c3f2896472b8bf35bfcc89cda Gerrit-Change-Number: 23961 Gerrit-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 Apr 28 17:27:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:27:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: mgw: osmo-mgw config should not try to set DSCP > 63 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23962 ) Change subject: mgw: osmo-mgw config should not try to set DSCP > 63 ...................................................................... mgw: osmo-mgw config should not try to set DSCP > 63 DSCP is a 6-bit value, it cannot be 184. Change-Id: I9e023125d42ba350c924f2dd7055e84a1a6564cc --- M mgw/osmo-mgw.cfg 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/62/23962/1 diff --git a/mgw/osmo-mgw.cfg b/mgw/osmo-mgw.cfg index beb6fdf..76525bc 100644 --- a/mgw/osmo-mgw.cfg +++ b/mgw/osmo-mgw.cfg @@ -24,7 +24,7 @@ rtp bind-ip 127.0.0.1 rtp bind-ip-v6 ::1 rtp ip-probing - rtp ip-dscp 184 + rtp ip-dscp 46 no rtp keep-alive no rtcp-omit no rtp-patch -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9e023125d42ba350c924f2dd7055e84a1a6564cc Gerrit-Change-Number: 23962 Gerrit-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 Apr 28 17:29:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:29:10 +0000 Subject: Change in docker-playground[master]: osmo-mgw: Use DSCP value in valid range (<= 63) References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/23963 ) Change subject: osmo-mgw: Use DSCP value in valid range (<= 63) ...................................................................... osmo-mgw: Use DSCP value in valid range (<= 63) DSCP is a 6-bit value, it cannot be 184. Change-Id: I72133e6ac5674577595f9d98e3fc68f8d741819c --- M osmo-cn-latest/osmo-mgw.cfg M osmo-mgw-latest/osmo-mgw.cfg M ttcn3-mgw-test/osmo-mgw.cfg 3 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/63/23963/1 diff --git a/osmo-cn-latest/osmo-mgw.cfg b/osmo-cn-latest/osmo-mgw.cfg index ab45de0..93333cf 100644 --- a/osmo-cn-latest/osmo-mgw.cfg +++ b/osmo-cn-latest/osmo-mgw.cfg @@ -38,7 +38,7 @@ rtp port-range 4002 16000 rtp bind-ip 192.168.42.10 rtp ip-probing - rtp ip-dscp 184 + rtp ip-dscp 46 no rtp keep-alive no rtcp-omit no rtp-patch diff --git a/osmo-mgw-latest/osmo-mgw.cfg b/osmo-mgw-latest/osmo-mgw.cfg index 602452d..8427528 100644 --- a/osmo-mgw-latest/osmo-mgw.cfg +++ b/osmo-mgw-latest/osmo-mgw.cfg @@ -37,7 +37,7 @@ rtp port-range 4002 16000 rtp bind-ip 172.18.0.180 rtp ip-probing - rtp ip-dscp 184 + rtp ip-dscp 46 no rtp keep-alive no rtcp-omit no rtp-patch diff --git a/ttcn3-mgw-test/osmo-mgw.cfg b/ttcn3-mgw-test/osmo-mgw.cfg index 1c49b11..f8e1a0d 100644 --- a/ttcn3-mgw-test/osmo-mgw.cfg +++ b/ttcn3-mgw-test/osmo-mgw.cfg @@ -33,7 +33,7 @@ rtp bind-ip 172.18.4.180 rtp bind-ip-v6 fd02:db8:4::180 rtp ip-probing - rtp ip-dscp 184 + rtp ip-dscp 46 no rtp keep-alive no rtcp-omit no rtp-patch -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I72133e6ac5674577595f9d98e3fc68f8d741819c Gerrit-Change-Number: 23963 Gerrit-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 Apr 28 17:29:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:29:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: mgw: osmo-mgw config should not try to set DSCP > 63 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23962 ) Change subject: mgw: osmo-mgw config should not try to set DSCP > 63 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9e023125d42ba350c924f2dd7055e84a1a6564cc Gerrit-Change-Number: 23962 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 17:29: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 Apr 28 17:30:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:30:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: mgw: osmo-mgw config should not try to set DSCP > 63 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23962 ) Change subject: mgw: osmo-mgw config should not try to set DSCP > 63 ...................................................................... mgw: osmo-mgw config should not try to set DSCP > 63 DSCP is a 6-bit value, it cannot be 184. Change-Id: I9e023125d42ba350c924f2dd7055e84a1a6564cc --- M mgw/osmo-mgw.cfg 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/mgw/osmo-mgw.cfg b/mgw/osmo-mgw.cfg index beb6fdf..76525bc 100644 --- a/mgw/osmo-mgw.cfg +++ b/mgw/osmo-mgw.cfg @@ -24,7 +24,7 @@ rtp bind-ip 127.0.0.1 rtp bind-ip-v6 ::1 rtp ip-probing - rtp ip-dscp 184 + rtp ip-dscp 46 no rtp keep-alive no rtcp-omit no rtp-patch -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9e023125d42ba350c924f2dd7055e84a1a6564cc Gerrit-Change-Number: 23962 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 Apr 28 17:30:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:30:16 +0000 Subject: Change in docker-playground[master]: osmo-mgw: Use DSCP value in valid range (<= 63) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23963 ) Change subject: osmo-mgw: Use DSCP value in valid range (<= 63) ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I72133e6ac5674577595f9d98e3fc68f8d741819c Gerrit-Change-Number: 23963 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 17:30:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 17:30:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:30:19 +0000 Subject: Change in docker-playground[master]: osmo-mgw: Use DSCP value in valid range (<= 63) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23963 ) Change subject: osmo-mgw: Use DSCP value in valid range (<= 63) ...................................................................... osmo-mgw: Use DSCP value in valid range (<= 63) DSCP is a 6-bit value, it cannot be 184. Change-Id: I72133e6ac5674577595f9d98e3fc68f8d741819c --- M osmo-cn-latest/osmo-mgw.cfg M osmo-mgw-latest/osmo-mgw.cfg M ttcn3-mgw-test/osmo-mgw.cfg 3 files changed, 3 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/osmo-cn-latest/osmo-mgw.cfg b/osmo-cn-latest/osmo-mgw.cfg index ab45de0..93333cf 100644 --- a/osmo-cn-latest/osmo-mgw.cfg +++ b/osmo-cn-latest/osmo-mgw.cfg @@ -38,7 +38,7 @@ rtp port-range 4002 16000 rtp bind-ip 192.168.42.10 rtp ip-probing - rtp ip-dscp 184 + rtp ip-dscp 46 no rtp keep-alive no rtcp-omit no rtp-patch diff --git a/osmo-mgw-latest/osmo-mgw.cfg b/osmo-mgw-latest/osmo-mgw.cfg index 602452d..8427528 100644 --- a/osmo-mgw-latest/osmo-mgw.cfg +++ b/osmo-mgw-latest/osmo-mgw.cfg @@ -37,7 +37,7 @@ rtp port-range 4002 16000 rtp bind-ip 172.18.0.180 rtp ip-probing - rtp ip-dscp 184 + rtp ip-dscp 46 no rtp keep-alive no rtcp-omit no rtp-patch diff --git a/ttcn3-mgw-test/osmo-mgw.cfg b/ttcn3-mgw-test/osmo-mgw.cfg index 1c49b11..f8e1a0d 100644 --- a/ttcn3-mgw-test/osmo-mgw.cfg +++ b/ttcn3-mgw-test/osmo-mgw.cfg @@ -33,7 +33,7 @@ rtp bind-ip 172.18.4.180 rtp bind-ip-v6 fd02:db8:4::180 rtp ip-probing - rtp ip-dscp 184 + rtp ip-dscp 46 no rtp keep-alive no rtcp-omit no rtp-patch -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I72133e6ac5674577595f9d98e3fc68f8d741819c Gerrit-Change-Number: 23963 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 Apr 28 17:31:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:31:23 +0000 Subject: Change in libosmocore[master]: socket: reduce code duplication, introduce socket_helper_tail() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23933 ) Change subject: socket: reduce code duplication, introduce socket_helper_tail() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95056940ddc26b65f63eedaeaab6882edaef6317 Gerrit-Change-Number: 23933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 17:31: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 Apr 28 17:31:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:31:41 +0000 Subject: Change in libosmocore[master]: socket: QoS support for all our socket init functions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23934 ) Change subject: socket: QoS support for all our socket init functions ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If22988735fe05e51226c6b091a5348dcf1208cdf Gerrit-Change-Number: 23934 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 17:31:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 17:31:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:31:43 +0000 Subject: Change in libosmocore[master]: socket: reduce code duplication, introduce socket_helper_tail() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23933 ) Change subject: socket: reduce code duplication, introduce socket_helper_tail() ...................................................................... socket: reduce code duplication, introduce socket_helper_tail() Common bits shared by various functions (currently setting non-blocking) should not be copy+pasted around. Change-Id: I95056940ddc26b65f63eedaeaab6882edaef6317 --- M src/socket.c 1 file changed, 39 insertions(+), 40 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/src/socket.c b/src/socket.c index 6b8c34a..b44bbc6 100644 --- a/src/socket.c +++ b/src/socket.c @@ -132,9 +132,26 @@ } #endif /* HAVE_LIBSCTP*/ +static int socket_helper_tail(int sfd, unsigned int flags) +{ + int on = 1; + + if (flags & OSMO_SOCK_F_NONBLOCK) { + if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { + LOGP(DLGLOBAL, LOGL_ERROR, + "cannot set this socket unblocking: %s\n", + strerror(errno)); + close(sfd); + return -EINVAL; + } + } + + return 0; +} + static int socket_helper(const struct addrinfo *rp, unsigned int flags) { - int sfd, on = 1; + int sfd, rc; sfd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); if (sfd == -1) { @@ -142,21 +159,17 @@ "unable to create socket: %s\n", strerror(errno)); return sfd; } - if (flags & OSMO_SOCK_F_NONBLOCK) { - if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { - LOGP(DLGLOBAL, LOGL_ERROR, - "cannot set this socket unblocking: %s\n", - strerror(errno)); - close(sfd); - sfd = -EINVAL; - } - } + + rc = socket_helper_tail(sfd, flags); + if (rc < 0) + return rc; + return sfd; } static int socket_helper_osa(const struct osmo_sockaddr *addr, uint16_t type, uint8_t proto, unsigned int flags) { - int sfd, on = 1; + int sfd, rc; sfd = socket(addr->u.sa.sa_family, type, proto); if (sfd == -1) { @@ -164,15 +177,11 @@ "unable to create socket: %s\n", strerror(errno)); return sfd; } - if (flags & OSMO_SOCK_F_NONBLOCK) { - if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { - LOGP(DLGLOBAL, LOGL_ERROR, - "cannot set this socket unblocking: %s\n", - strerror(errno)); - close(sfd); - sfd = -EINVAL; - } - } + + rc = socket_helper_tail(sfd, flags); + if (rc < 0) + return rc; + return sfd; } @@ -621,7 +630,7 @@ static int socket_helper_multiaddr(uint16_t family, uint16_t type, uint8_t proto, unsigned int flags) { - int sfd, on = 1; + int sfd, rc; sfd = socket(family, type, proto); if (sfd == -1) { @@ -629,15 +638,11 @@ "Unable to create socket: %s\n", strerror(errno)); return sfd; } - if (flags & OSMO_SOCK_F_NONBLOCK) { - if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { - LOGP(DLGLOBAL, LOGL_ERROR, - "Cannot set this socket unblocking: %s\n", - strerror(errno)); - close(sfd); - sfd = -EINVAL; - } - } + + rc = socket_helper_tail(sfd, flags); + if (rc < 0) + return rc; + return sfd; } @@ -1218,7 +1223,7 @@ const char *socket_path, unsigned int flags) { struct sockaddr_un local; - int sfd, rc, on = 1; + int sfd, rc; unsigned int namelen; if ((flags & (OSMO_SOCK_F_BIND | OSMO_SOCK_F_CONNECT)) == @@ -1258,15 +1263,9 @@ goto err; } - if (flags & OSMO_SOCK_F_NONBLOCK) { - if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { - LOGP(DLGLOBAL, LOGL_ERROR, - "cannot set this socket unblocking: %s\n", - strerror(errno)); - close(sfd); - return -EINVAL; - } - } + rc = socket_helper_tail(sfd, flags); + if (rc < 0) + return rc; rc = osmo_sock_init_tail(sfd, type, flags); if (rc < 0) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95056940ddc26b65f63eedaeaab6882edaef6317 Gerrit-Change-Number: 23933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 17:31:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:31:43 +0000 Subject: Change in libosmocore[master]: socket: QoS support for all our socket init functions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23934 ) Change subject: socket: QoS support for all our socket init functions ...................................................................... socket: QoS support for all our socket init functions Every socket function that can be passed a 'flags' argument now supports the following two additional macros that can be or-ed in with the flags: * OSMO_SOCK_F_DSCP(x) -- specify the IP DSCP of the socket * OSMO_SOCK_F_PRIO(x) -- specify the priority of the socket The existing osmo_sock_set_{dscp,priority}() functions are useful, but you cannot call them in between the socket creation and the connect() operation when using our socket helpers. This means that the first packet sent will have the default DSCP/priority, and only later packets would have the desired values. When using the functionality introduced by this patch, we can ensure that even the very first packet of e.g. a TCP or SCTP connect() will have the correct DSCP/priority applied. Change-Id: If22988735fe05e51226c6b091a5348dcf1208cdf Related: SYS#5427 --- M include/osmocom/core/socket.h M src/socket.c 2 files changed, 30 insertions(+), 1 deletion(-) 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/osmocom/core/socket.h b/include/osmocom/core/socket.h index 10e1766..a053391 100644 --- a/include/osmocom/core/socket.h +++ b/include/osmocom/core/socket.h @@ -44,6 +44,15 @@ /*! use SO_REUSEADDR on UDP ports (required for multicast) */ #define OSMO_SOCK_F_UDP_REUSEADDR (1 << 5) +/*! use OSMO_SOCK_F_DSCP(x) to set IP DSCP 'x' for packets transmitted on the socket */ +#define OSMO_SOCK_F_DSCP(x) (((x)&0x3f) << 24) +#define GET_OSMO_SOCK_F_DSCP(f) (((f) >> 24) & 0x3f) + +/*! use OSMO_SOCK_F_PRIO(x) to set priority 'x' for packets transmitted on the socket */ +#define OSMO_SOCK_F_PRIO(x) (((x)&0xff) << 16) +#define GET_OSMO_SOCK_F_PRIO(f) (((f) >> 16) & 0xff) + + /*! maximum number of local or remote addresses supported by an osmo_sock instance */ #define OSMO_SOCK_MAX_ADDRS 32 diff --git a/src/socket.c b/src/socket.c index b44bbc6..6afe986 100644 --- a/src/socket.c +++ b/src/socket.c @@ -134,7 +134,9 @@ static int socket_helper_tail(int sfd, unsigned int flags) { - int on = 1; + int rc, on = 1; + uint8_t dscp = GET_OSMO_SOCK_F_DSCP(flags); + uint8_t prio = GET_OSMO_SOCK_F_PRIO(flags); if (flags & OSMO_SOCK_F_NONBLOCK) { if (ioctl(sfd, FIONBIO, (unsigned char *)&on) < 0) { @@ -146,6 +148,24 @@ } } + if (dscp) { + rc = osmo_sock_set_dscp(sfd, dscp); + if (rc) { + LOGP(DLGLOBAL, LOGL_ERROR, "cannot set IP DSCP of socket to %u: %s\n", + dscp, strerror(errno)); + /* we consider this a non-fatal error */ + } + } + + if (prio) { + rc = osmo_sock_set_priority(sfd, prio); + if (rc) { + LOGP(DLGLOBAL, LOGL_ERROR, "cannot set priority of socket to %u: %s\n", + prio, strerror(errno)); + /* we consider this a non-fatal error */ + } + } + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If22988735fe05e51226c6b091a5348dcf1208cdf Gerrit-Change-Number: 23934 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 17:33:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:33:27 +0000 Subject: Change in libosmo-abis[master]: ipa: Introduce support for user-specific DSCP and priority In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 to look at the new patch set (#2). Change subject: ipa: Introduce support for user-specific DSCP and priority ...................................................................... ipa: Introduce support for user-specific DSCP and priority This adds new members to struct ipa_server_link and ipa_client_conn, which can be set by the user before ipa_client_conn_open() or ipa_server_link_open() to ensure DSCP / priority values are applied from the first outgoing packet onwards. Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Depends: libosmocore.git If22988735fe05e51226c6b091a5348dcf1208cdf --- M TODO-RELEASE M include/osmocom/abis/ipa.h M src/input/ipa.c 3 files changed, 15 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/57/23957/2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Gerrit-Change-Number: 23957 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 Apr 28 17:33:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:33:39 +0000 Subject: Change in libosmocore[master]: socket: IPv6 support for osmo_sock_set_dscp() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23935 ) Change subject: socket: IPv6 support for osmo_sock_set_dscp() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib31b977f67d60aa7f30ca4ab6eceba3d1d5eeee1 Gerrit-Change-Number: 23935 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 17:33: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 Apr 28 17:33:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:33:40 +0000 Subject: Change in libosmocore[master]: socket: IPv6 support for osmo_sock_set_dscp() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23935 ) Change subject: socket: IPv6 support for osmo_sock_set_dscp() ...................................................................... socket: IPv6 support for osmo_sock_set_dscp() IPv6 has the analogous to DSCP: The "traffic class" field. See https://tools.ietf.org/html/draft-itojun-ipv6-tclass-api-03 Change-Id: Ib31b977f67d60aa7f30ca4ab6eceba3d1d5eeee1 Related: SYS#5427 --- M src/socket.c 1 file changed, 36 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/socket.c b/src/socket.c index 6afe986..59d0876 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1800,25 +1800,54 @@ * \returns 0 on success; negative on error. */ int osmo_sock_set_dscp(int fd, uint8_t dscp) { + struct sockaddr_storage local_addr; + socklen_t local_addr_len = sizeof(local_addr); uint8_t tos; socklen_t tos_len = sizeof(tos); + int tclass; + socklen_t tclass_len = sizeof(tclass); int rc; /* DSCP is a 6-bit value stored in the upper 6 bits of the 8-bit TOS */ if (dscp > 63) return -EINVAL; - /* read the original value */ - rc = getsockopt(fd, IPPROTO_IP, IP_TOS, &tos, &tos_len); + rc = getsockname(fd, (struct sockaddr *)&local_addr, &local_addr_len); if (rc < 0) return rc; - /* mask-in the DSCP into the upper 6 bits */ - tos &= 0x03; - tos |= dscp << 2; + switch (local_addr.ss_family) { + case AF_INET: + /* read the original value */ + rc = getsockopt(fd, IPPROTO_IP, IP_TOS, &tos, &tos_len); + if (rc < 0) + return rc; + /* mask-in the DSCP into the upper 6 bits */ + tos &= 0x03; + tos |= dscp << 2; + /* and write it back to the kernel */ + rc = setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); + break; + case AF_INET6: + /* read the original value */ + rc = getsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, &tclass, &tclass_len); + if (rc < 0) + return rc; + /* mask-in the DSCP into the upper 6 bits */ + tclass &= 0x03; + tclass |= dscp << 2; + /* and write it back to the kernel */ + rc = setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, &tclass, sizeof(tclass)); + break; + case AF_UNSPEC: + default: + LOGP(DLGLOBAL, LOGL_ERROR, "No DSCP support for socket family %u\n", + local_addr.ss_family); + rc = -1; + break; + } - /* and write it back to the kernel */ - return setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); + return rc; } /*! Set the priority value of a socket. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib31b977f67d60aa7f30ca4ab6eceba3d1d5eeee1 Gerrit-Change-Number: 23935 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 Wed Apr 28 17:35:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:35:02 +0000 Subject: Change in osmo-mgw[master]: switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23964 ) Change subject: switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() ...................................................................... switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() libosmocore If22988735fe05e51226c6b091a5348dcf1208cdf introduces an even more convenient mechanism for specifying the DSCP of an IP socket via OSMO_SOCK_F_DSCP() Change-Id: If0b11dea08716ed3952a25b546b2a9bd013857bf --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c 3 files changed, 6 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/64/23964/1 diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index f3f225e..e0aeb83 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -208,5 +208,5 @@ int mgcp_send_reset_all(struct mgcp_config *cfg); -int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port); +int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp); int mgcp_udp_send(int fd, struct osmo_sockaddr *addr, int port, char *buf, int len); diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 675a0fc..76fe730 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1519,12 +1519,12 @@ * \param[in] fd associated file descriptor. * \param[in] port to bind on. * \returns 0 on success, -1 on ERROR. */ -int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port) +int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp) { int rc; rc = osmo_sock_init2(AF_UNSPEC, SOCK_DGRAM, IPPROTO_UDP, source_addr, port, - NULL, 0, OSMO_SOCK_F_BIND); + NULL, 0, OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(dscp)); if (rc < 0) { LOGP(DRTP, LOGL_ERROR, "failed to bind UDP port (%s:%i).\n", source_addr, port); @@ -1543,26 +1543,20 @@ /* NOTE: The port that is used for RTCP is the RTP port incremented by one * (e.g. RTP-Port = 16000 ==> RTCP-Port = 16001) */ - if (mgcp_create_bind(source_addr, &rtp_end->rtp, - rtp_end->local_port) != 0) { + if (mgcp_create_bind(source_addr, &rtp_end->rtp, rtp_end->local_port, cfg->endp_dscp) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "failed to create RTP port: %s:%d\n", source_addr, rtp_end->local_port); goto cleanup0; } - if (mgcp_create_bind(source_addr, &rtp_end->rtcp, - rtp_end->local_port + 1) != 0) { + if (mgcp_create_bind(source_addr, &rtp_end->rtcp, rtp_end->local_port + 1, cfg->endp_dscp) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "failed to create RTCP port: %s:%d\n", source_addr, rtp_end->local_port + 1); goto cleanup1; } - /* Set Type of Service (DSCP-Value) as configured via VTY */ - osmo_sock_set_dscp(rtp_end->rtp.fd, cfg->endp_dscp); - osmo_sock_set_dscp(rtp_end->rtcp.fd, cfg->endp_dscp); - if (osmo_fd_register(&rtp_end->rtp) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "failed to register RTP port %d\n", diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index 6c40307..62a6720 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -418,13 +418,12 @@ osmo_fd_setup(&osmux_fd, -1, OSMO_FD_READ, osmux_read_fd_cb, cfg, 0); - ret = mgcp_create_bind(cfg->osmux_addr, &osmux_fd, cfg->osmux_port); + ret = mgcp_create_bind(cfg->osmux_addr, &osmux_fd, cfg->osmux_port, cfg->endp_dscp); if (ret < 0) { LOGP(DLMGCP, LOGL_ERROR, "cannot bind OSMUX socket to %s:%u\n", cfg->osmux_addr, cfg->osmux_port); return ret; } - osmo_sock_set_dscp(osmux_fd.fd, cfg->endp_dscp); ret = osmo_fd_register(&osmux_fd); if (ret < 0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If0b11dea08716ed3952a25b546b2a9bd013857bf Gerrit-Change-Number: 23964 Gerrit-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 Apr 28 17:35:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:35:02 +0000 Subject: Change in osmo-mgw[master]: mgw: Add support for setting socket priority from VTY References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23965 ) Change subject: mgw: Add support for setting socket priority from VTY ...................................................................... mgw: Add support for setting socket priority from VTY This is useful for affecting the 802.1Q PCP value without any separate external packet filter rules for classification. Change-Id: I69136c6dd114c24b1dace034e75dba5157bac37e Depends: libosmocore.git I89abffcd125e6d073338a5c6437b9433220e1823 --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_vty.c 4 files changed, 30 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/65/23965/1 diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index e0aeb83..1de579a 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -143,6 +143,7 @@ struct mgcp_port_range net_ports; int endp_dscp; + int endp_priority; int force_ptime; @@ -208,5 +209,6 @@ int mgcp_send_reset_all(struct mgcp_config *cfg); -int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp); +int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp, + uint8_t prio); int mgcp_udp_send(int fd, struct osmo_sockaddr *addr, int port, char *buf, int len); diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 76fe730..6a30165 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1518,13 +1518,17 @@ * \param[in] source_addr source (local) address to bind on. * \param[in] fd associated file descriptor. * \param[in] port to bind on. + * \param[in] dscp IP DSCP value to use. + * \param[in] prio socket priority to use. * \returns 0 on success, -1 on ERROR. */ -int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp) +int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp, + uint8_t prio) { int rc; rc = osmo_sock_init2(AF_UNSPEC, SOCK_DGRAM, IPPROTO_UDP, source_addr, port, - NULL, 0, OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(dscp)); + NULL, 0, OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(dscp) | + OSMO_SOCK_F_PRIO(prio)); if (rc < 0) { LOGP(DRTP, LOGL_ERROR, "failed to bind UDP port (%s:%i).\n", source_addr, port); @@ -1543,14 +1547,16 @@ /* NOTE: The port that is used for RTCP is the RTP port incremented by one * (e.g. RTP-Port = 16000 ==> RTCP-Port = 16001) */ - if (mgcp_create_bind(source_addr, &rtp_end->rtp, rtp_end->local_port, cfg->endp_dscp) != 0) { + if (mgcp_create_bind(source_addr, &rtp_end->rtp, rtp_end->local_port, + cfg->endp_dscp, cfg->endp_priority) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "failed to create RTP port: %s:%d\n", source_addr, rtp_end->local_port); goto cleanup0; } - if (mgcp_create_bind(source_addr, &rtp_end->rtcp, rtp_end->local_port + 1, cfg->endp_dscp) != 0) { + if (mgcp_create_bind(source_addr, &rtp_end->rtcp, rtp_end->local_port + 1, + cfg->endp_dscp, cfg->endp_priority) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "failed to create RTCP port: %s:%d\n", source_addr, rtp_end->local_port + 1); diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index 62a6720..bb85735 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -418,7 +418,8 @@ osmo_fd_setup(&osmux_fd, -1, OSMO_FD_READ, osmux_read_fd_cb, cfg, 0); - ret = mgcp_create_bind(cfg->osmux_addr, &osmux_fd, cfg->osmux_port, cfg->endp_dscp); + ret = mgcp_create_bind(cfg->osmux_addr, &osmux_fd, cfg->osmux_port, + cfg->endp_dscp, cfg->endp_priority); if (ret < 0) { LOGP(DLMGCP, LOGL_ERROR, "cannot bind OSMUX socket to %s:%u\n", cfg->osmux_addr, cfg->osmux_port); diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index e8aeab1..6aa0387 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -83,6 +83,8 @@ else vty_out(vty, " no rtp ip-probing%s", VTY_NEWLINE); vty_out(vty, " rtp ip-dscp %d%s", g_cfg->endp_dscp, VTY_NEWLINE); + if (g_cfg->endp_priority) + vty_out(vty, " rtp priority %d%s", g_cfg->endp_priority, VTY_NEWLINE); if (trunk->keepalive_interval == MGCP_KEEPALIVE_ONCE) vty_out(vty, " rtp keep-alive once%s", VTY_NEWLINE); else if (trunk->keepalive_interval) @@ -588,6 +590,18 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_mgcp_rtp_priority, + cfg_mgcp_rtp_priority_cmd, + X(MGW_CMD_ATTR_NEWCONN), + "rtp priority <0-255>", + RTP_STR + "socket priority (values > 6 require CAP_NET_ADMIN)\n" "socket priority value\n") +{ + int prio = atoi(argv[0]); + g_cfg->endp_priority = prio; + return CMD_SUCCESS; +} + #define FORCE_PTIME_STR "Force a fixed ptime for packets sent" DEFUN_USRATTR(cfg_mgcp_rtp_force_ptime, cfg_mgcp_rtp_force_ptime_cmd, @@ -1618,6 +1632,7 @@ install_element(MGCP_NODE, &cfg_mgcp_rtp_net_bind_ip_probing_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_no_net_bind_ip_probing_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_ip_dscp_cmd); + install_element(MGCP_NODE, &cfg_mgcp_rtp_priority_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_force_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_rtp_force_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_keepalive_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I69136c6dd114c24b1dace034e75dba5157bac37e Gerrit-Change-Number: 23965 Gerrit-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 Apr 28 17:35:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:35:03 +0000 Subject: Change in osmo-mgw[master]: manual: don't define fig-bsc twice References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23966 ) Change subject: manual: don't define fig-bsc twice ...................................................................... manual: don't define fig-bsc twice Change-Id: Ibaed44a8de5425b420820a13f14c92c38b9c5fd9 --- M doc/manuals/chapters/overview.adoc 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/66/23966/1 diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index 0b93617..9251a7c 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -52,7 +52,7 @@ } ---- -[[fig-bsc]] +[[fig-bsc-e1]] .Integration of legacy E1 BTS in AoIP network [graphviz] ---- -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ibaed44a8de5425b420820a13f14c92c38b9c5fd9 Gerrit-Change-Number: 23966 Gerrit-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 Apr 28 17:35:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:35:03 +0000 Subject: Change in osmo-mgw[master]: manual: Include QoS chapter and add osmo-mgw specific example References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23967 ) Change subject: manual: Include QoS chapter and add osmo-mgw specific example ...................................................................... manual: Include QoS chapter and add osmo-mgw specific example Change-Id: I46f632f52a86a50242689a0132a7a7cb2a8feb12 Depends: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmomgw-usermanual.adoc 2 files changed, 44 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/67/23967/1 diff --git a/doc/manuals/chapters/qos-example.adoc b/doc/manuals/chapters/qos-example.adoc new file mode 100644 index 0000000..7220bf7 --- /dev/null +++ b/doc/manuals/chapters/qos-example.adoc @@ -0,0 +1,42 @@ +==== Full example of QoS for osmo-mgw + +In the below example we will show the full set of configuration required +for both DSCP and PCP differentiation of RTP traffic by osmo-mgw. + +What we want to achieve in this example is the following configuration: + +.DSCP and PCP assignments for osmo-mgw Abis downlink traffic in this example +[options="header",width="30%",cols="2,1,1"] +|=== +|Traffic |DSCP|PCP +|RTP | 46| 6 +|=== + +. configure the osmo-mgw program to set the DSCP value +. configure an egrees QoS map to map from priority to PCP + +.Example Step 1: add related VTY configuration to `osmo-mgw.cfg` +---- +... +mgcp + rtp ip-dscp 46 + rtp priority 6 +... +---- + +.Example Step 2: egress QoS map to map from DSCP values to priority values +---- +$ sudo ip link set dev eth0.9<1> type vlan egress-qos-map 0:0 5:5 6:6 7:7 <2> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9`. +<2> create a egress QoS map that maps the priority value 1:1 to the PCP. We also include the + mapping 5:5 and 7:7 from the osmo-bsc example (see <>) here. + +NOTE:: The settings of the `ip` command are volatile and only active until +the next reboot (or the network device or VLAN is removed). Please refer to +the documentation of your specific Linux distribution in order to find out how +to make such settings persistent by means of an `ifup` hook whenever the interface +comes up. For CentOS/RHEL 8 this can e.g. be achieved by means of an `/sbin/ifup-local +script` (when using `network-scripts` and not NetworkManager). For Debian or Ubuntu, +this typically involves adding `up` lines to `/etc/network/interfaces` or a `/etc/network/if-up.d` +script. diff --git a/doc/manuals/osmomgw-usermanual.adoc b/doc/manuals/osmomgw-usermanual.adoc index c4660f5..7ebc2db 100644 --- a/doc/manuals/osmomgw-usermanual.adoc +++ b/doc/manuals/osmomgw-usermanual.adoc @@ -24,6 +24,8 @@ include::./common/chapters/osmux/osmux.adoc[] +include::./common/chapters/qos-dscp-pcp.adoc[] + //include::{srcdir}/chapters/counters.adoc[] include::./common/chapters/vty_cpu_sched.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I46f632f52a86a50242689a0132a7a7cb2a8feb12 Gerrit-Change-Number: 23967 Gerrit-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 Apr 28 17:43:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 17:43:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Fix yet another DSCP vs. TOS mix-up References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23968 ) Change subject: gprs_ns2: Fix yet another DSCP vs. TOS mix-up ...................................................................... gprs_ns2: Fix yet another DSCP vs. TOS mix-up This is a follow-up to I64fee56b04d0ecd128bf661699d5071817ea96ec, due to code duplication there was another code path that manually set the IP_TOS socekt option that I missed in the first patch. Related: OS#5136 Change-Id: I4bb22d0f67984077706b694eb7e75327b41b6fcf --- M src/gb/gprs_ns2_udp.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/68/23968/1 diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index eb7d37b..22d371f 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -514,16 +514,18 @@ struct priv_bind *priv; int rc = 0; + if (dscp < 0 || dscp > 63) + return -EINVAL; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); priv = bind->priv; if (dscp != priv->dscp) { priv->dscp = dscp; - rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, - &dscp, sizeof(dscp)); + rc = osmo_sock_set_dscp(priv->fd.fd, dscp); if (rc < 0) { - LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", + LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %u with ret(%d) errno(%d)\n", dscp, rc, errno); } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4bb22d0f67984077706b694eb7e75327b41b6fcf Gerrit-Change-Number: 23968 Gerrit-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 Apr 28 18:25:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:25:54 +0000 Subject: Change in osmo-mgw[master]: manual: don't define fig-bsc twice In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23966 ) Change subject: manual: don't define fig-bsc twice ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ibaed44a8de5425b420820a13f14c92c38b9c5fd9 Gerrit-Change-Number: 23966 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18: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 Wed Apr 28 18:27:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:27:23 +0000 Subject: Change in osmo-mgw[master]: TOS bits != DSCP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23924 ) Change subject: TOS bits != DSCP ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/23924/2/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/23924/2/src/libosmo-mgcp/mgcp_vty.c at 584 PS2, Line 584: to > for? Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Gerrit-Change-Number: 23924 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 18:27:23 +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 Apr 28 18:27:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:27:44 +0000 Subject: Change in osmo-mgw[master]: TOS bits != DSCP In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 to look at the new patch set (#3). Change subject: TOS bits != DSCP ...................................................................... TOS bits != DSCP We have VTY options that allow to set the DSCP value. However, we then call a function to set the TOS bits in the kernel. This is very wrong. The DSCP is only the upper 6 bits of the 8-bit TOS value, and hence we are mussing that translation. As libosmocore now has a helper function osmo_sock_set_dscp(), let's make use of it and don't care about the low-level details. However, this means we need to finally remove the deprecated alias for "rtp ip-tos <0-255>". Closes: OS#5137 Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Depends: libosmocore.git Ia4ba389a5b7e3e9d5f17a742a900d6fd68c08e40 --- M TODO-RELEASE M doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg M doc/examples/osmo-mgw/osmo-mgw.cfg M doc/manuals/chapters/configuration.adoc M include/osmocom/mgcp/mgcp_network.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_vty.c 8 files changed, 9 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/24/23924/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Gerrit-Change-Number: 23924 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Apr 28 18:28:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:28:30 +0000 Subject: Change in osmo-mgw[master]: TOS bits != DSCP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23924 ) Change subject: TOS bits != DSCP ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Gerrit-Change-Number: 23924 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 18:28: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 Apr 28 18:31:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:31:28 +0000 Subject: Change in libosmocore[master]: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23925 ) Change subject: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 18:31:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 18:31:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:31:31 +0000 Subject: Change in libosmocore[master]: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23925 ) Change subject: fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout ...................................................................... fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout The api doc indicates the possibility to pass -1, and calling osmo_tdef_get() actually casts the arg to a signed long. To end the confusion, change default_timeout from unsigned long to long. Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 --- M TODO-RELEASE M include/osmocom/core/tdef.h M src/tdef.c 3 files 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/TODO-RELEASE b/TODO-RELEASE index 7ba9347..c5d4ee8 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -10,3 +10,4 @@ libosmovty _LAST_OSMOVTY_NODE Raise _LAST_OSMOVTY_NODE by introducing some RESERVED*_NODE libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size), gsm0808_old_bss_to_new_bss_info_att_tlvdef symbol added libosmosim osim_card_hdl ABI + API breakage due to new struct members +libosmocore osmo_tdef_fsm_inst_state_chg change default_timeout arg from unsigned long to long type (API breakage, not ABI) diff --git a/include/osmocom/core/tdef.h b/include/osmocom/core/tdef.h index 627ba3f..d9d2675 100644 --- a/include/osmocom/core/tdef.h +++ b/include/osmocom/core/tdef.h @@ -162,7 +162,7 @@ __FILE__, __LINE__) int _osmo_tdef_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array, - const struct osmo_tdef *tdefs, unsigned long default_timeout, + const struct osmo_tdef *tdefs, signed long default_timeout, const char *file, int line); /*! Manage timer definitions in named groups. diff --git a/src/tdef.c b/src/tdef.c index 897a92f..9890f95 100644 --- a/src/tdef.c +++ b/src/tdef.c @@ -331,7 +331,7 @@ */ int _osmo_tdef_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array, - const struct osmo_tdef *tdefs, unsigned long default_timeout, + const struct osmo_tdef *tdefs, long default_timeout, const char *file, int line) { const struct osmo_tdef_state_timeout *t = osmo_tdef_get_state_timeout(state, timeouts_array); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51b9172603984839448346c9836e43c8c802fcf8 Gerrit-Change-Number: 23925 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 18:31:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:31:58 +0000 Subject: Change in docker-playground[master]: make: add UID as --build-arg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23945 ) Change subject: make: add UID as --build-arg ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b3689a626c50c9ac38eca6b5449b8ec0344c3de Gerrit-Change-Number: 23945 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18: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 Wed Apr 28 18:32:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:32:20 +0000 Subject: Change in docker-playground[master]: debian10-obs-submit: new container In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23946 ) Change subject: debian10-obs-submit: new container ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ibb55ad18d2ccf4313f52fa3e3c10d4420c84dced Gerrit-Change-Number: 23946 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 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 Wed Apr 28 18:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:32:59 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: no change to osmocom-$FEED changelog In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23947 ) Change subject: OBS: nightly: no change to osmocom-$FEED changelog ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I85f0bcb633c16c7b5a81104f198d9561f53c0c01 Gerrit-Change-Number: 23947 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18: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 Apr 28 18:33:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:33:16 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: append date to package versions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23948 ) Change subject: OBS: nightly: append date to package versions ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 Gerrit-Change-Number: 23948 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18:33: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 Apr 28 18:33:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:33:34 +0000 Subject: Change in osmo-ci[master]: OBS: require PROJ environment variable to be set In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23949 ) Change subject: OBS: require PROJ environment variable to be set ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 Gerrit-Change-Number: 23949 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18:33:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 18:33:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:33:48 +0000 Subject: Change in osmo-ci[master]: Cosmetic: OBS: explain difference latest/nightly In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23950 ) Change subject: Cosmetic: OBS: explain difference latest/nightly ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4de2a9e9d096f8f77bfd72b8cabb0a69af2d51df Gerrit-Change-Number: 23950 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18: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 Wed Apr 28 18:34:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:34:11 +0000 Subject: Change in osmo-ci[master]: OBS: latest: support new 2021q1 feed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23951 ) Change subject: OBS: latest: support new 2021q1 feed ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 Gerrit-Change-Number: 23951 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18:34: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 Apr 28 18:34:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:34:46 +0000 Subject: Change in osmo-ci[master]: OBS: add PACKAGES env var In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23952 ) Change subject: OBS: add PACKAGES env var ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I83c3744713fd6abda4b832460f30eb2e79ebeed8 Gerrit-Change-Number: 23952 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18:34: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 Apr 28 18:35:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:35:23 +0000 Subject: Change in osmo-ci[master]: OBS: refactor git_version_gen related logic In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23953 ) Change subject: OBS: refactor git_version_gen related logic ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I9a1b6ae4b4311abb77dc6390733c5e330e3d489e Gerrit-Change-Number: 23953 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18:35: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 Apr 28 18:35:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:35:53 +0000 Subject: Change in osmo-ci[master]: OBS: latest: add commit to version for 2021q1 feed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23954 ) Change subject: OBS: latest: add commit to version for 2021q1 feed ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a4fa3b8f66652ef36a7fe62047a88a69c473f19 Gerrit-Change-Number: 23954 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18:35: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 Apr 28 18:36:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:36:05 +0000 Subject: Change in osmo-ci[master]: OBS: common: don't require wget anymore In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23955 ) Change subject: OBS: common: don't require wget anymore ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I2e03487058e4c2c9426872975953fa1814b24ccd Gerrit-Change-Number: 23955 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18:36: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 Apr 28 18:36:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:36:19 +0000 Subject: Change in osmo-ci[master]: OBS: add osmocom-packages-docker.sh In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23956 ) Change subject: OBS: add osmocom-packages-docker.sh ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icc89e20950c2aaa67b209340d1d797b76fce32d2 Gerrit-Change-Number: 23956 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 28 Apr 2021 18:36: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 Apr 28 18:36:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:36:34 +0000 Subject: Change in osmo-mgw[master]: TOS bits != DSCP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23924 ) Change subject: TOS bits != DSCP ...................................................................... TOS bits != DSCP We have VTY options that allow to set the DSCP value. However, we then call a function to set the TOS bits in the kernel. This is very wrong. The DSCP is only the upper 6 bits of the 8-bit TOS value, and hence we are mussing that translation. As libosmocore now has a helper function osmo_sock_set_dscp(), let's make use of it and don't care about the low-level details. However, this means we need to finally remove the deprecated alias for "rtp ip-tos <0-255>". Closes: OS#5137 Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Depends: libosmocore.git Ia4ba389a5b7e3e9d5f17a742a900d6fd68c08e40 --- M TODO-RELEASE M doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg M doc/examples/osmo-mgw/osmo-mgw.cfg M doc/manuals/chapters/configuration.adoc M include/osmocom/mgcp/mgcp_network.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_vty.c 8 files changed, 9 insertions(+), 28 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index c5a3b36..add44f1 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -24,3 +24,4 @@ # If any interfaces have been removed or changed since the last public release, a=0. # #library what description / commit summary line +update dependency to libosmocore > 1.5.1 for our use of osmo_sock_set_dscp() diff --git a/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg b/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg index 6d369ef..bd948b8 100644 --- a/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg +++ b/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg @@ -9,7 +9,7 @@ rtp port-range 4002 16000 rtp bind-ip 127.0.0.1 rtp ip-probing - rtp ip-tos 184 + rtp ip-dscp 46 bind port 2427 sdp audio payload number 98 sdp audio payload name GSM diff --git a/doc/examples/osmo-mgw/osmo-mgw.cfg b/doc/examples/osmo-mgw/osmo-mgw.cfg index ea00f6c..320feae 100644 --- a/doc/examples/osmo-mgw/osmo-mgw.cfg +++ b/doc/examples/osmo-mgw/osmo-mgw.cfg @@ -6,7 +6,7 @@ rtp port-range 4002 16000 rtp bind-ip 127.0.0.1 rtp ip-probing - rtp ip-tos 184 + rtp ip-dscp 46 bind port 2427 sdp audio payload number 98 sdp audio payload name GSM diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 2e2772e..177c096 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -101,7 +101,7 @@ rtp net-range 6000 6011 rtp net-bind-ip 192.168.100.130 rtp ip-probing - rtp ip-tos 184 + rtp ip-dscp 46 no rtp keep-alive bind port 2428 number endpoints 30 diff --git a/include/osmocom/mgcp/mgcp_network.h b/include/osmocom/mgcp/mgcp_network.h index 7dbf330..6e1e52c 100644 --- a/include/osmocom/mgcp/mgcp_network.h +++ b/include/osmocom/mgcp/mgcp_network.h @@ -148,7 +148,6 @@ struct mgcp_rtp_end *rtp_end, struct osmo_sockaddr *addr, struct msgb *msg); void mgcp_get_local_addr(char *addr, struct mgcp_conn_rtp *conn); -int mgcp_set_ip_tos(int fd, int tos); /* payload processing default functions */ int mgcp_rtp_processing_default(struct mgcp_endpoint *endp, struct mgcp_rtp_end *dst_end, diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 6b31f2b..675a0fc 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1514,20 +1514,6 @@ return conn->endp->type->dispatch_rtp_cb(msg); } -/*! set IP Type of Service parameter. - * \param[in] fd associated file descriptor. - * \param[in] tos dscp value. - * \returns 0 on success, -1 on ERROR. */ -int mgcp_set_ip_tos(int fd, int tos) -{ - int ret; - ret = setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); - - if (ret < 0) - return -1; - return 0; -} - /*! bind RTP port to osmo_fd. * \param[in] source_addr source (local) address to bind on. * \param[in] fd associated file descriptor. @@ -1574,8 +1560,8 @@ } /* Set Type of Service (DSCP-Value) as configured via VTY */ - mgcp_set_ip_tos(rtp_end->rtp.fd, cfg->endp_dscp); - mgcp_set_ip_tos(rtp_end->rtcp.fd, cfg->endp_dscp); + osmo_sock_set_dscp(rtp_end->rtp.fd, cfg->endp_dscp); + osmo_sock_set_dscp(rtp_end->rtcp.fd, cfg->endp_dscp); if (osmo_fd_register(&rtp_end->rtp) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index a7c0eef..6c40307 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -424,7 +424,7 @@ cfg->osmux_addr, cfg->osmux_port); return ret; } - mgcp_set_ip_tos(osmux_fd.fd, cfg->endp_dscp); + osmo_sock_set_dscp(osmux_fd.fd, cfg->endp_dscp); ret = osmo_fd_register(&osmux_fd); if (ret < 0) { diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 9ad8c24..6b180ef 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -579,19 +579,15 @@ DEFUN_USRATTR(cfg_mgcp_rtp_ip_dscp, cfg_mgcp_rtp_ip_dscp_cmd, X(MGW_CMD_ATTR_NEWCONN), - "rtp ip-dscp <0-255>", + "rtp ip-dscp <0-63>", RTP_STR - "Apply IP_TOS to the audio stream (including Osmux)\n" "The DSCP value\n") + "Use specified DSCP for the audio stream (including Osmux)\n" "The DSCP value\n") { int dscp = atoi(argv[0]); g_cfg->endp_dscp = dscp; return CMD_SUCCESS; } -ALIAS_DEPRECATED(cfg_mgcp_rtp_ip_dscp, cfg_mgcp_rtp_ip_tos_cmd, - "rtp ip-tos <0-255>", - RTP_STR - "Apply IP_TOS to the audio stream\n" "The DSCP value\n") #define FORCE_PTIME_STR "Force a fixed ptime for packets sent" DEFUN_USRATTR(cfg_mgcp_rtp_force_ptime, cfg_mgcp_rtp_force_ptime_cmd, @@ -1622,7 +1618,6 @@ install_element(MGCP_NODE, &cfg_mgcp_rtp_net_bind_ip_probing_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_no_net_bind_ip_probing_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_ip_dscp_cmd); - install_element(MGCP_NODE, &cfg_mgcp_rtp_ip_tos_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_force_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_rtp_force_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_keepalive_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 Gerrit-Change-Number: 23924 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 18:36:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 28 Apr 2021 18:36:35 +0000 Subject: Change in osmo-mgw[master]: manual: don't define fig-bsc twice In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23966 ) Change subject: manual: don't define fig-bsc twice ...................................................................... manual: don't define fig-bsc twice Change-Id: Ibaed44a8de5425b420820a13f14c92c38b9c5fd9 --- M doc/manuals/chapters/overview.adoc 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index 0b93617..9251a7c 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -52,7 +52,7 @@ } ---- -[[fig-bsc]] +[[fig-bsc-e1]] .Integration of legacy E1 BTS in AoIP network [graphviz] ---- -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ibaed44a8de5425b420820a13f14c92c38b9c5fd9 Gerrit-Change-Number: 23966 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 Apr 28 18:38:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 18:38:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Fix yet another DSCP vs. TOS mix-up In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23968 ) Change subject: gprs_ns2: Fix yet another DSCP vs. TOS mix-up ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4bb22d0f67984077706b694eb7e75327b41b6fcf Gerrit-Change-Number: 23968 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 18:38:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 18:43:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 28 Apr 2021 18:43:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: Verify CommonID contains LastUsedEutranPLMNId when in CSFB References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23969 ) Change subject: msc: Verify CommonID contains LastUsedEutranPLMNId when in CSFB ...................................................................... msc: Verify CommonID contains LastUsedEutranPLMNId when in CSFB Validate in test that MSC sends Last Used E-UTRAN PLLMN Id IE when call is started by SGs (CSFB). Related: SYS#5337 Change-Id: I161529fd9c8cacb7d17ea18660998df06bb0b575 --- M library/BSSMAP_Templates.ttcn M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn 3 files changed, 61 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/23969/1 diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 2b99a5b..c60498e 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1163,7 +1163,10 @@ elementIdentifier := '95'O, mcc_mnc := mcc_mnc } - +template BSSAMAP_IE_LastUsedEUTRANPLMNId tr_BSSMAP_LastUsedEUTRANPLMNId(template OCT3 mcc_mnc) := { + elementIdentifier := '95'O, + mcc_mnc := mcc_mnc +} function f_ts_BSSMAP_LastUsedEUTRANPLMNId(template (omit) OCT3 mcc_mnc) return template (omit) BSSAMAP_IE_LastUsedEUTRANPLMNId { if (not istemplatekind(mcc_mnc, "omit")) { @@ -1172,6 +1175,18 @@ return omit; } } +function f_tr_BSSMAP_LastUsedEUTRANPLMNId(template OCT3 mcc_mnc) + return template BSSAMAP_IE_LastUsedEUTRANPLMNId { + if (istemplatekind(mcc_mnc, "*")) { + return *; + } else if (istemplatekind(mcc_mnc, "?")) { + return ?; + } else if (not istemplatekind(mcc_mnc, "omit")) { + return ts_BSSMAP_LastUsedEUTRANPLMNId(valueof(mcc_mnc)); + } else { + return omit; + } +} template BSSMAP_FIELD_CellIdentificationList ts_BSSMAP_CIL_noCell := { cIl_noCell := ''O @@ -1227,7 +1242,7 @@ } -private function f_enc_mcc_mnc(GsmMcc mcc, GsmMnc mnc) return OCT3 { +function f_enc_mcc_mnc(GsmMcc mcc, GsmMnc mnc) return OCT3 { if (lengthof(mnc) == 2) { return hex2oct(mcc[1] & mcc[0] & 'F'H & mcc[2] & mnc[1] & mnc[0]); } else { @@ -1235,6 +1250,15 @@ } } +function f_dec_mcc_mnc(in OCT3 mcc_mnc, out GsmMcc mcc, out GsmMnc mnc) { + var hexstring hs := oct2hex(mcc_mnc); + mcc := hs[1] & hs[0] & hs[3]; + mnc := hs[5] & hs[4]; + if (hs[2] == 'F'H) { + mnc := mnc & hs[2]; + } +} + template (value) BSSMAP_FIELD_CellIdentification_CGI ts_BSSMAP_CI_CGI(GsmMcc mcc, GsmMnc mnc, GsmLac lac, GsmCellId ci) := { mcc_mnc := f_enc_mcc_mnc(mcc, mnc), lac := int2oct(lac, 2), @@ -1737,14 +1761,17 @@ } } -template PDU_BSSAP tr_BSSMAP_CommonId(template hexstring imsi_digits) +template PDU_BSSAP tr_BSSMAP_CommonId(template hexstring imsi_digits, + template BSSAMAP_IE_LastUsedEUTRANPLMNId lastUsedEUTRANPLMNId := *) modifies tr_BSSAP_BSSMAP := { pdu := { bssmap := { commonID := { messageType := '2F'O, iMSI := tr_BSSMAP_Imsi(imsi_digits), - sNAAccessInformation := * + sNAAccessInformation := *, + selectedPLMNId := *, + lastUsedEUTRANPLMNId := lastUsedEUTRANPLMNId } } } diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 30adb03..8ca8264 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -106,7 +106,8 @@ boolean ran_is_geran, boolean use_osmux, boolean use_ipv6, - boolean verify_cell_id + boolean verify_cell_id, + OCT3 common_id_last_eutran_plmn optional }; /* get a one-octet bitmaks of supported algorithms based on Classmark information */ @@ -524,7 +525,8 @@ function f_expect_common_id() runs on BSC_ConnHdlr { if (g_pars.ran_is_geran) { - BSSAP.receive(tr_BSSMAP_CommonId(g_pars.imsi)); + BSSAP.receive(tr_BSSMAP_CommonId(g_pars.imsi, + f_tr_BSSMAP_LastUsedEUTRANPLMNId(g_pars.common_id_last_eutran_plmn))); } else { BSSAP.receive(tr_RANAP_CommonId(imsi_hex2oct(g_pars.imsi))); } diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 8325625..7aae440 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -16,6 +16,7 @@ import from General_Types all; import from Osmocom_Types all; +import from GSM_Types all; import from M3UA_Types all; import from M3UA_Emulation all; @@ -400,7 +401,8 @@ ran_is_geran := ran_is_geran, use_osmux := use_osmux, use_ipv6 := false, - verify_cell_id := verify_cell_id + verify_cell_id := verify_cell_id, + common_id_last_eutran_plmn := omit }; if (not ran_is_geran) { pars.use_umts_aka := true; @@ -4536,13 +4538,19 @@ var PDU_SGsAP lua; var PDU_SGsAP mm_info; var octetstring mm_info_dtap; + var GsmMcc mcc; + var GsmMnc mnc; + var template (omit) TrackingAreaIdentityValue tai := omit; /* tell GSUP dispatcher to send this IMSI to us */ f_create_gsup_expect(hex2str(g_pars.imsi)); - + if (g_pars.common_id_last_eutran_plmn != omit) { + f_dec_mcc_mnc(g_pars.common_id_last_eutran_plmn, mcc, mnc); + tai := ts_SGsAP_TAI(mcc, mnc, 555); + } lur := valueof(ts_SGsAP_LU_REQ(g_pars.imsi, mme_name, IMSI_attach, ts_SGsAP_LAI('901'H, '70'H, 2342), - ts_SGsAP_TAI('901'H, '70'H, 555))); + tai)); /* Old LAI, if MS sends it */ /* TMSI status, if MS has no valid TMSI */ /* IMEISV, if it supports "automatic device detection" */ @@ -4602,6 +4610,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11811, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_lu), pars); vc_conn.done; } @@ -4641,7 +4650,6 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11812, true); - vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_lu_imsi_reject), pars); vc_conn.done; } @@ -4729,6 +4737,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11814, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_expl_imsi_det_eps), pars); vc_conn.done; } @@ -4753,6 +4762,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11814, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_impl_imsi_det_eps), pars); vc_conn.done; } @@ -4780,6 +4790,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11815, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_expl_imsi_det_noneps), pars); vc_conn.done; } @@ -4807,6 +4818,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11815, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_impl_imsi_det_noneps), pars); vc_conn.done; } @@ -4858,6 +4870,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11816, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_rej), pars); vc_conn.done; } @@ -4907,6 +4920,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11817, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_subscr_rej), pars); vc_conn.done; } @@ -4951,6 +4965,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11818, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_ue_unr), pars); vc_conn.done; } @@ -5010,6 +5025,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11819, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_and_nothing), pars); vc_conn.done; } @@ -5068,6 +5084,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11820, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_and_lu), pars); vc_conn.done; } @@ -5276,6 +5293,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11823, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mt_sms), pars); vc_conn.done; } @@ -5306,6 +5324,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11824, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mo_sms), pars); vc_conn.done; } @@ -5369,6 +5388,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11825, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mt_sms_and_nothing), pars); vc_conn.done; } @@ -5429,6 +5449,7 @@ var BSC_ConnHdlr vc_conn; f_init(1, true); pars := f_init_pars(11826, true); + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mt_sms_and_reject), pars); vc_conn.done; } @@ -5445,6 +5466,7 @@ if (bssmap_lu) { f_perform_lu(); } + pars.common_id_last_eutran_plmn := f_enc_mcc_mnc('901'H, '70'H); f_sgs_perform_lu(); f_sleep(1.0); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I161529fd9c8cacb7d17ea18660998df06bb0b575 Gerrit-Change-Number: 23969 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 Apr 28 20:06:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 28 Apr 2021 20:06:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: Verify CommonID contains LastUsedEutranPLMNId when in CSFB In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23969 ) Change subject: msc: Verify CommonID contains LastUsedEutranPLMNId when in CSFB ...................................................................... Patch Set 1: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23969/1/library/BSSMAP_Templates.ttcn File library/BSSMAP_Templates.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23969/1/library/BSSMAP_Templates.ttcn at 1179 PS1, Line 1179: return template BSSAMAP_IE_LastUsedEUTRANPLMNId { Not critical, but I find this spacing weird. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23969/1/msc/MSC_Tests.ttcn File msc/MSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23969/1/msc/MSC_Tests.ttcn at a4644 PS1, Line 4644: unrelated -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I161529fd9c8cacb7d17ea18660998df06bb0b575 Gerrit-Change-Number: 23969 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 28 Apr 2021 20:06:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Apr 28 22:16:32 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 22:16:32 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23914 ) Change subject: Lb: add missing X12 timer configurability ...................................................................... Patch Set 2: > +1 in case you don't end squashing the commits. changing the default to -1 is remotely possible to cause regressions, so let's keep it easily atomically revertable -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 22:16: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 Apr 28 22:35:37 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 22:35:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_channel_needs_modify(): ask actual TCH lchan mode via VTY 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/+/23807 to look at the new patch set (#3). Change subject: f_channel_needs_modify(): ask actual TCH lchan mode via VTY ...................................................................... f_channel_needs_modify(): ask actual TCH lchan mode via VTY I am introducing a BSC test case that runs through a assigning a TCH channel for signalling, and then using Channel Mode Modify to change its mode from signalling to speech. For this to work, f_channel_needs_modify() needs to actually look up the channel mode of the TCH and not assume that a TCH is always in speech mode. Related: SYS#4895 Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 --- M bsc/MSC_ConnectionHandler.ttcn 1 file changed, 18 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/07/23807/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 Gerrit-Change-Number: 23807 Gerrit-PatchSet: 3 Gerrit-Owner: neels 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 Apr 28 22:38:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 28 Apr 2021 22:38:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_assignment_codec_fr_by_mode_modify In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 ) Change subject: bsc: add TC_assignment_codec_fr_by_mode_modify ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/1/bsc/MSC_ConnectionHandler.ttcn File bsc/MSC_ConnectionHandler.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/1/bsc/MSC_ConnectionHandler.ttcn at 592 PS1, Line 592: OCT3 last_used_eutran_plmn optional, > strange, this looks like coming from my recent patch? indeed, and as you should see from the light green color, this patch is adding merely the comma, as ttcn3 unfortunately requires us to not have a comma after the last element -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf4efaed986de0bbd2b663313e837352cc139f0f Gerrit-Change-Number: 23808 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 28 Apr 2021 22:38:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 07:09:15 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 07:09:15 +0000 Subject: Change in osmo-ci[master]: OBS: require PROJ environment variable to be set In-Reply-To: References: Message-ID: Hello laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/23949 to look at the new patch set (#2). Change subject: OBS: require PROJ environment variable to be set ...................................................................... OBS: require PROJ environment variable to be set Uploading to network:osmocom:* should only be done when these scripts are running in the Osmocom jenkins. Remove the default and require users of the script to explicitly set PROJ. Related: SYS#5370 Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 --- M jobs/osmocom-obs.yml M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 4 files changed, 15 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/49/23949/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 Gerrit-Change-Number: 23949 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 07:09:15 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 07:09:15 +0000 Subject: Change in osmo-ci[master]: OBS: latest: support new 2021q1 feed In-Reply-To: References: Message-ID: Hello laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 to look at the new patch set (#2). Change subject: OBS: latest: support new 2021q1 feed ...................................................................... OBS: latest: support new 2021q1 feed Related: SYS#5370 Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 --- M scripts/osmocom-latest-packages.sh 1 file changed, 54 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/51/23951/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 Gerrit-Change-Number: 23951 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:02:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:02:02 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc File doc/manuals/chapters/qos-example.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc at 33 PS1, Line 33: It is up to you to ensure they are re-installed at every boot, e.g. by > up to the user? to the system administrator is probably best. https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc at 45 PS1, Line 45: NOTE:: The settings of the `ip` command are volatile and only active until > Why do you duplicate this block? We already have it in osmo-gsm-manuals. but not exactly underneath that command. It will be rendered one or more pages earlier in the document, and it's important to note. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:02:02 +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 Apr 29 09:02:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:02:23 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Fix yet another DSCP vs. TOS mix-up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23968 ) Change subject: gprs_ns2: Fix yet another DSCP vs. TOS mix-up ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4bb22d0f67984077706b694eb7e75327b41b6fcf Gerrit-Change-Number: 23968 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:02: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 Apr 29 09:02:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:02:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Fix yet another DSCP vs. TOS mix-up In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23968 ) Change subject: gprs_ns2: Fix yet another DSCP vs. TOS mix-up ...................................................................... gprs_ns2: Fix yet another DSCP vs. TOS mix-up This is a follow-up to I64fee56b04d0ecd128bf661699d5071817ea96ec, due to code duplication there was another code path that manually set the IP_TOS socekt option that I missed in the first patch. Related: OS#5136 Change-Id: I4bb22d0f67984077706b694eb7e75327b41b6fcf --- M src/gb/gprs_ns2_udp.c 1 file changed, 5 insertions(+), 3 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_udp.c b/src/gb/gprs_ns2_udp.c index eb7d37b..22d371f 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -514,16 +514,18 @@ struct priv_bind *priv; int rc = 0; + if (dscp < 0 || dscp > 63) + return -EINVAL; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); priv = bind->priv; if (dscp != priv->dscp) { priv->dscp = dscp; - rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, - &dscp, sizeof(dscp)); + rc = osmo_sock_set_dscp(priv->fd.fd, dscp); if (rc < 0) { - LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", + LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %u with ret(%d) errno(%d)\n", dscp, rc, errno); } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4bb22d0f67984077706b694eb7e75327b41b6fcf Gerrit-Change-Number: 23968 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Thu Apr 29 09:05:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:05:15 +0000 Subject: Change in libosmo-abis[master]: e1_input: Allow (vty) configuration of IP DSCP and socket priority In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23958 ) Change subject: e1_input: Allow (vty) configuration of IP DSCP and socket priority ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/23958/2/include/internal.h File include/internal.h: https://gerrit.osmocom.org/c/libosmo-abis/+/23958/2/include/internal.h at 24 PS2, Line 24: extern s it's not really nice having this global variable used as interface between two parts of the code base, but I tried another approach first and it was even more ugly (get/set functions for each of the four parameters, i.e. 8 symbols that also pollute the global namespace). the e1_input code is ancient. The IPA support in it was a big hack introduced for nanoBTS support at some point later. It is already super ugly, no matter what we do... -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Gerrit-Change-Number: 23958 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:05:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:16:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 09:16:10 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: append date to all packages In-Reply-To: References: Message-ID: Hello laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/23948 to look at the new patch set (#2). Change subject: OBS: nightly: append date to all packages ...................................................................... OBS: nightly: append date to all packages Instead of only appending the date to non-Osmocom packages in get_commit_version, append it to all packages in build(). This ensures we increase the version of Osmocom packages even if the commit did not change. Fixes: OS#5135 Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/48/23948/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 Gerrit-Change-Number: 23948 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:16:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 09:16:10 +0000 Subject: Change in osmo-ci[master]: OBS: add PACKAGES env var In-Reply-To: References: Message-ID: Hello laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/23952 to look at the new patch set (#3). Change subject: OBS: add PACKAGES env var ...................................................................... OBS: add PACKAGES env var Skip checking out and building source packages of all other packages, if the environment variable is set. Related: SYS#5370 Change-Id: I83c3744713fd6abda4b832460f30eb2e79ebeed8 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 52 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/52/23952/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I83c3744713fd6abda4b832460f30eb2e79ebeed8 Gerrit-Change-Number: 23952 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:16:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 09:16:10 +0000 Subject: Change in osmo-ci[master]: OBS: refactor git_version_gen related logic In-Reply-To: References: Message-ID: Hello laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/23953 to look at the new patch set (#3). Change subject: OBS: refactor git_version_gen related logic ...................................................................... OBS: refactor git_version_gen related logic Move git_version_gen calls into an own function and add some of the description from I76e3713f0b01a6110091ff90e8e53aa79533c374 where this code was added. Don't call it inside get_commit_version anymore, but call it before. Don't try to cat the resulting .tarball-version there if it doesn't exist. Related: SYS#5370 Change-Id: I9a1b6ae4b4311abb77dc6390733c5e330e3d489e --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 20 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/53/23953/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I9a1b6ae4b4311abb77dc6390733c5e330e3d489e Gerrit-Change-Number: 23953 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:16:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 09:16:10 +0000 Subject: Change in osmo-ci[master]: OBS: latest: add commit to version for 2021q1 feed In-Reply-To: References: Message-ID: Hello laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/23954 to look at the new patch set (#3). Change subject: OBS: latest: add commit to version for 2021q1 feed ...................................................................... OBS: latest: add commit to version for 2021q1 feed Move get_commit_version to common-obs.sh and call it in osmocom-latest-packages.sh, if the feed is not "latest". This way, the packages don't have the latest tag as version anymore, and the version changes if commits get pushed to the feed's branch. Related: SYS#5370 Change-Id: I4a4fa3b8f66652ef36a7fe62047a88a69c473f19 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 38 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/54/23954/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a4fa3b8f66652ef36a7fe62047a88a69c473f19 Gerrit-Change-Number: 23954 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:16:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 09:16:13 +0000 Subject: Change in osmo-ci[master]: Cosmetic: OBS: describe build() parameters References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23970 ) Change subject: Cosmetic: OBS: describe build() parameters ...................................................................... Cosmetic: OBS: describe build() parameters Change-Id: Ib50499d6d3bd862879eaff58c9bf2260afc97ff8 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/70/23970/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 8eef259..8c979ef 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -61,6 +61,9 @@ fi } +# Generate a source package and upload it to OBS +# $1: package name (e.g. "libosmocore") +# $2: arguments to pass to "gbp buildpackage" build() { project=$1 gitbpargs="$2" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index bc45188..a51ef55 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -112,6 +112,12 @@ cd - } +# Generate a source package and upload it to OBS +# $1: package name (e.g. "libosmocore") +# $2: update debian dir when set to "commit" (default): +# * add dependency on osmocom-$FEED package +# * add new version to changelog (e.g. "1.5.1.96.c96d7.202104281354") +# $3: arguments to pass to "gbp buildpackage" build() { local name=$1 local changelog=$2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib50499d6d3bd862879eaff58c9bf2260afc97ff8 Gerrit-Change-Number: 23970 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:16:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 09:16:13 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: build: simplify changelog parameter References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/23971 ) Change subject: OBS: nightly: build: simplify changelog parameter ...................................................................... OBS: nightly: build: simplify changelog parameter Change-Id: I4a7f63f71d248b3796493adf6dc1be9c1b737c2e --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/71/23971/1 diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index a51ef55..86f406e 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -114,7 +114,7 @@ # Generate a source package and upload it to OBS # $1: package name (e.g. "libosmocore") -# $2: update debian dir when set to "commit" (default): +# $2: update debian dir, unless set to "no_commit": # * add dependency on osmocom-$FEED package # * add new version to changelog (e.g. "1.5.1.96.c96d7.202104281354") # $3: arguments to pass to "gbp buildpackage" @@ -126,10 +126,6 @@ local oscdir=$REPO/osc/$PROJ/$name local dependver="$OSMO_OBS_CONFLICT_PKGVER" - if [ -z "$changelog" ] ; then - changelog=commit - fi - if [ -d "$oscdir" ] ; then # remove earlier version cd "$oscdir" @@ -143,7 +139,7 @@ cd "$repodir" - if [ "$changelog" = "commit" ] ; then + if [ "$changelog" != "no_commit" ] ; then # Add date to increase version even if commit did not change (OS#5135) VER="$(get_commit_version).$DT" osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" "$dependver" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a7f63f71d248b3796493adf6dc1be9c1b737c2e Gerrit-Change-Number: 23971 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:16:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 09:16:30 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: no change to osmocom-$FEED changelog In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23947 ) Change subject: OBS: nightly: no change to osmocom-$FEED changelog ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I85f0bcb633c16c7b5a81104f198d9561f53c0c01 Gerrit-Change-Number: 23947 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:16: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 Apr 29 09:28:49 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 09:28:49 +0000 Subject: Change in libosmo-abis[master]: e1_input: Allow (vty) configuration of IP DSCP and socket priority In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23958 ) Change subject: e1_input: Allow (vty) configuration of IP DSCP and socket priority ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Gerrit-Change-Number: 23958 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:28: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 Apr 29 09:31:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 09:31:26 +0000 Subject: Change in libosmo-abis[master]: ipa: Introduce support for user-specific DSCP and priority In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23957 ) Change subject: ipa: Introduce support for user-specific DSCP and priority ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Gerrit-Change-Number: 23957 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:31: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 Apr 29 09:35:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:35:40 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23914 ) Change subject: Lb: add missing X12 timer configurability ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:35: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 Apr 29 09:35:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:35:57 +0000 Subject: Change in osmo-bsc[master]: Lb: make sure we never have missing timer configurability In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23937 ) Change subject: Lb: make sure we never have missing timer configurability ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c0b098622548bf0f0374c304522e6a9db0331e3 Gerrit-Change-Number: 23937 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:35: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 Apr 29 09:36:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:36:31 +0000 Subject: Change in osmo-bsc[master]: gsm_lchan_name_compute with ctx In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23938 ) Change subject: gsm_lchan_name_compute with ctx ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb922605c15242a2cdc7c34668c845a179a15660 Gerrit-Change-Number: 23938 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 09:36: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 Apr 29 09:36:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:36:41 +0000 Subject: Change in osmo-bsc[master]: log: drop duplicate logging in ts_setup_lchans() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23939 ) Change subject: log: drop duplicate logging in ts_setup_lchans() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I569229328229047d399033d1483d09d323826692 Gerrit-Change-Number: 23939 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:36:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:36:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:36:49 +0000 Subject: Change in osmo-bsc[master]: comment: tweak pchan_subslots() description In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23940 ) Change subject: comment: tweak pchan_subslots() description ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4d3ca6efc7b4fadd6711ae80502027cec1b7b84e Gerrit-Change-Number: 23940 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:36: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 Apr 29 09:37:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:37:35 +0000 Subject: Change in osmo-bsc[master]: lchan_release(): do not release UNUSED lchan In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23941 ) Change subject: lchan_release(): do not release UNUSED lchan ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6e9faf682d1668388d5470419110408a098b9900 Gerrit-Change-Number: 23941 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:37:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:37:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:37:52 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: mode modify: fix missing timeouts and error transitions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23942 ) Change subject: lchan_fsm: mode modify: fix missing timeouts and error transitions ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6364cfb78f661f5f7473dcec488e361e6a1dc9e4 Gerrit-Change-Number: 23942 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:37:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:40:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:40:33 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: no change to osmocom-$FEED changelog In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23947 ) Change subject: OBS: nightly: no change to osmocom-$FEED changelog ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I85f0bcb633c16c7b5a81104f198d9561f53c0c01 Gerrit-Change-Number: 23947 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 09:40: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 Apr 29 09:41:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:41:01 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: append date to all packages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23948 ) Change subject: OBS: nightly: append date to all packages ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 Gerrit-Change-Number: 23948 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 09:41: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 Apr 29 09:41:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:41:14 +0000 Subject: Change in osmo-ci[master]: Cosmetic: OBS: describe build() parameters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23970 ) Change subject: Cosmetic: OBS: describe build() parameters ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib50499d6d3bd862879eaff58c9bf2260afc97ff8 Gerrit-Change-Number: 23970 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 09: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 Thu Apr 29 09:41:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:41:26 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: build: simplify changelog parameter In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23971 ) Change subject: OBS: nightly: build: simplify changelog parameter ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a7f63f71d248b3796493adf6dc1be9c1b737c2e Gerrit-Change-Number: 23971 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 09:41: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 Apr 29 09:41:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:41:48 +0000 Subject: Change in osmo-ci[master]: OBS: require PROJ environment variable to be set In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23949 ) Change subject: OBS: require PROJ environment variable to be set ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 Gerrit-Change-Number: 23949 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 09:41: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 Apr 29 09:42:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:42:04 +0000 Subject: Change in osmo-ci[master]: OBS: latest: support new 2021q1 feed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23951 ) Change subject: OBS: latest: support new 2021q1 feed ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 Gerrit-Change-Number: 23951 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 09:42: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 Apr 29 09:42:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:42:17 +0000 Subject: Change in osmo-ci[master]: OBS: add PACKAGES env var In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23952 ) Change subject: OBS: add PACKAGES env var ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I83c3744713fd6abda4b832460f30eb2e79ebeed8 Gerrit-Change-Number: 23952 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 09:42:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:42:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:42:35 +0000 Subject: Change in osmo-ci[master]: OBS: refactor git_version_gen related logic In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23953 ) Change subject: OBS: refactor git_version_gen related logic ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I9a1b6ae4b4311abb77dc6390733c5e330e3d489e Gerrit-Change-Number: 23953 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 09:42:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 09:42:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 09:42:48 +0000 Subject: Change in osmo-ci[master]: OBS: latest: add commit to version for 2021q1 feed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23954 ) Change subject: OBS: latest: add commit to version for 2021q1 feed ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a4fa3b8f66652ef36a7fe62047a88a69c473f19 Gerrit-Change-Number: 23954 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 09:42: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 Apr 29 10:29:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:29:45 +0000 Subject: Change in libosmo-abis[master]: e1_input: Allow (vty) configuration of IP DSCP and socket priority In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23958 ) Change subject: e1_input: Allow (vty) configuration of IP DSCP and socket priority ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/23958/2/include/internal.h File include/internal.h: https://gerrit.osmocom.org/c/libosmo-abis/+/23958/2/include/internal.h at 35 PS2, Line 35: void e1inp_ipa_set_oml_dscp(uint8_t dscp); So you define these APIs but I don't see them being implemented nor used? -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Gerrit-Change-Number: 23958 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:29: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 Apr 29 10:31:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:31:38 +0000 Subject: Change in osmo-bts[master]: manual: Remove manual revision history; we don't use it anywawy In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23959 ) Change subject: manual: Remove manual revision history; we don't use it anywawy ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I25c4d8b694756c6eed81c9b552a389ca5bd04ea7 Gerrit-Change-Number: 23959 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:31: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 Apr 29 10:31:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:31:51 +0000 Subject: Change in osmo-bts[master]: manuals: Update copyright years In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23960 ) Change subject: manuals: Update copyright years ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I353013ddfc8c5506599e723e713d93f3f041f15d Gerrit-Change-Number: 23960 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:31: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 Apr 29 10:33:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:33:01 +0000 Subject: Change in osmo-bsc[master]: manual: Include QoS chapter and add osmo-bsc specific example In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23961 ) Change subject: manual: Include QoS chapter and add osmo-bsc specific example ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23961 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35b0b67dfe40d37c3f2896472b8bf35bfcc89cda Gerrit-Change-Number: 23961 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:33: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 Apr 29 10:34:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:34:36 +0000 Subject: Change in osmo-mgw[master]: switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23964 ) Change subject: switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If0b11dea08716ed3952a25b546b2a9bd013857bf Gerrit-Change-Number: 23964 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:34:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 10:37:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:37:20 +0000 Subject: Change in osmo-mgw[master]: mgw: Add support for setting socket priority from VTY In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23965 ) Change subject: mgw: Add support for setting socket priority from VTY ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/23965/2/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/23965/2/src/libosmo-mgcp/mgcp_vty.c at 596 PS2, Line 596: "rtp priority <0-255>", "rtp socket-priority" or "rtp vlan-priority" or wahtever may be more convinient, similar to what we do with "rtp ip-*", otherwise it seems it's something directly direlated to RTP protocol. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I69136c6dd114c24b1dace034e75dba5157bac37e Gerrit-Change-Number: 23965 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:37: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 Thu Apr 29 10:38:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:38:23 +0000 Subject: Change in osmo-mgw[master]: manual: Include QoS chapter and add osmo-mgw specific example In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23967 ) Change subject: manual: Include QoS chapter and add osmo-mgw specific example ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I46f632f52a86a50242689a0132a7a7cb2a8feb12 Gerrit-Change-Number: 23967 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:38: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 Apr 29 10:39:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:39:11 +0000 Subject: Change in docker-playground[master]: debian10-obs-submit: new container In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23946 ) Change subject: debian10-obs-submit: new container ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ibb55ad18d2ccf4313f52fa3e3c10d4420c84dced Gerrit-Change-Number: 23946 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:39: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 Apr 29 10:39:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:39:42 +0000 Subject: Change in osmo-ci[master]: Cosmetic: OBS: explain difference latest/nightly In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23950 ) Change subject: Cosmetic: OBS: explain difference latest/nightly ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4de2a9e9d096f8f77bfd72b8cabb0a69af2d51df Gerrit-Change-Number: 23950 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 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 Thu Apr 29 10:39:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:39:57 +0000 Subject: Change in osmo-ci[master]: OBS: common: don't require wget anymore In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23955 ) Change subject: OBS: common: don't require wget anymore ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I2e03487058e4c2c9426872975953fa1814b24ccd Gerrit-Change-Number: 23955 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:39: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 Apr 29 10:40:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:40:02 +0000 Subject: Change in osmo-ci[master]: OBS: common: don't require wget anymore In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23955 ) Change subject: OBS: common: don't require wget anymore ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I2e03487058e4c2c9426872975953fa1814b24ccd Gerrit-Change-Number: 23955 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:40: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 Apr 29 10:40:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:40:50 +0000 Subject: Change in osmo-ci[master]: OBS: add osmocom-packages-docker.sh In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23956 ) Change subject: OBS: add osmocom-packages-docker.sh ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icc89e20950c2aaa67b209340d1d797b76fce32d2 Gerrit-Change-Number: 23956 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:40: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 Apr 29 10:43:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:43:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: Verify CommonID contains LastUsedEutranPLMNId when in CSFB In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23969 to look at the new patch set (#2). Change subject: msc: Verify CommonID contains LastUsedEutranPLMNId when in CSFB ...................................................................... msc: Verify CommonID contains LastUsedEutranPLMNId when in CSFB Validate in test that MSC sends Last Used E-UTRAN PLLMN Id IE when call is started by SGs (CSFB). Related: SYS#5337 Change-Id: I161529fd9c8cacb7d17ea18660998df06bb0b575 --- M library/BSSMAP_Templates.ttcn M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn 3 files changed, 61 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/23969/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I161529fd9c8cacb7d17ea18660998df06bb0b575 Gerrit-Change-Number: 23969 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 10:45:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:45:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_assignment_codec_fr_by_mode_modify In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 ) Change subject: bsc: add TC_assignment_codec_fr_by_mode_modify ...................................................................... Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/1/bsc/MSC_ConnectionHandler.ttcn File bsc/MSC_ConnectionHandler.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/1/bsc/MSC_ConnectionHandler.ttcn at 592 PS1, Line 592: OCT3 last_used_eutran_plmn optional, > indeed, and as you should see from the light green color, this patch is adding merely the comma, as [?] Ah indeed, thanks for pointing out it's only the comma, I missed that. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf4efaed986de0bbd2b663313e837352cc139f0f Gerrit-Change-Number: 23808 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:45:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 10:46:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:46:04 +0000 Subject: Change in docker-playground[master]: make: add UID as --build-arg In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23945 ) Change subject: make: add UID as --build-arg ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b3689a626c50c9ac38eca6b5449b8ec0344c3de Gerrit-Change-Number: 23945 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:46:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 10:47:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:47:33 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc File doc/manuals/chapters/qos-example.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc at 33 PS1, Line 33: It is up to you to ensure they are re-installed at every boot, e.g. by > to the system administrator is probably best. whatever better than "you" :) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:47:33 +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 Thu Apr 29 10:50:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:50:49 +0000 Subject: Change in libosmo-abis[master]: ipa: Introduce support for user-specific DSCP and priority In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23957 ) Change subject: ipa: Introduce support for user-specific DSCP and priority ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/23957/2/TODO-RELEASE File TODO-RELEASE: https://gerrit.osmocom.org/c/libosmo-abis/+/23957/2/TODO-RELEASE at 11 PS2, Line 11: libosmo-abis ABI break ipa_client_conn new struct members dscp, priority I think we are fine regarding ABI break though, because the structs are always created internally by APIs and pointer provided to the user. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Gerrit-Change-Number: 23957 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:50: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 Apr 29 10:52:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:52:52 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: no change to osmocom-$FEED changelog In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23947 ) Change subject: OBS: nightly: no change to osmocom-$FEED changelog ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I85f0bcb633c16c7b5a81104f198d9561f53c0c01 Gerrit-Change-Number: 23947 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10: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 Thu Apr 29 10:54:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:54:01 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: append date to all packages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23948 ) Change subject: OBS: nightly: append date to all packages ...................................................................... Patch Set 2: So does that mean that apt-get update + apt-get upgrade will end up in new packages being downloaded and installed despite there was no change? Doesn't look sane to me. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 Gerrit-Change-Number: 23948 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:54: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 Thu Apr 29 10:54:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:54:46 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: build: simplify changelog parameter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23971 ) Change subject: OBS: nightly: build: simplify changelog parameter ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a7f63f71d248b3796493adf6dc1be9c1b737c2e Gerrit-Change-Number: 23971 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:54: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 Apr 29 10:57:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:57:12 +0000 Subject: Change in osmo-ci[master]: OBS: require PROJ environment variable to be set In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23949 ) Change subject: OBS: require PROJ environment variable to be set ...................................................................... Patch Set 3: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-ci/+/23949/3/scripts/osmocom-latest-packages.sh File scripts/osmocom-latest-packages.sh: https://gerrit.osmocom.org/c/osmo-ci/+/23949/3/scripts/osmocom-latest-packages.sh at 4 PS3, Line 4: # * PROJ: the OBS namespace to upload to (e.g. network:osmocom:latest) I think it's worth adding "" around network:osmocom:latest, this way it's immediately clear that's the expected value to pass into the variable, and that you are just no mentioning some sort of reference or URL or whatever. https://gerrit.osmocom.org/c/osmo-ci/+/23949/3/scripts/osmocom-nightly-packages.sh File scripts/osmocom-nightly-packages.sh: https://gerrit.osmocom.org/c/osmo-ci/+/23949/3/scripts/osmocom-nightly-packages.sh at 4 PS3, Line 4: # * PROJ: the OBS namespace to upload to (e.g. network:osmocom:nightly) same -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 Gerrit-Change-Number: 23949 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:57:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 10:59:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 10:59:33 +0000 Subject: Change in osmo-ci[master]: OBS: latest: support new 2021q1 feed In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23951 ) Change subject: OBS: latest: support new 2021q1 feed ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ci/+/23951/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ci/+/23951/3//COMMIT_MSG at 7 PS3, Line 7: OBS: latest: support new 2021q1 feed Not sure if this has already been discussed or if its related, but I tend to define CNI complete releases as , for instance 202102 https://osmocom.org/news/132 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 Gerrit-Change-Number: 23951 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 10:59:33 +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 Apr 29 11:01:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 11:01:29 +0000 Subject: Change in osmo-ci[master]: OBS: add PACKAGES env var In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23952 ) Change subject: OBS: add PACKAGES env var ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I83c3744713fd6abda4b832460f30eb2e79ebeed8 Gerrit-Change-Number: 23952 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 11:01: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 Apr 29 11:05:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 11:05:18 +0000 Subject: Change in osmo-ci[master]: OBS: refactor git_version_gen related logic In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23953 ) Change subject: OBS: refactor git_version_gen related logic ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I9a1b6ae4b4311abb77dc6390733c5e330e3d489e Gerrit-Change-Number: 23953 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 11:05: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 Apr 29 11:08:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 11:08:46 +0000 Subject: Change in osmo-ci[master]: OBS: latest: add commit to version for 2021q1 feed In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23954 ) Change subject: OBS: latest: add commit to version for 2021q1 feed ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a4fa3b8f66652ef36a7fe62047a88a69c473f19 Gerrit-Change-Number: 23954 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 11: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 Thu Apr 29 11:11:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 11:11:22 +0000 Subject: Change in osmo-msc[master]: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 ) Change subject: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Patch Set 3: Hi, this is fixing a CSFB support regression between newer osmo-bsc and osmo-msc, so it would be great to have it merged ASAP. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 11:11: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 Apr 29 12:08:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 12:08:45 +0000 Subject: Change in osmo-msc[master]: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 ) Change subject: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Patch Set 3: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/osmo-msc/+/23915/3/src/libmsc/sgs_iface.c File src/libmsc/sgs_iface.c: https://gerrit.osmocom.org/c/osmo-msc/+/23915/3/src/libmsc/sgs_iface.c at 658 PS3, Line 658: LOGL_INFO sounds more like a NOTICE? https://gerrit.osmocom.org/c/osmo-msc/+/23915/3/src/libmsc/sgs_iface.c at 943 PS3, Line 943: LOGL_INFO sounds more like a NOTICE? https://gerrit.osmocom.org/c/osmo-msc/+/23915/3/src/libmsc/sgs_iface.c at 944 PS3, Line 944: " missing space between sentences -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 12:08: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 Apr 29 12:11:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 12:11:57 +0000 Subject: Change in libosmo-abis[master]: ipa: Introduce support for user-specific DSCP and priority In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23957 ) Change subject: ipa: Introduce support for user-specific DSCP and priority ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Gerrit-Change-Number: 23957 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 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 Thu Apr 29 12:16:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 12:16:30 +0000 Subject: Change in osmo-mgw[master]: switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23964 ) Change subject: switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If0b11dea08716ed3952a25b546b2a9bd013857bf Gerrit-Change-Number: 23964 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 12:16:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 12:18:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 12:18:08 +0000 Subject: Change in osmo-mgw[master]: mgw: Add support for setting socket priority from VTY In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23965 ) Change subject: mgw: Add support for setting socket priority from VTY ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I69136c6dd114c24b1dace034e75dba5157bac37e Gerrit-Change-Number: 23965 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 12:18: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 Apr 29 12:18:59 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 12:18:59 +0000 Subject: Change in osmo-mgw[master]: manual: Include QoS chapter and add osmo-mgw specific example In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23967 ) Change subject: manual: Include QoS chapter and add osmo-mgw specific example ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I46f632f52a86a50242689a0132a7a7cb2a8feb12 Gerrit-Change-Number: 23967 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 12:18: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 Apr 29 12:21:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 12:21:34 +0000 Subject: Change in osmo-msc[master]: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 ) Change subject: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-msc/+/23915/3/src/libmsc/sgs_iface.c File src/libmsc/sgs_iface.c: https://gerrit.osmocom.org/c/osmo-msc/+/23915/3/src/libmsc/sgs_iface.c at 943 PS3, Line 943: LOGL_INFO > sounds more like a NOTICE? No, INFo is OK imho, it can well be that the MME doesn't support fast fallback. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 12:21:34 +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 Apr 29 12:22:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 12:22:46 +0000 Subject: Change in osmo-msc[master]: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 to look at the new patch set (#4). Change subject: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Fill Last Used E-UTRAN PLMN Id when in CSFB Since recently, osmo-bsc behaves strictly as per specs, meaning it will only send the "Cell selection indicator after release of all TCH and SDCCH IE" in RR Channel Release iff: * "Last Used E-UTRAN PLMN Id" was received in the CommonID sent MSC->BSC * "Last Used E-UTRAN PLMN Id" was received insider "old BSS to new BSS Information" in the HandoverRequest sent MSC->BSC. On the other hand, CSFB_Indicator from ClearCommand MSC->BSC is nw ignored and not taken into account. Hence, let's update osmo-msc to also behave correctly by sending the Last Used E-UTRAN PLMN ID at CommonID tx time to avoid regressions in CSFB support when running against newer osmo-bsc. Let's keep sending the CSFB Indicator in ClearCommand as we used too, in order to keep compatibility with older BSCs (as per spec). Related: SYS#5337 Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc --- M include/osmocom/msc/ran_msg.h M include/osmocom/msc/vlr.h M include/osmocom/msc/vlr_sgs.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/ran_msg_a.c M src/libmsc/sgs_iface.c M src/libvlr/vlr.c M src/libvlr/vlr_sgs.c 9 files changed, 86 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/15/23915/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 12:24:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 12:24:07 +0000 Subject: Change in osmo-msc[master]: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 ) Change subject: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 12:24:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 12:26:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 12:26:12 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc File doc/manuals/chapters/qos-example.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23927/1/doc/manuals/chapters/qos-example.adoc at 45 PS1, Line 45: NOTE:: The settings of the `ip` command are volatile and only active until > but not exactly underneath that command. [?] I guess we could then define it once in osmo-gsm-manuals using macros (or what asciidoc provides for that?) and then include here to avoid having several chunks of the same text (in case we need to change or add something later). Just an idea. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 12:26:12 +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 Thu Apr 29 12:35:13 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 12:35:13 +0000 Subject: Change in osmocom-bb[master]: trxcon: fix legacy length expectations for TRXDv0 Rx PDUs References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23972 ) Change subject: trxcon: fix legacy length expectations for TRXDv0 Rx PDUs ...................................................................... trxcon: fix legacy length expectations for TRXDv0 Rx PDUs 158 is basically: 8 + 148 + 2, where the last two are padding bytes sent by legacy TRXDv0 transceivers. We don't need them, so do not drop PDUs without these leggacy padding bytes. Change-Id: I6c0734bc4669ccde2a93940c9cf50fdbbd67cb00 --- M src/host/trxcon/trx_if.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/72/23972/1 diff --git a/src/host/trxcon/trx_if.c b/src/host/trxcon/trx_if.c index e1ce588..716fd23 100644 --- a/src/host/trxcon/trx_if.c +++ b/src/host/trxcon/trx_if.c @@ -585,7 +585,7 @@ return read_len; } - if (read_len != 158) { + if (read_len < (8 + 148)) { /* TRXDv0 header + GMSK burst */ LOGP(DTRXD, LOGL_ERROR, "Got data message with invalid " "length '%zd'\n", read_len); return -EINVAL; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I6c0734bc4669ccde2a93940c9cf50fdbbd67cb00 Gerrit-Change-Number: 23972 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 Apr 29 12:40:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 12:40:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor handling of version specific TRXD parts In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23832 ) Change subject: osmo-bts-trx: refactor handling of version specific TRXD parts ...................................................................... Patch Set 6: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Gerrit-Change-Number: 23832 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 12:40: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 Apr 29 12:41:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 12:41:23 +0000 Subject: Change in osmo-msc[master]: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 ) Change subject: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 12:41: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 Apr 29 12:41:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 12:41:25 +0000 Subject: Change in osmo-msc[master]: Fill Last Used E-UTRAN PLMN Id when in CSFB In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/23915 ) Change subject: Fill Last Used E-UTRAN PLMN Id when in CSFB ...................................................................... Fill Last Used E-UTRAN PLMN Id when in CSFB Since recently, osmo-bsc behaves strictly as per specs, meaning it will only send the "Cell selection indicator after release of all TCH and SDCCH IE" in RR Channel Release iff: * "Last Used E-UTRAN PLMN Id" was received in the CommonID sent MSC->BSC * "Last Used E-UTRAN PLMN Id" was received insider "old BSS to new BSS Information" in the HandoverRequest sent MSC->BSC. On the other hand, CSFB_Indicator from ClearCommand MSC->BSC is nw ignored and not taken into account. Hence, let's update osmo-msc to also behave correctly by sending the Last Used E-UTRAN PLMN ID at CommonID tx time to avoid regressions in CSFB support when running against newer osmo-bsc. Let's keep sending the CSFB Indicator in ClearCommand as we used too, in order to keep compatibility with older BSCs (as per spec). Related: SYS#5337 Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc --- M include/osmocom/msc/ran_msg.h M include/osmocom/msc/vlr.h M include/osmocom/msc/vlr_sgs.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/ran_msg_a.c M src/libmsc/sgs_iface.c M src/libvlr/vlr.c M src/libvlr/vlr_sgs.c 9 files changed, 86 insertions(+), 5 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/msc/ran_msg.h b/include/osmocom/msc/ran_msg.h index 3b08b46..1303ba3 100644 --- a/include/osmocom/msc/ran_msg.h +++ b/include/osmocom/msc/ran_msg.h @@ -220,6 +220,8 @@ } cipher_mode_reject; struct { const char *imsi; + bool last_eutran_plmn_present; + struct osmo_plmn_id last_eutran_plmn; } common_id; struct { enum gsm48_reject_value cause; diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h index 3b9bbc4..6e65283 100644 --- a/include/osmocom/msc/vlr.h +++ b/include/osmocom/msc/vlr.h @@ -193,6 +193,8 @@ vlr_sgs_lu_mminfo_cb_t mminfo_cb; enum sgsap_service_ind paging_serv_ind; struct osmo_timer_list Ts5; + bool last_eutran_plmn_present; + struct osmo_plmn_id last_eutran_plmn; } sgs; struct osmo_gsm48_classmark classmark; @@ -398,6 +400,8 @@ void vlr_subscr_set_imei(struct vlr_subscr *vsub, const char *imei); void vlr_subscr_set_imeisv(struct vlr_subscr *vsub, const char *imeisv); void vlr_subscr_set_msisdn(struct vlr_subscr *vsub, const char *msisdn); +void vlr_subscr_set_last_used_eutran_plmn_id(struct vlr_subscr *vsub, + const struct osmo_plmn_id *last_eutran_plmn); bool vlr_subscr_matches_imsi(struct vlr_subscr *vsub, const char *imsi); bool vlr_subscr_matches_tmsi(struct vlr_subscr *vsub, uint32_t tmsi); diff --git a/include/osmocom/msc/vlr_sgs.h b/include/osmocom/msc/vlr_sgs.h index fa9d948..1a4984d 100644 --- a/include/osmocom/msc/vlr_sgs.h +++ b/include/osmocom/msc/vlr_sgs.h @@ -97,7 +97,7 @@ int vlr_sgs_loc_update(struct vlr_instance *vlr, struct vlr_sgs_cfg *cfg, vlr_sgs_lu_response_cb_t response_cb, vlr_sgs_lu_paging_cb_t paging_cb, vlr_sgs_lu_mminfo_cb_t mminfo_cb, char *mme_name, enum vlr_lu_type type, const char *imsi, - struct osmo_location_area_id *new_lai); + struct osmo_location_area_id *new_lai, struct osmo_plmn_id *last_eutran_plmn); void vlr_sgs_loc_update_acc_sent(struct vlr_subscr *vsub); void vlr_sgs_loc_update_rej_sent(struct vlr_subscr *vsub); void vlr_sgs_detach(struct vlr_instance *vlr, const char *imsi, bool eps); diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index 6379059..58ef074 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -1368,12 +1368,19 @@ static int msc_vlr_tx_common_id(void *msc_conn_ref) { struct msc_a *msc_a = msc_conn_ref; + struct vlr_subscr *vsub = msc_a_vsub(msc_a); struct ran_msg msg = { .msg_type = RAN_MSG_COMMON_ID, .common_id = { - .imsi = msc_a_vsub(msc_a)->imsi, + .imsi = vsub->imsi, + .last_eutran_plmn_present = vsub->sgs.last_eutran_plmn_present, }, }; + if (vsub->sgs.last_eutran_plmn_present) { + memcpy(&msg.common_id.last_eutran_plmn, &vsub->sgs.last_eutran_plmn, + sizeof(vsub->sgs.last_eutran_plmn)); + } + return msc_a_ran_down(msc_a, MSC_ROLE_I, &msg); } diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index 0645c54..daa5bc7 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -1648,8 +1648,13 @@ .msg_type = RAN_MSG_COMMON_ID, .common_id = { .imsi = vsub->imsi, + .last_eutran_plmn_present = vsub->sgs.last_eutran_plmn_present, }, }; + if (vsub->sgs.last_eutran_plmn_present) { + memcpy(&msg.common_id.last_eutran_plmn, &vsub->sgs.last_eutran_plmn, + sizeof(vsub->sgs.last_eutran_plmn)); + } return msc_a_ran_down(msc_a, to_role, &msg); } diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index 2890076..4cce289 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -1218,7 +1218,11 @@ return ran_a_make_assignment_command(caller_fi, &ran_enc_msg->assignment_command); case RAN_MSG_COMMON_ID: - return gsm0808_create_common_id(ran_enc_msg->common_id.imsi, NULL, NULL); + return gsm0808_create_common_id(ran_enc_msg->common_id.imsi, NULL, + ran_enc_msg->common_id.last_eutran_plmn_present ? + &ran_enc_msg->common_id.last_eutran_plmn : + NULL + ); case RAN_MSG_CIPHER_MODE_COMMAND: return ran_a_make_cipher_mode_command(caller_fi, &ran_enc_msg->cipher_mode_command); diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c index d13449d..04302ae 100644 --- a/src/libmsc/sgs_iface.c +++ b/src/libmsc/sgs_iface.c @@ -608,12 +608,14 @@ char *mme_name; struct vlr_sgs_cfg vlr_sgs_cfg; struct vlr_subscr *vsub; + struct osmo_plmn_id last_eutran_plmn_buf, *last_eutran_plmn = NULL; /* Check for lingering connections */ vsub = vlr_subscr_find_by_imsi(gsm_network->vlr, imsi, __func__); if (vsub) { subscr_conn_toss(vsub); vlr_subscr_put(vsub, __func__); + vsub = NULL; } /* Determine MME-Name */ @@ -639,11 +641,29 @@ return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MISSING_MAND_IE, msg, SGSAP_IE_LAI); gsm48_decode_lai2(gsm48_lai, &new_lai); + /* 3GPP TS 23.272 sec 4.3.3 (CSFB): + * "During the SGs location update procedure, obtaining the last used LTE PLMN ID via TAI" + */ + if (TLVP_PRES_LEN(tp, SGSAP_IE_TAI, 3)) { + last_eutran_plmn = &last_eutran_plmn_buf; + osmo_plmn_from_bcd(TLVP_VAL(tp, SGSAP_IE_TAI), last_eutran_plmn); + /* TODO: we could also gather the TAC from here, but we don't need it yet */ + } else if (TLVP_PRES_LEN(tp, SGSAP_IE_EUTRAN_CGI, 3)) { + /* Since TAI is optional, let's try harder getting Last Used + * E-UTRAN PLMN ID by fetching it from E-UTRAN CGI */ + last_eutran_plmn = &last_eutran_plmn_buf; + osmo_plmn_from_bcd(TLVP_VAL(tp, SGSAP_IE_EUTRAN_CGI), last_eutran_plmn); + /* TODO: we could also gather the ECI from here, but we don't need it yet */ + } else { + LOGSGC(sgc, LOGL_INFO, "Receiving SGsAP-LOCATION-UPDATE-REQUEST without TAI nor " + "E-CGI IEs, fast fallback GERAN->EUTRAN won't be possible!\n"); + } + /* Perform actual location update */ memcpy(vlr_sgs_cfg.timer, sgc->sgs->cfg.timer, sizeof(vlr_sgs_cfg.timer)); memcpy(vlr_sgs_cfg.counter, sgc->sgs->cfg.counter, sizeof(vlr_sgs_cfg.counter)); rc = vlr_sgs_loc_update(gsm_network->vlr, &vlr_sgs_cfg, sgs_tx_loc_upd_resp_cb, sgs_iface_tx_paging, - sgs_tx_mm_info_cb, mme_name, type, imsi, &new_lai); + sgs_tx_mm_info_cb, mme_name, type, imsi, &new_lai, last_eutran_plmn); if (rc != 0) { resp = gsm29118_create_lu_rej(imsi, SGSAP_SGS_CAUSE_IMSI_UNKNOWN, NULL); sgs_tx(sgc, resp); @@ -905,6 +925,26 @@ if (!vsub) return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_IMSI_UNKNOWN, msg, SGSAP_IE_IMSI); + /* 3GPP TS 23.272 sec 4.3.3 (CSFB): + * "During the SGs location update procedure, obtaining the last used LTE PLMN ID via TAI" + */ + vsub->sgs.last_eutran_plmn_present = TLVP_PRES_LEN(tp, SGSAP_IE_EUTRAN_CGI, 3); + if (TLVP_PRES_LEN(tp, SGSAP_IE_TAI, 3)) { + vsub->sgs.last_eutran_plmn_present = true; + osmo_plmn_from_bcd(TLVP_VAL(tp, SGSAP_IE_TAI), &vsub->sgs.last_eutran_plmn); + /* TODO: we could also gather the TAC from here, but we don't need it yet */ + } else if (TLVP_PRES_LEN(tp, SGSAP_IE_EUTRAN_CGI, 3)) { + /* Since TAI is optional, let's try harder getting Last Used + * E-UTRAN PLMN ID by fetching it from E-UTRAN CGI */ + vsub->sgs.last_eutran_plmn_present = true; + osmo_plmn_from_bcd(TLVP_VAL(tp, SGSAP_IE_EUTRAN_CGI), &vsub->sgs.last_eutran_plmn); + /* TODO: we could also gather the ECI from here, but we don't need it yet */ + } else if (!vsub->sgs.last_eutran_plmn_present) { + LOGSGC(sgc, LOGL_INFO, "Receiving SGsAP-MO-CSFB-INDICATION without TAI nor " + "E-CGI IEs, and they are not known from previous SGsAP-LOCATION-UPDATE-REQUEST. " + "Fast fallback GERAN->EUTRAN won't be possible!\n"); + } + /* Check for lingering connections */ subscr_conn_toss(vsub); diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 33d6331..02aceef 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -476,6 +476,23 @@ vsub->imsi, vsub->msisdn); } +void vlr_subscr_set_last_used_eutran_plmn_id(struct vlr_subscr *vsub, + const struct osmo_plmn_id *last_eutran_plmn) +{ + if (!vsub) + return; + if (last_eutran_plmn) { + vsub->sgs.last_eutran_plmn_present = true; + memcpy(&vsub->sgs.last_eutran_plmn, last_eutran_plmn, sizeof(*last_eutran_plmn)); + } else { + vsub->sgs.last_eutran_plmn_present = false; + } + DEBUGP(DVLR, "set Last E-UTRAN PLMN ID on subscriber: %s\n", + vsub->sgs.last_eutran_plmn_present ? + osmo_plmn_name(&vsub->sgs.last_eutran_plmn) : + "(none)"); +} + bool vlr_subscr_matches_imsi(struct vlr_subscr *vsub, const char *imsi) { return vsub && imsi && vsub->imsi[0] && !strcmp(vsub->imsi, imsi); diff --git a/src/libvlr/vlr_sgs.c b/src/libvlr/vlr_sgs.c index 269dda6..5659886 100644 --- a/src/libvlr/vlr_sgs.c +++ b/src/libvlr/vlr_sgs.c @@ -68,11 +68,12 @@ * \param[in] type location update type (normal or IMSI attach). * \param[in] imsi mobile identity (IMSI). * \param[in] new_lai identifier of the new location area. + * \param[in] last_eutran_plnm_id Last E-UTRAN PLMN ID (can be NULL). * \returns 0 in case of success, -EINVAL in case of error. */ int vlr_sgs_loc_update(struct vlr_instance *vlr, struct vlr_sgs_cfg *cfg, vlr_sgs_lu_response_cb_t response_cb, vlr_sgs_lu_paging_cb_t paging_cb, vlr_sgs_lu_mminfo_cb_t mminfo_cb, char *mme_name, enum vlr_lu_type type, const char *imsi, - struct osmo_location_area_id *new_lai) + struct osmo_location_area_id *new_lai, struct osmo_plmn_id *last_eutran_plmn) { struct vlr_subscr *vsub = NULL; @@ -93,6 +94,7 @@ vsub->sgs.paging_cb = paging_cb; vsub->sgs.mminfo_cb = mminfo_cb; vlr_subscr_set_imsi(vsub, imsi); + vlr_subscr_set_last_used_eutran_plmn_id(vsub, last_eutran_plmn); osmo_strlcpy(vsub->sgs.mme_name, mme_name, sizeof(vsub->sgs.mme_name)); osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_RX_LU_FROM_MME, NULL); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/23915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ic5f175b179973d0a50d94f00e15f5a3e332605fc Gerrit-Change-Number: 23915 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 13:07:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 13:07:56 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: append date to all packages In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23948 ) Change subject: OBS: nightly: append date to all packages ...................................................................... Patch Set 2: > Patch Set 2: > > So does that mean that apt-get update + apt-get upgrade will end up in new packages being downloaded and installed despite there was no change? Doesn't look sane to me. Yes. We don't want users to mix nightly packages from different dates by accident (possible ABI breakage), therefore all nightly packages pushed at a given date depend on a "osmocom-nightly" package with this date. When trying to install nightly packages from different dates, there is a conflict. This means that when installing any newer nightly package, all other packages need to be installed from current nightly too, even if their package version did not change. This patch ensures that this actually happens and package managers will not keep the old version and run into a conflict. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 Gerrit-Change-Number: 23948 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 13:07: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 Thu Apr 29 13:08:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 13:08:54 +0000 Subject: Change in docker-playground[master]: make: add UID as --build-arg In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23945 ) Change subject: make: add UID as --build-arg ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b3689a626c50c9ac38eca6b5449b8ec0344c3de Gerrit-Change-Number: 23945 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 13:08: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 Apr 29 13:08:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 13:08:59 +0000 Subject: Change in docker-playground[master]: debian10-obs-submit: new container In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23946 ) Change subject: debian10-obs-submit: new container ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ibb55ad18d2ccf4313f52fa3e3c10d4420c84dced Gerrit-Change-Number: 23946 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 13:08: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 Apr 29 13:09:05 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 13:09:05 +0000 Subject: Change in docker-playground[master]: make: add UID as --build-arg In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23945 ) Change subject: make: add UID as --build-arg ...................................................................... make: add UID as --build-arg Allow to give the user running inside docker the same UID as the user outside. Change-Id: I4b3689a626c50c9ac38eca6b5449b8ec0344c3de --- M make/Makefile 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/make/Makefile b/make/Makefile index d2cacf3..3b4ea81 100644 --- a/make/Makefile +++ b/make/Makefile @@ -15,6 +15,7 @@ # REGISTRY_HOST?=docker.io USERNAME?=$(USER) +UID=$(shell id -u) NAME?=$(shell basename $(CURDIR)) LIBOSMOCORE_BRANCH?=master OSMO_TTCN3_BRANCH?=master @@ -69,6 +70,7 @@ docker-build: .release docker build \ --build-arg USER=$(USERNAME) \ + --build-arg UID=$(UID) \ --build-arg REGISTRY=$(REGISTRY_HOST) \ --build-arg OSMO_TTCN3_BRANCH=$(OSMO_TTCN3_BRANCH) \ --build-arg UPSTREAM_DISTRO=$(UPSTREAM_DISTRO) \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4b3689a626c50c9ac38eca6b5449b8ec0344c3de Gerrit-Change-Number: 23945 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 13:09:06 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 13:09:06 +0000 Subject: Change in docker-playground[master]: debian10-obs-submit: new container In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/23946 ) Change subject: debian10-obs-submit: new container ...................................................................... debian10-obs-submit: new container Add new container to be used by osmo-ci Icc89e20950c2aaa67b209340d1d797b76fce32d2. Related: SYS#5370 Change-Id: Ibb55ad18d2ccf4313f52fa3e3c10d4420c84dced --- A debian10-obs-submit/Dockerfile A debian10-obs-submit/Makefile 2 files changed, 27 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/debian10-obs-submit/Dockerfile b/debian10-obs-submit/Dockerfile new file mode 100644 index 0000000..bc3bbf7 --- /dev/null +++ b/debian10-obs-submit/Dockerfile @@ -0,0 +1,26 @@ +# Used by osmo-ci.git scripts/osmocom-packages-docker.sh +ARG REGISTRY=docker.io +ARG UPSTREAM_DISTRO=debian:buster +FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG UID + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y --no-install-recommends \ + debhelper \ + devscripts \ + dpkg-dev \ + git \ + git-buildpackage \ + meson \ + osc \ + patch \ + sed \ + && \ + apt-get clean + +RUN useradd --uid=${UID} -m user +USER user +RUN git config --global user.email "obs-submit at docker" && \ + git config --global user.name "obs-submit" diff --git a/debian10-obs-submit/Makefile b/debian10-obs-submit/Makefile new file mode 100644 index 0000000..8d0e10b --- /dev/null +++ b/debian10-obs-submit/Makefile @@ -0,0 +1 @@ +include ../make/Makefile -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/23946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ibb55ad18d2ccf4313f52fa3e3c10d4420c84dced Gerrit-Change-Number: 23946 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 13:50:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 13:50:32 +0000 Subject: Change in osmocom-bb[master]: trxcon: fix legacy length expectations for TRXDv0 Rx PDUs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23972 ) Change subject: trxcon: fix legacy length expectations for TRXDv0 Rx PDUs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I6c0734bc4669ccde2a93940c9cf50fdbbd67cb00 Gerrit-Change-Number: 23972 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 13:50:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 13:51:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 13:51:27 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: append date to all packages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23948 ) Change subject: OBS: nightly: append date to all packages ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 Gerrit-Change-Number: 23948 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 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 Thu Apr 29 13:55:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 13:55:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2_frgre: Ensure DSCP is sin premitted value range References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23973 ) Change subject: gprs_ns2_frgre: Ensure DSCP is sin premitted value range ...................................................................... gprs_ns2_frgre: Ensure DSCP is sin premitted value range gors_ns2_udp has this check, but gprs_ns2_frgre was missing it. Change-Id: I9bb9c6bdfe81fa6f02b11a02550ac9a54d3bfeaf --- M src/gb/gprs_ns2_frgre.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/23973/1 diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 76c0b92..f888af2 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -554,6 +554,9 @@ if (local->u.sa.sa_family != AF_INET && local->u.sa.sa_family != AF_INET6) return -EINVAL; + if (dscp < 0 || dscp > 63) + return -EINVAL; + bind = gprs_ns2_bind_by_name(nsi, name); if (bind) { if (result) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9bb9c6bdfe81fa6f02b11a02550ac9a54d3bfeaf Gerrit-Change-Number: 23973 Gerrit-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 Apr 29 13:55:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 13:55:21 +0000 Subject: Change in libosmocore[master]: ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23974 ) Change subject: ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() ...................................................................... ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() The latter is much more compact than the former. Change-Id: I2a24c0cbb17fad8ed84297267dcd63730efbc014 --- M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_udp.c 2 files changed, 4 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/23974/1 diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index f888af2..9391343 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -589,25 +589,16 @@ priv->fd.data = bind; priv->addr = *local; INIT_LLIST_HEAD(&bind->nsvc); + priv->dscp = dscp; rc = osmo_sock_init_osa_ofd(&priv->fd, SOCK_RAW, IPPROTO_GRE, local, NULL, - OSMO_SOCK_F_BIND); + OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(priv->dscp)); if (rc < 0) { gprs_ns2_free_bind(bind); return rc; } - if (dscp > 0) { - priv->dscp = dscp; - - rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, - &dscp, sizeof(dscp)); - if (rc < 0) - LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", - dscp, rc, errno); - } - if (result) *result = bind; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 22d371f..0de207c 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -352,24 +352,16 @@ priv->fd.cb = nsip_fd_cb; priv->fd.data = bind; priv->addr = *local; + priv->dscp = dscp; rc = osmo_sock_init_osa_ofd(&priv->fd, SOCK_DGRAM, IPPROTO_UDP, local, NULL, - OSMO_SOCK_F_BIND); + OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(priv->dscp)); if (rc < 0) { gprs_ns2_free_bind(bind); return rc; } - if (dscp > 0) { - priv->dscp = dscp; - - rc = osmo_sock_set_dscp(priv->fd.fd, dscp); - if (rc < 0) - LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", - dscp, rc, errno); - } - /* IPv4: max fragmented payload can be (13 bit) * 8 byte => 65535. * IPv6: max payload can be 65535 (RFC 2460). * UDP header = 8 byte */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2a24c0cbb17fad8ed84297267dcd63730efbc014 Gerrit-Change-Number: 23974 Gerrit-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 Apr 29 13:55:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 13:55:21 +0000 Subject: Change in libosmocore[master]: gprs_ns: Fix another DSCP vs. TOS mistake in old NS code References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23975 ) Change subject: gprs_ns: Fix another DSCP vs. TOS mistake in old NS code ...................................................................... gprs_ns: Fix another DSCP vs. TOS mistake in old NS code DSCP is a 6-bit value stored in the upper 8 bit of what was used to be known as TOS. Let's use the newly introduced OSMO_SOCK_F_DSCP() to prevent having to worry about this in higher level code. Change-Id: I6b9848fd0752d99d3df5346313618d5847d64fb8 Related: OS#5136 --- M src/gb/gprs_ns.c 1 file changed, 4 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/75/23975/1 diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index a6ef6d4..f486333 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -2068,7 +2068,8 @@ osmo_sock_init2_ofd(&nsi->nsip.fd, AF_INET, SOCK_DGRAM, IPPROTO_UDP, inet_ntoa(in), nsi->nsip.local_port, remote_str, - nsi->nsip.remote_port, OSMO_SOCK_F_BIND | OSMO_SOCK_F_CONNECT); + nsi->nsip.remote_port, OSMO_SOCK_F_BIND | OSMO_SOCK_F_CONNECT | + OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(nsi->nsip.dscp)); LOGP(DNS, LOGL_NOTICE, "Listening for nsip packets from %s:%u on %s:%u\n", @@ -2076,7 +2077,8 @@ } else { /* Accept UDP packets from any source IP/Port */ ret = osmo_sock_init_ofd(&nsi->nsip.fd, AF_INET, SOCK_DGRAM, - IPPROTO_UDP, inet_ntoa(in), nsi->nsip.local_port, OSMO_SOCK_F_BIND); + IPPROTO_UDP, inet_ntoa(in), nsi->nsip.local_port, + OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(nsi->nsip.dscp)); LOGP(DNS, LOGL_NOTICE, "Listening for nsip packets on %s:%u\n", inet_ntoa(in), nsi->nsip.local_port); } @@ -2087,13 +2089,6 @@ return ret; } - ret = setsockopt(nsi->nsip.fd.fd, IPPROTO_IP, IP_TOS, - &nsi->nsip.dscp, sizeof(nsi->nsip.dscp)); - if (ret < 0) - LOGP(DNS, LOGL_ERROR, - "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", - nsi->nsip.dscp, ret, errno); - LOGP(DNS, LOGL_NOTICE, "NS UDP socket at %s:%d\n", inet_ntoa(in), nsi->nsip.local_port); return ret; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6b9848fd0752d99d3df5346313618d5847d64fb8 Gerrit-Change-Number: 23975 Gerrit-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 Apr 29 13:55:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 13:55:21 +0000 Subject: Change in libosmocore[master]: ns2: Allow setting the socket priority for a UDP bind References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23976 ) Change subject: ns2: Allow setting the socket priority for a UDP bind ...................................................................... ns2: Allow setting the socket priority for a UDP bind Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 4 files changed, 54 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/76/23976/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index be59a67..a9c144c 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -246,6 +246,7 @@ const struct osmo_sockaddr *gprs_ns2_ip_bind_sockaddr(struct gprs_ns2_vc_bind *bind); int gprs_ns2_is_ip_bind(struct gprs_ns2_vc_bind *bind); int gprs_ns2_ip_bind_set_dscp(struct gprs_ns2_vc_bind *bind, int dscp); +int gprs_ns2_ip_bind_set_priority(struct gprs_ns2_vc_bind *bind, uint8_t priority); struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_bind( struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *saddr); diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 0de207c..7980df5 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -49,6 +49,7 @@ struct osmo_fd fd; struct osmo_sockaddr addr; int dscp; + uint8_t priority; }; struct priv_vc { @@ -103,7 +104,8 @@ nsvcs++; } - vty_out(vty, "UDP bind: %s:%d DSCP: %d%s", sockstr.ip, sockstr.port, priv->dscp, VTY_NEWLINE); + vty_out(vty, "UDP bind: %s:%d DSCP: %d Priority: %u%s", sockstr.ip, sockstr.port, + priv->dscp, priv->priority, VTY_NEWLINE); vty_out(vty, " IP-SNS signalling weight: %u data weight: %u%s", bind->sns_sig_weight, bind->sns_data_weight, VTY_NEWLINE); vty_out(vty, " %lu NS-VC:%s", nsvcs, VTY_NEWLINE); @@ -525,6 +527,29 @@ return rc; } +/*! Set the socket priority of the given bind. */ +int gprs_ns2_ip_bind_set_priority(struct gprs_ns2_vc_bind *bind, uint8_t priority) +{ + struct priv_bind *priv; + int rc = 0; + + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + priv = bind->priv; + + if (priority != priv->priority) { + priv->priority = priority; + + rc = osmo_sock_set_priority(priv->fd.fd, priority); + if (rc < 0) { + LOGBIND(bind, LOGL_ERROR, "Failed to set the priority to %u with ret(%d) errno(%d)\n", + priority, rc, errno); + } + } + + return rc; +} + + /*! Count UDP binds compatible with remote */ int ns2_ip_count_bind(struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote) { diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index c390423..0fd7c17 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -67,6 +67,7 @@ const char *name; enum gprs_ns2_ll ll; int dscp; + uint8_t priority; bool accept_ipaccess; bool accept_sns; uint8_t ip_sns_sig_weight; @@ -468,6 +469,8 @@ vty_out(vty, " accept-dynamic-ip-sns%s", VTY_NEWLINE); if (vbind->dscp) vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); + if (vbind->priority) + vty_out(vty, " priority %u%s", vbind->priority, VTY_NEWLINE); vty_out(vty, " ip-sns signalling-weight %u data-weight %u%s", vbind->ip_sns_sig_weight, vbind->ip_sns_data_weight, VTY_NEWLINE); break; @@ -722,6 +725,28 @@ return CMD_SUCCESS; } +DEFUN(cfg_ns_bind_priority, cfg_ns_bind_priority_cmd, + "priority <0-255>", + "Set socket priority on the UDP socket\n" "Priority Value (>6 requires CAP_NET_ADMIN)\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint8_t prio = 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->priority = prio; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_priority(bind, prio); + + 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" @@ -2235,6 +2260,7 @@ 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_priority_cmd); install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ip_sns_weight_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); diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index ed9b822..db638f9 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -162,6 +162,7 @@ gprs_ns2_ip_bind; gprs_ns2_ip_bind_by_sockaddr; gprs_ns2_ip_bind_set_dscp; +gprs_ns2_ip_bind_set_priority; gprs_ns2_ip_bind_set_sns_weight; gprs_ns2_ip_bind_sockaddr; gprs_ns2_ip_connect; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb Gerrit-Change-Number: 23976 Gerrit-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 Apr 29 13:55:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 13:55:22 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23977 ) Change subject: Fix ipa_ccm_make_id_resp_from_req ...................................................................... Fix ipa_ccm_make_id_resp_from_req In 2018, I4723361e1094b358310541a7dc4c5c921c778a15 introuced a check against an integer unterflow. However, the fheck got the logic wrong, with the result of breaking the function completely: It would always only detect the first tag within the IPA request and then take the branch that assumes an integer underflow. Change-Id: I344975d0bda565ff196a1c0c69305cd349b98a19 --- M src/gsm/ipa.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/77/23977/1 diff --git a/src/gsm/ipa.c b/src/gsm/ipa.c index 7a26ba4..fdc0bc6 100644 --- a/src/gsm/ipa.c +++ b/src/gsm/ipa.c @@ -427,9 +427,9 @@ /* prevent any unsigned integer underflow due to somebody sending us * messages with wrong length values */ if (len <= t_len) - len -= t_len; - else len = 0; + else + len -= t_len; } return ipa_ccm_make_id_resp(dev, ies, num_ies); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I344975d0bda565ff196a1c0c69305cd349b98a19 Gerrit-Change-Number: 23977 Gerrit-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 Apr 29 14:01:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:01:09 +0000 Subject: Change in osmo-ci[master]: OBS: latest: support new 2021q1 feed In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23951 ) Change subject: OBS: latest: support new 2021q1 feed ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ci/+/23951/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ci/+/23951/3//COMMIT_MSG at 7 PS3, Line 7: OBS: latest: support new 2021q1 feed > Not sure if this has already been discussed or if its related, but I tend to define CNI complete rel [?] Harald suggested the 2021q1 name in SYS#5370. I think the format is different from regular CNI releases on purpose. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 Gerrit-Change-Number: 23951 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:01:09 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:05:38 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:05:38 +0000 Subject: Change in osmo-ci[master]: OBS: require PROJ environment variable to be set In-Reply-To: References: Message-ID: Hello laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/23949 to look at the new patch set (#4). Change subject: OBS: require PROJ environment variable to be set ...................................................................... OBS: require PROJ environment variable to be set Uploading to network:osmocom:* should only be done when these scripts are running in the Osmocom jenkins. Remove the default and require users of the script to explicitly set PROJ. Related: SYS#5370 Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 --- M jobs/osmocom-obs.yml M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 4 files changed, 15 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/49/23949/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 Gerrit-Change-Number: 23949 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:05:38 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:05:38 +0000 Subject: Change in osmo-ci[master]: OBS: latest: support new 2021q1 feed In-Reply-To: References: Message-ID: Hello laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 to look at the new patch set (#4). Change subject: OBS: latest: support new 2021q1 feed ...................................................................... OBS: latest: support new 2021q1 feed Related: SYS#5370 Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 --- M scripts/osmocom-latest-packages.sh 1 file changed, 54 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/51/23951/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 Gerrit-Change-Number: 23951 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:06:11 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:06:11 +0000 Subject: Change in osmo-ci[master]: OBS: require PROJ environment variable to be set In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23949 ) Change subject: OBS: require PROJ environment variable to be set ...................................................................... Patch Set 4: Verified+1 Code-Review+2 (2 comments) https://gerrit.osmocom.org/c/osmo-ci/+/23949/3/scripts/osmocom-latest-packages.sh File scripts/osmocom-latest-packages.sh: https://gerrit.osmocom.org/c/osmo-ci/+/23949/3/scripts/osmocom-latest-packages.sh at 4 PS3, Line 4: # * PROJ: the OBS namespace to upload to (e.g. network:osmocom:latest) > I think it's worth adding "" around network:osmocom:latest, this way it's immediately clear that's t [?] Ack https://gerrit.osmocom.org/c/osmo-ci/+/23949/3/scripts/osmocom-nightly-packages.sh File scripts/osmocom-nightly-packages.sh: https://gerrit.osmocom.org/c/osmo-ci/+/23949/3/scripts/osmocom-nightly-packages.sh at 4 PS3, Line 4: # * PROJ: the OBS namespace to upload to (e.g. network:osmocom:nightly) > same Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 Gerrit-Change-Number: 23949 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:06: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 Thu Apr 29 14:06:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:06:44 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: no change to osmocom-$FEED changelog In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23947 ) Change subject: OBS: nightly: no change to osmocom-$FEED changelog ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I85f0bcb633c16c7b5a81104f198d9561f53c0c01 Gerrit-Change-Number: 23947 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:06: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 Apr 29 14:06:50 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:06:50 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: append date to all packages In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23948 ) Change subject: OBS: nightly: append date to all packages ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 Gerrit-Change-Number: 23948 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:06: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 Apr 29 14:06:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:06:58 +0000 Subject: Change in osmo-ci[master]: Cosmetic: OBS: describe build() parameters In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23970 ) Change subject: Cosmetic: OBS: describe build() parameters ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib50499d6d3bd862879eaff58c9bf2260afc97ff8 Gerrit-Change-Number: 23970 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 29 Apr 2021 14:06: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 Apr 29 14:07:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:07:07 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: build: simplify changelog parameter In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23971 ) Change subject: OBS: nightly: build: simplify changelog parameter ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a7f63f71d248b3796493adf6dc1be9c1b737c2e Gerrit-Change-Number: 23971 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:07:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:07:17 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:07:17 +0000 Subject: Change in osmo-ci[master]: Cosmetic: OBS: explain difference latest/nightly In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23950 ) Change subject: Cosmetic: OBS: explain difference latest/nightly ...................................................................... Patch Set 4: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4de2a9e9d096f8f77bfd72b8cabb0a69af2d51df Gerrit-Change-Number: 23950 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:07:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:07:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:07:39 +0000 Subject: Change in osmo-ci[master]: OBS: latest: support new 2021q1 feed In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23951 ) Change subject: OBS: latest: support new 2021q1 feed ...................................................................... Patch Set 4: Verified+1 Code-Review+2 re-applying +2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 Gerrit-Change-Number: 23951 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:07: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 Apr 29 14:08:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:04 +0000 Subject: Change in osmo-ci[master]: OBS: add PACKAGES env var In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23952 ) Change subject: OBS: add PACKAGES env var ...................................................................... Patch Set 4: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I83c3744713fd6abda4b832460f30eb2e79ebeed8 Gerrit-Change-Number: 23952 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14: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 Apr 29 14:08:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:09 +0000 Subject: Change in osmo-ci[master]: OBS: refactor git_version_gen related logic In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23953 ) Change subject: OBS: refactor git_version_gen related logic ...................................................................... Patch Set 4: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I9a1b6ae4b4311abb77dc6390733c5e330e3d489e Gerrit-Change-Number: 23953 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:08: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 Apr 29 14:08:17 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:17 +0000 Subject: Change in osmo-ci[master]: OBS: latest: add commit to version for 2021q1 feed In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23954 ) Change subject: OBS: latest: add commit to version for 2021q1 feed ...................................................................... Patch Set 4: Verified+1 Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a4fa3b8f66652ef36a7fe62047a88a69c473f19 Gerrit-Change-Number: 23954 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:08:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:22 +0000 Subject: Change in osmo-ci[master]: OBS: common: don't require wget anymore In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23955 ) Change subject: OBS: common: don't require wget anymore ...................................................................... Patch Set 4: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I2e03487058e4c2c9426872975953fa1814b24ccd Gerrit-Change-Number: 23955 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:08: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 Apr 29 14:08:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:30 +0000 Subject: Change in osmo-ci[master]: OBS: add osmocom-packages-docker.sh In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23956 ) Change subject: OBS: add osmocom-packages-docker.sh ...................................................................... Patch Set 4: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icc89e20950c2aaa67b209340d1d797b76fce32d2 Gerrit-Change-Number: 23956 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:08: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 Apr 29 14:08:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:35 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: no change to osmocom-$FEED changelog In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23947 ) Change subject: OBS: nightly: no change to osmocom-$FEED changelog ...................................................................... OBS: nightly: no change to osmocom-$FEED changelog Skip the logic to generate a new debian/changelog version for osmocom-nightly and osmocom-next packages in build(). Use $OSMO_OBS_CONFLICT_PKGVER instead, as it gets written to debian/changelog in common-obs-conflict.sh already, and append the date to the variable. Related: OS#5135 Change-Id: I85f0bcb633c16c7b5a81104f198d9561f53c0c01 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved; Verified diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index c90ed2f..6ae8a26 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -11,6 +11,7 @@ set -x DT=$(date +%Y%m%d%H%M) +OSMO_OBS_CONFLICT_PKGVER="$OSMO_OBS_CONFLICT_PKGVER.$DT" TOP=$(pwd)/$(mktemp -d nightly-3g_XXXXXX) # Set FEED and PROJ, based on the FEED env var @@ -117,7 +118,7 @@ local gitbpargs=$3 local repodir=$REPO/$name local oscdir=$REPO/osc/$PROJ/$name - local dependver="$OSMO_OBS_CONFLICT_PKGVER.$DT" + local dependver="$OSMO_OBS_CONFLICT_PKGVER" if [ -z "$changelog" ] ; then changelog=commit @@ -239,7 +240,7 @@ osmo_obs_checkout_copy debian8 osmo-gsm-manuals osmo_obs_checkout_copy debian8 osmo-trx - build osmocom-$FEED + build osmocom-$FEED no_commit build limesuite no_commit --git-upstream-tree="$(get_last_tag limesuite)" build osmo-gsm-manuals build osmo-gsm-manuals-debian8 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I85f0bcb633c16c7b5a81104f198d9561f53c0c01 Gerrit-Change-Number: 23947 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:35 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: append date to all packages In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23948 ) Change subject: OBS: nightly: append date to all packages ...................................................................... OBS: nightly: append date to all packages Instead of only appending the date to non-Osmocom packages in get_commit_version, append it to all packages in build(). This ensures we increase the version of Osmocom packages even if the commit did not change. Fixes: OS#5135 Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved; Verified diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 6ae8a26..bc45188 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -73,7 +73,7 @@ # deb version deb_version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,') if [ -z "$version" ] || [ "$version" = "UNKNOWN" ]; then - version="$deb_version.$DT" + version="$deb_version" else # add epoch from debian/changelog case $deb_version in @@ -138,7 +138,8 @@ cd "$repodir" if [ "$changelog" = "commit" ] ; then - VER=$(get_commit_version) + # Add date to increase version even if commit did not change (OS#5135) + VER="$(get_commit_version).$DT" osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" "$dependver" dch -b -v "$VER" -m "Snapshot build" git commit -m "$VER snapshot" debian/ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I04d84f39f4093c8edfe21a94c10ecb8d3c7b5b64 Gerrit-Change-Number: 23948 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:36 +0000 Subject: Change in osmo-ci[master]: Cosmetic: OBS: describe build() parameters In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23970 ) Change subject: Cosmetic: OBS: describe build() parameters ...................................................................... Cosmetic: OBS: describe build() parameters Change-Id: Ib50499d6d3bd862879eaff58c9bf2260afc97ff8 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 9 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved osmith: Verified diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 8eef259..8c979ef 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -61,6 +61,9 @@ fi } +# Generate a source package and upload it to OBS +# $1: package name (e.g. "libosmocore") +# $2: arguments to pass to "gbp buildpackage" build() { project=$1 gitbpargs="$2" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index bc45188..a51ef55 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -112,6 +112,12 @@ cd - } +# Generate a source package and upload it to OBS +# $1: package name (e.g. "libosmocore") +# $2: update debian dir when set to "commit" (default): +# * add dependency on osmocom-$FEED package +# * add new version to changelog (e.g. "1.5.1.96.c96d7.202104281354") +# $3: arguments to pass to "gbp buildpackage" build() { local name=$1 local changelog=$2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib50499d6d3bd862879eaff58c9bf2260afc97ff8 Gerrit-Change-Number: 23970 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:37 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: build: simplify changelog parameter In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23971 ) Change subject: OBS: nightly: build: simplify changelog parameter ...................................................................... OBS: nightly: build: simplify changelog parameter Change-Id: I4a7f63f71d248b3796493adf6dc1be9c1b737c2e --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index a51ef55..86f406e 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -114,7 +114,7 @@ # Generate a source package and upload it to OBS # $1: package name (e.g. "libosmocore") -# $2: update debian dir when set to "commit" (default): +# $2: update debian dir, unless set to "no_commit": # * add dependency on osmocom-$FEED package # * add new version to changelog (e.g. "1.5.1.96.c96d7.202104281354") # $3: arguments to pass to "gbp buildpackage" @@ -126,10 +126,6 @@ local oscdir=$REPO/osc/$PROJ/$name local dependver="$OSMO_OBS_CONFLICT_PKGVER" - if [ -z "$changelog" ] ; then - changelog=commit - fi - if [ -d "$oscdir" ] ; then # remove earlier version cd "$oscdir" @@ -143,7 +139,7 @@ cd "$repodir" - if [ "$changelog" = "commit" ] ; then + if [ "$changelog" != "no_commit" ] ; then # Add date to increase version even if commit did not change (OS#5135) VER="$(get_commit_version).$DT" osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" "$dependver" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a7f63f71d248b3796493adf6dc1be9c1b737c2e Gerrit-Change-Number: 23971 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:38 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:38 +0000 Subject: Change in osmo-ci[master]: OBS: require PROJ environment variable to be set In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23949 ) Change subject: OBS: require PROJ environment variable to be set ...................................................................... OBS: require PROJ environment variable to be set Uploading to network:osmocom:* should only be done when these scripts are running in the Osmocom jenkins. Remove the default and require users of the script to explicitly set PROJ. Related: SYS#5370 Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 --- M jobs/osmocom-obs.yml M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 4 files changed, 15 insertions(+), 22 deletions(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/jobs/osmocom-obs.yml b/jobs/osmocom-obs.yml index 4d165d6..9bdadeb 100644 --- a/jobs/osmocom-obs.yml +++ b/jobs/osmocom-obs.yml @@ -26,7 +26,8 @@ description: osmo-ci.git branch default: 'refs/remotes/origin/master' builders: - - shell: + - shell: | + export PROJ=network:osmocom:{type} ./scripts/osmocom-{type}-packages.sh scm: - git: diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 38719c8..c5b03f9 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -15,6 +15,10 @@ sed \ wget +if [ -z "$PROJ" ]; then + echo "PROJ environment variable is not set" + exit 1 +fi # Add dependency to all (sub)packages in debian/control and commit the change. # $1: path to debian/control file diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 8c979ef..a4a1aa9 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -1,14 +1,13 @@ #!/bin/sh # Generate source packages and upload them to OBS, for the latest feed. +# Environment variables: +# * PROJ: the OBS namespace to upload to (e.g. "network:osmocom:latest") . "$(dirname "$0")/common.sh" . "$(dirname "$0")/common-obs.sh" set -e set -x -# OBS project name -PROJ=network:osmocom:latest - DT=$(date +%Y%m%d%H%M) TOP=$(pwd) DEBSRCDIR="$TOP/debsrc" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 86f406e..5490e58 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -1,7 +1,8 @@ #!/bin/bash # Generate source packages and upload them to OBS, for the nightly or next feed. # Environment variables: -# * FEED: the binary package feed to upload to, this also controls the source branch that is used: +# * PROJ: the OBS namespace to upload to (e.g. "network:osmocom:nightly") +# * FEED: controls the source branch that is used: # * "nightly": use "master" branch (default) # * "next": use "next" branch if it exists, otherwise use "master" branch . "$(dirname "$0")/common.sh" @@ -13,23 +14,12 @@ DT=$(date +%Y%m%d%H%M) OSMO_OBS_CONFLICT_PKGVER="$OSMO_OBS_CONFLICT_PKGVER.$DT" TOP=$(pwd)/$(mktemp -d nightly-3g_XXXXXX) +FEED="${FEED:-nightly}" -# Set FEED and PROJ, based on the FEED env var -parse_feed_proj() { - FEED="${FEED:-nightly}" - case "$FEED" in - nightly) - PROJ=network:osmocom:nightly - ;; - next) - PROJ=network:osmocom:next - ;; - *) - echo "unsupported feed: $FEED" - exit 1 - ;; - esac -} +if [ "$FEED" != "nightly" ] && [ "$FEED" != "next" ]; then + echo "unsupported feed: $FEED" + exit 1 +fi ### OBS build prepare() { @@ -286,5 +276,4 @@ post } -parse_feed_proj build_osmocom -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If49ce217e77716b63dfde9139e869672a54b66a2 Gerrit-Change-Number: 23949 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:39 +0000 Subject: Change in osmo-ci[master]: Cosmetic: OBS: explain difference latest/nightly In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23950 ) Change subject: Cosmetic: OBS: explain difference latest/nightly ...................................................................... Cosmetic: OBS: explain difference latest/nightly Related: SYS#5370 Change-Id: I4de2a9e9d096f8f77bfd72b8cabb0a69af2d51df --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 3 insertions(+), 0 deletions(-) Approvals: osmith: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index a4a1aa9..e3740f7 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -1,5 +1,6 @@ #!/bin/sh # Generate source packages and upload them to OBS, for the latest feed. +# New packages are only uploaded if the source changed. # Environment variables: # * PROJ: the OBS namespace to upload to (e.g. "network:osmocom:latest") . "$(dirname "$0")/common.sh" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 5490e58..bcbb6f3 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -1,5 +1,7 @@ #!/bin/bash # Generate source packages and upload them to OBS, for the nightly or next feed. +# New packages are always uploaded, even if the source does not change. Only +# packages of the same build date (DT) can be installed together. # Environment variables: # * PROJ: the OBS namespace to upload to (e.g. "network:osmocom:nightly") # * FEED: controls the source branch that is used: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4de2a9e9d096f8f77bfd72b8cabb0a69af2d51df Gerrit-Change-Number: 23950 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:40 +0000 Subject: Change in osmo-ci[master]: OBS: latest: support new 2021q1 feed In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23951 ) Change subject: OBS: latest: support new 2021q1 feed ...................................................................... OBS: latest: support new 2021q1 feed Related: SYS#5370 Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 --- M scripts/osmocom-latest-packages.sh 1 file changed, 54 insertions(+), 10 deletions(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index e3740f7..e3c9452 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -3,15 +3,38 @@ # New packages are only uploaded if the source changed. # Environment variables: # * PROJ: the OBS namespace to upload to (e.g. "network:osmocom:latest") +# * FEED: +# * "latest": use latest tagged release (default) +# * other (e.g. "2021q1"): use last commit of branch of same name, exit with +# error if it does not exist . "$(dirname "$0")/common.sh" . "$(dirname "$0")/common-obs.sh" +FEEDS=" + 2021q1 + latest +" + set -e set -x DT=$(date +%Y%m%d%H%M) TOP=$(pwd) DEBSRCDIR="$TOP/debsrc" +FEED="${FEED:-latest}" + +verify_feed() { + local i + + for i in $FEEDS; do + if [ "$i" = "$FEED" ]; then + return + fi + done + + echo "unsupported feed: $FEED" + exit 1 +} ### OBS build prepare() { @@ -25,7 +48,15 @@ mkdir "$DEBSRCDIR" cd "$TOP" - osmo_obs_prepare_conflict "osmocom-latest" "osmocom-nightly" "osmocom-next" + + local conflict_args="osmocom-nightly osmocom-next" + local i + for i in $FEEDS; do + if [ "$i" != "$FEED" ]; then + conflict_args="$conflict_args osmocom-$i" + fi + done + osmo_obs_prepare_conflict "osmocom-$FEED" $conflict_args } get_last_tag() { @@ -54,8 +85,14 @@ [ -d "$project" ] || osmo_git_clone_date "$url" "$project" cd "$project" git fetch - VER=$(get_last_tag "$project") - git checkout -f -B "$VER" "refs/tags/$VER" + + if [ "$FEED" = "latest" ]; then + VER=$(get_last_tag "$project") + git checkout -f -B "$VER" "refs/tags/$VER" + else + git checkout -f -B "$FEED" "origin/$FEED" + fi + if [ "$project" = "open5gs" ]; then meson subprojects download freeDiameter fi @@ -71,12 +108,18 @@ echo echo "====> Building $project" cd "$TOP/$project" - VER=$(get_last_tag "$project") + + if [ "$FEED" = "latest" ]; then + debian_branch=$(get_last_tag "$project") + else + debian_branch="$FEED" + fi + if [ -x ./git-version-gen ]; then ./git-version-gen . > .tarball-version 2>/dev/null fi - osmo_obs_add_depend_deb "./debian/control" "$project" "osmocom-latest" + osmo_obs_add_depend_deb "./debian/control" "$project" "osmocom-$FEED" if [ "$project" = "open5gs" ]; then # we cannot control the output directory of the generated source :( @@ -85,11 +128,11 @@ mv "../$name"*.tar* "../$name"*.dsc "$output" elif [ -x ./git-version-gen ]; then gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$output" \ - "--git-debian-branch=$VER" --git-ignore-new $gitbpargs \ + "--git-debian-branch=$debian_branch" --git-ignore-new $gitbpargs \ --git-postexport='cp $GBP_GIT_DIR/../.tarball-version $GBP_TMP_DIR/' else gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$output" \ - "--git-debian-branch=$VER" --git-ignore-new $gitbpargs + "--git-debian-branch=$debian_branch" --git-ignore-new $gitbpargs fi if [ ! -d "$TOP/$PROJ/$project" ] ; then @@ -112,7 +155,7 @@ fi fi - osmo_obs_add_rpm_spec "$TOP/$PROJ/$project" "$TOP/$project" "$project" "osmocom-latest" + osmo_obs_add_rpm_spec "$TOP/$PROJ/$project" "$TOP/$project" "$project" "osmocom-$FEED" cd "$TOP" } @@ -162,7 +205,7 @@ cd "$TOP" osmo_obs_checkout_copy debian8 osmo-gsm-manuals - build osmocom-latest + build osmocom-$FEED build limesuite --git-upstream-tree="$(get_last_tag limesuite)" build osmo-gsm-manuals build osmo-gsm-manuals-debian8 @@ -199,7 +242,8 @@ build osmo-gbproxy cd "$TOP/$PROJ" - osc ci -m "Latest Tagged versions of $DT" --noservice + osc ci -m "$FEED versions of $DT" --noservice } +verify_feed build_osmocom -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7a59a6ad94b21ba397349813b56b9bd5ea01c7c3 Gerrit-Change-Number: 23951 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:41 +0000 Subject: Change in osmo-ci[master]: OBS: add PACKAGES env var In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23952 ) Change subject: OBS: add PACKAGES env var ...................................................................... OBS: add PACKAGES env var Skip checking out and building source packages of all other packages, if the environment variable is set. Related: SYS#5370 Change-Id: I83c3744713fd6abda4b832460f30eb2e79ebeed8 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 52 insertions(+), 0 deletions(-) Approvals: osmith: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index c5b03f9..156dfba 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -171,6 +171,27 @@ fi } +# Check if checkout or build of a given package should be skipped, based on the +# PACKAGES environment variable. +# $1: package name (e.g. "libosmocore") +osmo_obs_skip_pkg() { + local pkgname="$1" + + if [ -z "$PACKAGES" ]; then + # Don't skip + return 1 + fi + + for i in "osmocom-$FEED" $PACKAGES; do + if [ "$i" = "$pkgname" ]; then + return 1 + fi + done + + # Skip + return 0 +} + # Copy an already checked out repository dir and apply a distribution specific patch. # $PWD must be where all repositories are checked out in subdirs. # $1: distribution name (e.g. "debian8") @@ -180,6 +201,10 @@ local repo="$2" local patch + if osmo_obs_skip_pkg "$repo"; then + return + fi + echo echo "====> Checking out $repo-$distro" diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index e3c9452..301c6c6 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -7,6 +7,7 @@ # * "latest": use latest tagged release (default) # * other (e.g. "2021q1"): use last commit of branch of same name, exit with # error if it does not exist +# * PACKAGES: set to a space-separated list of packages to skip all others . "$(dirname "$0")/common.sh" . "$(dirname "$0")/common-obs.sh" @@ -75,6 +76,10 @@ url=$2 gitbpargs="" + if osmo_obs_skip_pkg "$project"; then + return + fi + if [ -z "$url" ]; then url="$(osmo_git_clone_url "$project")" fi @@ -105,6 +110,11 @@ project=$1 gitbpargs="$2" output="$DEBSRCDIR/$project" + + if osmo_obs_skip_pkg "$project"; then + return + fi + echo echo "====> Building $project" cd "$TOP/$project" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index bcbb6f3..4fe0104 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -7,6 +7,7 @@ # * FEED: controls the source branch that is used: # * "nightly": use "master" branch (default) # * "next": use "next" branch if it exists, otherwise use "master" branch +# * PACKAGES: set to a space-separated list of packages to skip all others . "$(dirname "$0")/common.sh" . "$(dirname "$0")/common-obs.sh" @@ -85,6 +86,10 @@ local url=$2 local branch=$3 + if osmo_obs_skip_pkg "$name"; then + return + fi + if [ -z "$url" ]; then url="$(osmo_git_clone_url "$name")" fi @@ -118,6 +123,10 @@ local oscdir=$REPO/osc/$PROJ/$name local dependver="$OSMO_OBS_CONFLICT_PKGVER" + if osmo_obs_skip_pkg "$name"; then + return + fi + if [ -d "$oscdir" ] ; then # remove earlier version cd "$oscdir" @@ -167,6 +176,10 @@ } checkout_limesuite() { + if osmo_obs_skip_pkg "limesuite"; then + return + fi + cd "$REPO" git clone https://github.com/myriadrf/LimeSuite limesuite TAG="$(get_last_tag limesuite)" @@ -175,6 +188,10 @@ } checkout_open5gs() { + if osmo_obs_skip_pkg "open5gs"; then + return + fi + cd "$REPO" git clone https://github.com/open5gs/open5gs cd open5gs -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I83c3744713fd6abda4b832460f30eb2e79ebeed8 Gerrit-Change-Number: 23952 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:41 +0000 Subject: Change in osmo-ci[master]: OBS: refactor git_version_gen related logic In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23953 ) Change subject: OBS: refactor git_version_gen related logic ...................................................................... OBS: refactor git_version_gen related logic Move git_version_gen calls into an own function and add some of the description from I76e3713f0b01a6110091ff90e8e53aa79533c374 where this code was added. Don't call it inside get_commit_version anymore, but call it before. Don't try to cat the resulting .tarball-version there if it doesn't exist. Related: SYS#5370 Change-Id: I9a1b6ae4b4311abb77dc6390733c5e330e3d489e --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 20 insertions(+), 10 deletions(-) Approvals: osmith: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 156dfba..a585e46 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -243,3 +243,12 @@ git commit -m "auto-commit: apply $patch" debian/ cd .. } + +# Run git-version-gen inside Osmocom repositories, so the .tarball-version +# becomes part of the source repository. Usually this would be done with +# "make dist", but we use git-buildpackage instead. +osmo_obs_git_version_gen() { + if [ -x ./git-version-gen ]; then + ./git-version-gen . > .tarball-version 2>/dev/null + fi +} diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 301c6c6..5ba5a7b 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -125,9 +125,7 @@ debian_branch="$FEED" fi - if [ -x ./git-version-gen ]; then - ./git-version-gen . > .tarball-version 2>/dev/null - fi + osmo_obs_git_version_gen osmo_obs_add_depend_deb "./debian/control" "$project" "osmocom-$FEED" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 4fe0104..cee1382 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -53,15 +53,17 @@ echo "${VER}" } +# Return a version based on the latest tag and commit (e.g. "1.5.1.93.47cc") +# or fall back to the last debian version (e.g. "2.2.6"). +# Run osmo_obs_git_version_gen before. $PWD must be inside a git repository. get_commit_version() { - # return a version based on the commit - local version + local version="" - # determine git version *and generate the .tarball-version file* - test -x ./git-version-gen && ./git-version-gen . > .tarball-version 2>/dev/null - version=$(cat .tarball-version) - # debian doesn't allow '-' in version. - version=$(echo "$version" | sed 's/-/./g' ) + if [ -e ".tarball-version" ]; then + version=$(cat .tarball-version) + # debian doesn't allow '-' in version. + version=$(echo "$version" | sed 's/-/./g' ) + fi # deb version deb_version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,') @@ -141,6 +143,7 @@ cd "$repodir" if [ "$changelog" != "no_commit" ] ; then + osmo_obs_git_version_gen # Add date to increase version even if commit did not change (OS#5135) VER="$(get_commit_version).$DT" osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" "$dependver" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I9a1b6ae4b4311abb77dc6390733c5e330e3d489e Gerrit-Change-Number: 23953 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:43 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:43 +0000 Subject: Change in osmo-ci[master]: OBS: latest: add commit to version for 2021q1 feed In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23954 ) Change subject: OBS: latest: add commit to version for 2021q1 feed ...................................................................... OBS: latest: add commit to version for 2021q1 feed Move get_commit_version to common-obs.sh and call it in osmocom-latest-packages.sh, if the feed is not "latest". This way, the packages don't have the latest tag as version anymore, and the version changes if commits get pushed to the feed's branch. Related: SYS#5370 Change-Id: I4a4fa3b8f66652ef36a7fe62047a88a69c473f19 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 38 insertions(+), 32 deletions(-) Approvals: osmith: Looks good to me, approved; Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index a585e46..e7148bc 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -252,3 +252,32 @@ ./git-version-gen . > .tarball-version 2>/dev/null fi } + +# Return a version based on the latest tag and commit (e.g. "1.5.1.93.47cc") +# or fall back to the last debian version (e.g. "2.2.6"). Run +# osmo_obs_git_version_gen before. $PWD must be inside a git repository. +osmo_obs_get_commit_version() { + local version="" + + if [ -e ".tarball-version" ]; then + version=$(cat .tarball-version) + # debian doesn't allow '-' in version. + version=$(echo "$version" | sed 's/-/./g' ) + fi + + # deb version + deb_version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,') + if [ -z "$version" ] || [ "$version" = "UNKNOWN" ]; then + version="$deb_version" + else + # add epoch from debian/changelog + case $deb_version in + *:*) + epoch=$(echo "$deb_version" | cut -d : -f 1) + version=$epoch:$version + ;; + esac + fi + + echo -n "$version" +} diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 5ba5a7b..d942e9d 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -119,14 +119,20 @@ echo "====> Building $project" cd "$TOP/$project" + osmo_obs_git_version_gen + if [ "$FEED" = "latest" ]; then debian_branch=$(get_last_tag "$project") else debian_branch="$FEED" + # Set new debian changelog version with commit appended. This version will + # become part of resulting filenames, and will change if commits have been + # added to the feed's branch. + VER="$(osmo_obs_get_commit_version)" + dch -b -v "$VER" -m "Snapshot build" + git commit -m "$VER snapshot" debian/ fi - osmo_obs_git_version_gen - osmo_obs_add_depend_deb "./debian/control" "$project" "osmocom-$FEED" if [ "$project" = "open5gs" ]; then diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index cee1382..ef2d7ef 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -53,35 +53,6 @@ echo "${VER}" } -# Return a version based on the latest tag and commit (e.g. "1.5.1.93.47cc") -# or fall back to the last debian version (e.g. "2.2.6"). -# Run osmo_obs_git_version_gen before. $PWD must be inside a git repository. -get_commit_version() { - local version="" - - if [ -e ".tarball-version" ]; then - version=$(cat .tarball-version) - # debian doesn't allow '-' in version. - version=$(echo "$version" | sed 's/-/./g' ) - fi - - # deb version - deb_version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,') - if [ -z "$version" ] || [ "$version" = "UNKNOWN" ]; then - version="$deb_version" - else - # add epoch from debian/changelog - case $deb_version in - *:*) - epoch=$(echo "$deb_version" | cut -d : -f 1) - version=$epoch:$version - ;; - esac - fi - - echo -n "$version" -} - ### common checkout() { local name=$1 @@ -145,7 +116,7 @@ if [ "$changelog" != "no_commit" ] ; then osmo_obs_git_version_gen # Add date to increase version even if commit did not change (OS#5135) - VER="$(get_commit_version).$DT" + VER="$(osmo_obs_get_commit_version).$DT" osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" "$dependver" dch -b -v "$VER" -m "Snapshot build" git commit -m "$VER snapshot" debian/ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4a4fa3b8f66652ef36a7fe62047a88a69c473f19 Gerrit-Change-Number: 23954 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:44 +0000 Subject: Change in osmo-ci[master]: OBS: common: don't require wget anymore In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23955 ) Change subject: OBS: common: don't require wget anymore ...................................................................... OBS: common: don't require wget anymore Not needed anymore since Iaf2527043e9acdb6acff3e481d4516ac4b75b7e7. Change-Id: I2e03487058e4c2c9426872975953fa1814b24ccd --- M scripts/common-obs.sh 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: osmith: Verified pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index e7148bc..34f2549 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -12,8 +12,7 @@ mktemp \ osc \ patch \ - sed \ - wget + sed if [ -z "$PROJ" ]; then echo "PROJ environment variable is not set" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I2e03487058e4c2c9426872975953fa1814b24ccd Gerrit-Change-Number: 23955 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:08:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 29 Apr 2021 14:08:44 +0000 Subject: Change in osmo-ci[master]: OBS: add osmocom-packages-docker.sh In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/23956 ) Change subject: OBS: add osmocom-packages-docker.sh ...................................................................... OBS: add osmocom-packages-docker.sh Add a simple helper script to run osmocom-*-packages.sh in docker to avoid installing dependencies on the host system. Related: SYS#5370 Depends: docker-playground Ibb55ad18d2ccf4313f52fa3e3c10d4420c84dced Change-Id: Icc89e20950c2aaa67b209340d1d797b76fce32d2 --- A scripts/osmocom-packages-docker.sh 1 file changed, 34 insertions(+), 0 deletions(-) Approvals: osmith: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve diff --git a/scripts/osmocom-packages-docker.sh b/scripts/osmocom-packages-docker.sh new file mode 100755 index 0000000..66eb311 --- /dev/null +++ b/scripts/osmocom-packages-docker.sh @@ -0,0 +1,34 @@ +#!/bin/sh -ex +# Run osmocom-*-packages.sh in a docker container, so dependencies don't need +# to be installed on the host machine. See osmocom-nightly-packages.sh and +# osmocom-latest-packages.sh for supported environment variables. +SCRIPTS="$(realpath "$(dirname "$0")")" +IMAGE="debian10-obs-submit" +OSCRC="${OSCRC:-.oscrc}" + +if ! [ -f "$OSCRC" ]; then + echo "ERROR: missing OSCRC (should point to OSC credentials file)" + exit 1 +fi + +. "$SCRIPTS/common.sh" +docker_images_require "$IMAGE" + +case "$FEED" in +nightly|next|latest) + SCRIPT="osmocom-$FEED-packages.sh" + ;; +*) + # "2021q1" etc, osmocom-latest.sh verifies and uses $FEED + SCRIPT="osmocom-latest-packages.sh" + ;; +esac + +docker run \ + -e "FEED=$FEED" \ + -e "PACKAGES=$PACKAGES" \ + -e "PROJ=$PROJ" \ + -v "$SCRIPTS:/scripts" \ + -v "$(realpath "$OSCRC"):/home/user/.oscrc" \ + "$USER/$IMAGE" \ + sh -c "cd ~ && /scripts/$SCRIPT" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/23956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icc89e20950c2aaa67b209340d1d797b76fce32d2 Gerrit-Change-Number: 23956 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 14:12:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 14:12:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2_frgre: Ensure DSCP is sin premitted value range In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23973 ) Change subject: gprs_ns2_frgre: Ensure DSCP is sin premitted value range ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9bb9c6bdfe81fa6f02b11a02550ac9a54d3bfeaf Gerrit-Change-Number: 23973 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:12: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 Apr 29 14:13:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 14:13:21 +0000 Subject: Change in libosmocore[master]: gprs_ns: Fix another DSCP vs. TOS mistake in old NS code In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23975 ) Change subject: gprs_ns: Fix another DSCP vs. TOS mistake in old NS code ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6b9848fd0752d99d3df5346313618d5847d64fb8 Gerrit-Change-Number: 23975 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14: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 Thu Apr 29 14:14:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 14:14:42 +0000 Subject: Change in libosmocore[master]: ns2: Allow setting the socket priority for a UDP bind In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23976 ) Change subject: ns2: Allow setting the socket priority for a UDP bind ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23976/1/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/23976/1/src/gb/gprs_ns2_udp.c at 542 PS1, Line 542: rc = osmo_sock_set_priority(priv->fd.fd, priority); could it be that the fd is still -1 because the socket was not yet created? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb Gerrit-Change-Number: 23976 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:14: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 Thu Apr 29 14:15:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 14:15:00 +0000 Subject: Change in libosmocore[master]: ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23974 ) Change subject: ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2a24c0cbb17fad8ed84297267dcd63730efbc014 Gerrit-Change-Number: 23974 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:15: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 Apr 29 14:18:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 14:18:01 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23977 ) Change subject: Fix ipa_ccm_make_id_resp_from_req ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23977/1/src/gsm/ipa.c File src/gsm/ipa.c: https://gerrit.osmocom.org/c/libosmocore/+/23977/1/src/gsm/ipa.c at 429 PS1, Line 429: if (len <= t_len) isn't this condition actually already check in line 419 anyway? looks like we can drop this check -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I344975d0bda565ff196a1c0c69305cd349b98a19 Gerrit-Change-Number: 23977 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 14:18: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 Thu Apr 29 14:37:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 14:37:56 +0000 Subject: Change in libosmocore[master]: osmo_timer_pending: Make arg const References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23978 ) Change subject: osmo_timer_pending: Make arg const ...................................................................... osmo_timer_pending: Make arg const Change-Id: I250c25c3ac61ac364335f81d8ba50cb32fd6976e --- M include/osmocom/core/timer.h M src/timer.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/78/23978/1 diff --git a/include/osmocom/core/timer.h b/include/osmocom/core/timer.h index 6ffc3b1..61d20e2 100644 --- a/include/osmocom/core/timer.h +++ b/include/osmocom/core/timer.h @@ -75,7 +75,7 @@ void osmo_timer_del(struct osmo_timer_list *timer); -int osmo_timer_pending(struct osmo_timer_list *timer); +int osmo_timer_pending(const struct osmo_timer_list *timer); int osmo_timer_remaining(const struct osmo_timer_list *timer, const struct timeval *now, diff --git a/src/timer.c b/src/timer.c index bcd9f5b..ed5a610 100644 --- a/src/timer.c +++ b/src/timer.c @@ -135,7 +135,7 @@ * This function can be used to determine whether a given timer * has alredy expired (returns 0) or is still pending (returns 1) */ -int osmo_timer_pending(struct osmo_timer_list *timer) +int osmo_timer_pending(const struct osmo_timer_list *timer) { return timer->active; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I250c25c3ac61ac364335f81d8ba50cb32fd6976e Gerrit-Change-Number: 23978 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 Apr 29 16:41:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 16:41:13 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req to work at all References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23979 ) Change subject: Fix ipa_ccm_make_id_resp_from_req to work at all ...................................................................... Fix ipa_ccm_make_id_resp_from_req to work at all The parser was so horribly broken, it could not ever have possibly worked. Change-Id: Ibed0ff7f8d36504ef783f2653c9982d4e25e874f --- M src/gsm/ipa.c 1 file changed, 8 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/79/23979/1 diff --git a/src/gsm/ipa.c b/src/gsm/ipa.c index fdc0bc6..7379d06 100644 --- a/src/gsm/ipa.c +++ b/src/gsm/ipa.c @@ -412,10 +412,14 @@ /* build a array of the IEIs */ while (len >= 2) { uint8_t t_len, t_tag; - len -= 2; + len -= 2; /* subtract the length of the two bytes read below */ t_len = *cur++; t_tag = *cur++; + /* as the 'tag' is included in the length of t_len, this cannot happen */ + if (t_len == 0) + break; + if (t_len > len + 1) { LOGP(DLINP, LOGL_ERROR, "IPA CCM tag 0x%02x does not fit\n", t_tag); break; @@ -423,13 +427,14 @@ ies[num_ies++] = t_tag; - cur += t_len; + /* we need to subtract one from t_len to account for the tag */ + cur += t_len-1; /* prevent any unsigned integer underflow due to somebody sending us * messages with wrong length values */ if (len <= t_len) len = 0; else - len -= t_len; + len -= t_len-1; } return ipa_ccm_make_id_resp(dev, ies, num_ies); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibed0ff7f8d36504ef783f2653c9982d4e25e874f Gerrit-Change-Number: 23979 Gerrit-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 Apr 29 16:41:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 16:41:14 +0000 Subject: Change in libosmocore[master]: ipa_ccm_make_id_resp: Make it work at all References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23980 ) Change subject: ipa_ccm_make_id_resp: Make it work at all ...................................................................... ipa_ccm_make_id_resp: Make it work at all This could never possibly have worked. When iterating over the different IEs to encode, we must of course use the tag of the current iterator item, and not the hard-coded value of the second tag in the list. Change-Id: I148799c5bdb95f70118691c1150330ebac4fdf21 --- M src/gsm/ipa.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/80/23980/1 diff --git a/src/gsm/ipa.c b/src/gsm/ipa.c index 7379d06..8fc6eb7 100644 --- a/src/gsm/ipa.c +++ b/src/gsm/ipa.c @@ -388,7 +388,7 @@ tag = msgb_put(msg, 3 + strlen(str) + 1); tag[0] = 0x00; tag[1] = 1 + strlen(str) + 1; - tag[2] = ies_req[1]; + tag[2] = ies_req[i]; memcpy(tag + 3, str, strlen(str) + 1); } ipa_prepend_header(msg, IPAC_PROTO_IPACCESS); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I148799c5bdb95f70118691c1150330ebac4fdf21 Gerrit-Change-Number: 23980 Gerrit-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 Apr 29 17:26:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 17:26:24 +0000 Subject: Change in libosmocore[master]: ipa_ccm_make_id_resp: Make it work at all In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23980 ) Change subject: ipa_ccm_make_id_resp: Make it work at all ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I148799c5bdb95f70118691c1150330ebac4fdf21 Gerrit-Change-Number: 23980 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:26: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 Apr 29 17:32:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:32:35 +0000 Subject: Change in libosmo-sccp[master]: xua_asp_fsm: Fix IPA client role References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 ) Change subject: xua_asp_fsm: Fix IPA client role ...................................................................... xua_asp_fsm: Fix IPA client role The IPA server worked as expected, but the IPA client has some clear logic bug that prevented it from working. It shows that we never really use any of that IPA/SCCPlite stuff after years in spec-compliant SIGTRAN land. A client now first waits for the IPA_REQ, sends its IPA_RESP, then waits for the ACK, ... Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92 --- M src/xua_asp_fsm.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/81/23981/1 diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c index ec85d21..8bff976 100644 --- a/src/xua_asp_fsm.c +++ b/src/xua_asp_fsm.c @@ -867,7 +867,7 @@ } } else { /* Client: We simply wait for an ID GET */ - osmo_fsm_inst_state_chg(fi, IPA_ASP_S_WAIT_ID_ACK, 10, T_WAIT_ID_ACK); + osmo_fsm_inst_state_chg(fi, IPA_ASP_S_WAIT_ID_GET, 10, T_WAIT_ID_ACK); } break; } @@ -1081,7 +1081,7 @@ [IPA_ASP_S_DOWN] = { .in_event_mask = S(XUA_ASP_E_M_ASP_UP_REQ) | S(XUA_ASP_E_SCTP_EST_IND), - .out_state_mask = S(IPA_ASP_S_WAIT_ID_ACK) | + .out_state_mask = S(IPA_ASP_S_WAIT_ID_GET) | S(IPA_ASP_S_WAIT_ID_RESP), .name = "ASP_DOWN", .action = ipa_asp_fsm_down, -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92 Gerrit-Change-Number: 23981 Gerrit-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 Apr 29 17:32:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:32:35 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... osmo_ss7: Truncate route 'mask' to point code bit length Otherwise we run into the problem that a route with mask 0xffffff differs from one with a mask of 0x3fff despite having only 14 bit point code length and them being logically equal. Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Related: SYS#5422 --- M src/osmo_ss7.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/82/23982/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 98dfc0c..443dc39 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -775,6 +775,10 @@ struct osmo_ss7_linkset *lset; struct osmo_ss7_as *as = NULL; + /* truncate mask to maximum. Let's avoid callers specifying arbitrary large + * masks to ensure we don't fail duplicate detection with longer mask lengths */ + mask &= (1 << osmo_ss7_pc_width(&rtbl->inst->cfg.pc_fmt))-1; + OSMO_ASSERT(ss7_initialized); lset = osmo_ss7_linkset_find_by_name(rtbl->inst, linkset_name); if (!lset) { -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 Gerrit-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 Apr 29 17:36:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 17:36:14 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req to work at all In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23979 ) Change subject: Fix ipa_ccm_make_id_resp_from_req to work at all ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/23979/1/src/gsm/ipa.c File src/gsm/ipa.c: https://gerrit.osmocom.org/c/libosmocore/+/23979/1/src/gsm/ipa.c at 415 PS1, Line 415: len -= 2; /* subtract the length of the two bytes read below */ space instead of tab between line and comment? https://gerrit.osmocom.org/c/libosmocore/+/23979/1/src/gsm/ipa.c at 431 PS1, Line 431: cur += t_len-1; spacing https://gerrit.osmocom.org/c/libosmocore/+/23979/1/src/gsm/ipa.c at 437 PS1, Line 437: len -= t_len-1; spacing -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibed0ff7f8d36504ef783f2653c9982d4e25e874f Gerrit-Change-Number: 23979 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:36: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 Apr 29 17:38:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 17:38:10 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23982/1/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23982/1/src/osmo_ss7.c at 780 PS1, Line 780: mask &= (1 << osmo_ss7_pc_width(&rtbl->inst->cfg.pc_fmt))-1; What about having a function/macro doing this, and let the callers use it, and here simply fail (or simply warn) if the mask is detected too large? -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:38: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 Apr 29 17:38:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 17:38:56 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... Patch Set 1: I think a warn should be placed and APIs provided for the users in order to update them so they pass proper stuff, even if keeping this commit as you wrote it. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:38: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 Thu Apr 29 17:39:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:39:54 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length 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/libosmo-sccp/+/23982 to look at the new patch set (#2). Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... osmo_ss7: Truncate route 'mask' to point code bit length Otherwise we run into the problem that a route with mask 0xffffff differs from one with a mask of 0x3fff despite having only 14 bit point code length and them being logically equal. Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Related: SYS#5422 --- M include/osmocom/sigtran/osmo_ss7.h M src/osmo_ss7.c 2 files changed, 21 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/82/23982/2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 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 Thu Apr 29 17:46:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 17:46:07 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23982/2/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23982/2/src/osmo_ss7.c at 199 PS2, Line 199: /* truncate pc or mask mask to maximum permitted length. This solves s/mask mask/pc mask/ -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:46:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 17:46:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:46:46 +0000 Subject: Change in libosmo-sccp[master]: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 ) Change subject: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier ...................................................................... xua_as_fsm: Only delete a route for an IPA AS if we created one earlier The current code would potentially delete a route that was statically present in the configuration in the following situation: * route exists in config * identical route is attempted to be added at AS-ACTIVE time, but fails * route is unconditionally deleted at AS-DOWN time * user now does 'write file' and has lost a route Let's make sure we only delete the route if we added it previously. Change-Id: I9ad5f7ebe0790e6c186b8ea1b12f204860a00cd2 Related: SYS#5422 --- M src/xua_as_fsm.c 1 file changed, 10 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/83/23983/1 diff --git a/src/xua_as_fsm.c b/src/xua_as_fsm.c index f66ba88..c198f86 100644 --- a/src/xua_as_fsm.c +++ b/src/xua_as_fsm.c @@ -200,6 +200,7 @@ struct osmo_timer_list t_r; struct llist_head queued_msgs; } recovery; + bool ipa_route_created; }; /* is the given AS one with a single ASP of IPA type? */ @@ -227,9 +228,13 @@ struct osmo_ss7_as *as = xafp->as; struct osmo_ss7_instance *inst = as->inst; + if (osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff)) + return; + /* As opposed to M3UA, there is no RKM and we have to implicitly * automatically add a route once an IPA connection has come up */ - osmo_ss7_route_create(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff, as->cfg.name); + if (osmo_ss7_route_create(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff, as->cfg.name)) + xafp->ipa_route_created = true; } static void ipa_del_route(struct osmo_fsm_inst *fi) @@ -239,6 +244,10 @@ struct osmo_ss7_instance *inst = as->inst; struct osmo_ss7_route *rt; + /* don't delete a route if we added none */ + if (!xafp->ipa_route_created) + return; + /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */ rt = osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff); /* no route found, bail out */ -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9ad5f7ebe0790e6c186b8ea1b12f204860a00cd2 Gerrit-Change-Number: 23983 Gerrit-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 Apr 29 17:48:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 17:48:26 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23982/2/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23982/2/src/osmo_ss7.c at 795 PS2, Line 795: mask = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, mask); And here warn before doing this, in order to get callers fixed? if (osmo_ss7_pc_normalize(mask) != mask) { LOG(WARN "FIX YOUR CODE") mask = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, mask); } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:48: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 Thu Apr 29 17:51:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:51:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2_frgre: Ensure DSCP is sin premitted value range In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23973 ) Change subject: gprs_ns2_frgre: Ensure DSCP is sin premitted value range ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9bb9c6bdfe81fa6f02b11a02550ac9a54d3bfeaf Gerrit-Change-Number: 23973 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:51: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 Apr 29 17:51:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:51:17 +0000 Subject: Change in libosmocore[master]: ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23974 ) Change subject: ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2a24c0cbb17fad8ed84297267dcd63730efbc014 Gerrit-Change-Number: 23974 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:51:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 17:51:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:51:19 +0000 Subject: Change in libosmocore[master]: gprs_ns: Fix another DSCP vs. TOS mistake in old NS code In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23975 ) Change subject: gprs_ns: Fix another DSCP vs. TOS mistake in old NS code ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6b9848fd0752d99d3df5346313618d5847d64fb8 Gerrit-Change-Number: 23975 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:51:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 17:51:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:51:23 +0000 Subject: Change in libosmocore[master]: gprs_ns2_frgre: Ensure DSCP is sin premitted value range In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23973 ) Change subject: gprs_ns2_frgre: Ensure DSCP is sin premitted value range ...................................................................... gprs_ns2_frgre: Ensure DSCP is sin premitted value range gors_ns2_udp has this check, but gprs_ns2_frgre was missing it. Change-Id: I9bb9c6bdfe81fa6f02b11a02550ac9a54d3bfeaf --- M src/gb/gprs_ns2_frgre.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 76c0b92..f888af2 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -554,6 +554,9 @@ if (local->u.sa.sa_family != AF_INET && local->u.sa.sa_family != AF_INET6) return -EINVAL; + if (dscp < 0 || dscp > 63) + return -EINVAL; + bind = gprs_ns2_bind_by_name(nsi, name); if (bind) { if (result) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9bb9c6bdfe81fa6f02b11a02550ac9a54d3bfeaf Gerrit-Change-Number: 23973 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 17:51:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:51:24 +0000 Subject: Change in libosmocore[master]: ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23974 ) Change subject: ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() ...................................................................... ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() The latter is much more compact than the former. Change-Id: I2a24c0cbb17fad8ed84297267dcd63730efbc014 --- M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_udp.c 2 files changed, 4 insertions(+), 21 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_frgre.c b/src/gb/gprs_ns2_frgre.c index f888af2..9391343 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -589,25 +589,16 @@ priv->fd.data = bind; priv->addr = *local; INIT_LLIST_HEAD(&bind->nsvc); + priv->dscp = dscp; rc = osmo_sock_init_osa_ofd(&priv->fd, SOCK_RAW, IPPROTO_GRE, local, NULL, - OSMO_SOCK_F_BIND); + OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(priv->dscp)); if (rc < 0) { gprs_ns2_free_bind(bind); return rc; } - if (dscp > 0) { - priv->dscp = dscp; - - rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, - &dscp, sizeof(dscp)); - if (rc < 0) - LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", - dscp, rc, errno); - } - if (result) *result = bind; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 22d371f..0de207c 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -352,24 +352,16 @@ priv->fd.cb = nsip_fd_cb; priv->fd.data = bind; priv->addr = *local; + priv->dscp = dscp; rc = osmo_sock_init_osa_ofd(&priv->fd, SOCK_DGRAM, IPPROTO_UDP, local, NULL, - OSMO_SOCK_F_BIND); + OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(priv->dscp)); if (rc < 0) { gprs_ns2_free_bind(bind); return rc; } - if (dscp > 0) { - priv->dscp = dscp; - - rc = osmo_sock_set_dscp(priv->fd.fd, dscp); - if (rc < 0) - LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", - dscp, rc, errno); - } - /* IPv4: max fragmented payload can be (13 bit) * 8 byte => 65535. * IPv6: max payload can be 65535 (RFC 2460). * UDP header = 8 byte */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2a24c0cbb17fad8ed84297267dcd63730efbc014 Gerrit-Change-Number: 23974 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 17:51:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:51:25 +0000 Subject: Change in libosmocore[master]: gprs_ns: Fix another DSCP vs. TOS mistake in old NS code In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23975 ) Change subject: gprs_ns: Fix another DSCP vs. TOS mistake in old NS code ...................................................................... gprs_ns: Fix another DSCP vs. TOS mistake in old NS code DSCP is a 6-bit value stored in the upper 8 bit of what was used to be known as TOS. Let's use the newly introduced OSMO_SOCK_F_DSCP() to prevent having to worry about this in higher level code. Change-Id: I6b9848fd0752d99d3df5346313618d5847d64fb8 Related: OS#5136 --- M src/gb/gprs_ns.c 1 file changed, 4 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index a6ef6d4..f486333 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -2068,7 +2068,8 @@ osmo_sock_init2_ofd(&nsi->nsip.fd, AF_INET, SOCK_DGRAM, IPPROTO_UDP, inet_ntoa(in), nsi->nsip.local_port, remote_str, - nsi->nsip.remote_port, OSMO_SOCK_F_BIND | OSMO_SOCK_F_CONNECT); + nsi->nsip.remote_port, OSMO_SOCK_F_BIND | OSMO_SOCK_F_CONNECT | + OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(nsi->nsip.dscp)); LOGP(DNS, LOGL_NOTICE, "Listening for nsip packets from %s:%u on %s:%u\n", @@ -2076,7 +2077,8 @@ } else { /* Accept UDP packets from any source IP/Port */ ret = osmo_sock_init_ofd(&nsi->nsip.fd, AF_INET, SOCK_DGRAM, - IPPROTO_UDP, inet_ntoa(in), nsi->nsip.local_port, OSMO_SOCK_F_BIND); + IPPROTO_UDP, inet_ntoa(in), nsi->nsip.local_port, + OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(nsi->nsip.dscp)); LOGP(DNS, LOGL_NOTICE, "Listening for nsip packets on %s:%u\n", inet_ntoa(in), nsi->nsip.local_port); } @@ -2087,13 +2089,6 @@ return ret; } - ret = setsockopt(nsi->nsip.fd.fd, IPPROTO_IP, IP_TOS, - &nsi->nsip.dscp, sizeof(nsi->nsip.dscp)); - if (ret < 0) - LOGP(DNS, LOGL_ERROR, - "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", - nsi->nsip.dscp, ret, errno); - LOGP(DNS, LOGL_NOTICE, "NS UDP socket at %s:%d\n", inet_ntoa(in), nsi->nsip.local_port); return ret; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6b9848fd0752d99d3df5346313618d5847d64fb8 Gerrit-Change-Number: 23975 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 17:54:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:54:02 +0000 Subject: Change in libosmocore[master]: ns2: Allow setting the socket priority for a UDP bind In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23976 ) Change subject: ns2: Allow setting the socket priority for a UDP bind ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23976/1/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/23976/1/src/gb/gprs_ns2_udp.c at 542 PS1, Line 542: rc = osmo_sock_set_priority(priv->fd.fd, priority); > could it be that the fd is still -1 because the socket was not yet created? well, then the caller is asking us to do something to a socket that doesn't exist yet. There's little we can do about that. Not sure what you are suggesting? For sure the setsockopt call will fail and we will print an error message. What would you expect? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb Gerrit-Change-Number: 23976 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:54:02 +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 Apr 29 17:55:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:55:53 +0000 Subject: Change in libosmocore[master]: ns2: Allow setting the socket priority for a UDP 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/+/23976 to look at the new patch set (#2). Change subject: ns2: Allow setting the socket priority for a UDP bind ...................................................................... ns2: Allow setting the socket priority for a UDP bind Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map M tests/gb/gprs_ns2_vty.vty 5 files changed, 57 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/76/23976/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb Gerrit-Change-Number: 23976 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 Thu Apr 29 17:59:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 17:59:26 +0000 Subject: Change in libosmocore[master]: ns2: Allow setting the socket priority for a UDP bind In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23976 ) Change subject: ns2: Allow setting the socket priority for a UDP bind ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23976/1/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/23976/1/src/gb/gprs_ns2_udp.c at 542 PS1, Line 542: rc = osmo_sock_set_priority(priv->fd.fd, priority); > well, then the caller is asking us to do something to a socket that doesn't exist yet. [?] I meant returning before calling setsockopt, since it's clear this function shouldn't call it if fd is -1 So throw a descriptive error and return an error, rather than getting a cryptical setsockopt error. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb Gerrit-Change-Number: 23976 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 17:59: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 Thu Apr 29 17:59:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 17:59:59 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req to work at all 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/+/23979 to look at the new patch set (#3). Change subject: Fix ipa_ccm_make_id_resp_from_req to work at all ...................................................................... Fix ipa_ccm_make_id_resp_from_req to work at all The parser was so horribly broken, it could not ever have possibly worked. Change-Id: Ibed0ff7f8d36504ef783f2653c9982d4e25e874f --- M src/gsm/ipa.c 1 file changed, 8 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/79/23979/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibed0ff7f8d36504ef783f2653c9982d4e25e874f Gerrit-Change-Number: 23979 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 gerrit-no-reply at lists.osmocom.org Thu Apr 29 18:02:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 18:02:02 +0000 Subject: Change in libosmocore[master]: ns2: Allow setting the socket priority for a UDP bind In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23976 ) Change subject: ns2: Allow setting the socket priority for a UDP bind ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23976/1/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/23976/1/src/gb/gprs_ns2_udp.c at 542 PS1, Line 542: rc = osmo_sock_set_priority(priv->fd.fd, priority); > I meant returning before calling setsockopt, since it's clear this function shouldn't call it if fd [?] I don't think we generally everywhere check things that are safe (like passing a negative integer to a syscall. But if you think it's worth it, it should be added as a separate patch, so we can touch all the related functions at least in this file, which at the very least includes the set_dscp() above. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb Gerrit-Change-Number: 23976 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:02:02 +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 Thu Apr 29 18:02:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 18:02:26 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req to work at all In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23979 ) Change subject: Fix ipa_ccm_make_id_resp_from_req to work at all ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/23979/1/src/gsm/ipa.c File src/gsm/ipa.c: https://gerrit.osmocom.org/c/libosmocore/+/23979/1/src/gsm/ipa.c at 415 PS1, Line 415: len -= 2; /* subtract the length of the two bytes read below */ > space instead of tab between line and comment? Done https://gerrit.osmocom.org/c/libosmocore/+/23979/1/src/gsm/ipa.c at 431 PS1, Line 431: cur += t_len-1; > spacing Done https://gerrit.osmocom.org/c/libosmocore/+/23979/1/src/gsm/ipa.c at 437 PS1, Line 437: len -= t_len-1; > spacing Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibed0ff7f8d36504ef783f2653c9982d4e25e874f Gerrit-Change-Number: 23979 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:02:26 +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 Apr 29 18:03:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 18:03:21 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req to work at all In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23979 ) Change subject: Fix ipa_ccm_make_id_resp_from_req to work at all ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibed0ff7f8d36504ef783f2653c9982d4e25e874f Gerrit-Change-Number: 23979 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:03: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 Apr 29 18:05:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 18:05:06 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/libosmo-sccp/+/23982/2/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23982/2/src/osmo_ss7.c at 199 PS2, Line 199: /* truncate pc or mask mask to maximum permitted length. This solves > s/mask mask/pc mask/ Ack https://gerrit.osmocom.org/c/libosmo-sccp/+/23982/2/src/osmo_ss7.c at 795 PS2, Line 795: mask = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, mask); > And here warn before doing this, in order to get callers fixed? [?] I don't think it's illegal. You can always specify more higher bits in a kind of 'netmask' use case and expect it to work. I think it's the routing system here that has the job of properly normalizing those. Particularly in SS7 where length of point codes is configurable, you would otherwise have to add a lot of code at every caller instead of simply passing 0xffffff in a function argument for the mask as we currently do. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:05:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 18:05:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 18:05:32 +0000 Subject: Change in libosmo-sccp[master]: xua_asp_fsm: Fix IPA client role In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 ) Change subject: xua_asp_fsm: Fix IPA client role ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23981/1/src/xua_asp_fsm.c File src/xua_asp_fsm.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23981/1/src/xua_asp_fsm.c at 870 PS1, Line 870: osmo_fsm_inst_state_chg(fi, IPA_ASP_S_WAIT_ID_GET, 10, T_WAIT_ID_ACK); T_WAIT_ID_ACK here seems wrong then? -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92 Gerrit-Change-Number: 23981 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:05:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 18:06:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 18:06:16 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length 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/libosmo-sccp/+/23982 to look at the new patch set (#3). Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... osmo_ss7: Truncate route 'mask' to point code bit length Otherwise we run into the problem that a route with mask 0xffffff differs from one with a mask of 0x3fff despite having only 14 bit point code length and them being logically equal. Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Related: SYS#5422 --- M include/osmocom/sigtran/osmo_ss7.h M src/osmo_ss7.c 2 files changed, 21 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/82/23982/3 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 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 Thu Apr 29 18:06:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 18:06:23 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... Patch Set 2: Code-Review+1 ack then, +1 when you fix the typo -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:06: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 Apr 29 18:07:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 18:07:44 +0000 Subject: Change in libosmo-sccp[master]: xua_asp_fsm: Fix IPA client role 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/libosmo-sccp/+/23981 to look at the new patch set (#2). Change subject: xua_asp_fsm: Fix IPA client role ...................................................................... xua_asp_fsm: Fix IPA client role The IPA server worked as expected, but the IPA client has some clear logic bug that prevented it from working. It shows that we never really use any of that IPA/SCCPlite stuff after years in spec-compliant SIGTRAN land. A client now first waits for the IPA_REQ, sends its IPA_RESP, then waits for the ACK, ... Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92 --- M src/xua_asp_fsm.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/81/23981/2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92 Gerrit-Change-Number: 23981 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 Thu Apr 29 18:07:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 18:07:58 +0000 Subject: Change in libosmo-sccp[master]: xua_asp_fsm: Fix IPA client role In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 ) Change subject: xua_asp_fsm: Fix IPA client role ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23981/1/src/xua_asp_fsm.c File src/xua_asp_fsm.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23981/1/src/xua_asp_fsm.c at 870 PS1, Line 870: osmo_fsm_inst_state_chg(fi, IPA_ASP_S_WAIT_ID_GET, 10, T_WAIT_ID_ACK); > T_WAIT_ID_ACK here seems wrong then? Done -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92 Gerrit-Change-Number: 23981 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:07: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 Thu Apr 29 18:08:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 18:08:21 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:08: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 Apr 29 18:08:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 18:08:22 +0000 Subject: Change in libosmo-sccp[master]: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 ) Change subject: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23983/2/src/xua_as_fsm.c File src/xua_as_fsm.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23983/2/src/xua_as_fsm.c at 236 PS2, Line 236: if (osmo_ss7_route_create(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff, as->cfg.name)) Did you think about storing the pointer of the route instead of a bool? then you don't need to look it up later in ipa_del_route below. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9ad5f7ebe0790e6c186b8ea1b12f204860a00cd2 Gerrit-Change-Number: 23983 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:08: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 Thu Apr 29 18:09:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 18:09:05 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:09:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 18:10:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 18:10:23 +0000 Subject: Change in libosmo-sccp[master]: xua_asp_fsm: Fix IPA client role In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 ) Change subject: xua_asp_fsm: Fix IPA client role ...................................................................... Patch Set 2: Code-Review+1 We had TTCN3 tests verifying basic ipa stuff in osmo-stp right? it's a bit surprising seeing all these issues, but perhaps they were not hit by tests? -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92 Gerrit-Change-Number: 23981 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:10: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 Apr 29 18:13:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 18:13:20 +0000 Subject: Change in libosmo-sccp[master]: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 ) Change subject: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/23983/2/src/xua_as_fsm.c File src/xua_as_fsm.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/23983/2/src/xua_as_fsm.c at 236 PS2, Line 236: if (osmo_ss7_route_create(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff, as->cfg.name)) > Did you think about storing the pointer of the route instead of a bool? then you don't need to look [?] yes, but then we'd need to introduce refcounting on routes, as the user might delete it in the many hours/days/... between the route getting auto-added and getting removed again at disconnect of the last ASP... So I think this is as good as we can do for now (minus a logic bug that I'm about to fix in the next versions). -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9ad5f7ebe0790e6c186b8ea1b12f204860a00cd2 Gerrit-Change-Number: 23983 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:13:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 18:14:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 18:14:35 +0000 Subject: Change in libosmo-sccp[master]: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 ) Change subject: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9ad5f7ebe0790e6c186b8ea1b12f204860a00cd2 Gerrit-Change-Number: 23983 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 18:14: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 Apr 29 19:12:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:12:40 +0000 Subject: Change in libosmo-sccp[master]: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier 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/libosmo-sccp/+/23983 to look at the new patch set (#4). Change subject: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier ...................................................................... xua_as_fsm: Only delete a route for an IPA AS if we created one earlier The current code would potentially delete a route that was statically present in the configuration in the following situation: * route exists in config * identical route is attempted to be added at AS-ACTIVE time, but fails * route is unconditionally deleted at AS-DOWN time * user now does 'write file' and has lost a route Let's make sure we only delete the route if we added it previously. Change-Id: I9ad5f7ebe0790e6c186b8ea1b12f204860a00cd2 Related: SYS#5422 --- M src/xua_as_fsm.c 1 file changed, 11 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/83/23983/4 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9ad5f7ebe0790e6c186b8ea1b12f204860a00cd2 Gerrit-Change-Number: 23983 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 Thu Apr 29 19:12:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:12:47 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:12: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 Apr 29 19:12:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:12:55 +0000 Subject: Change in libosmo-sccp[master]: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 ) Change subject: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9ad5f7ebe0790e6c186b8ea1b12f204860a00cd2 Gerrit-Change-Number: 23983 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:12:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:14:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:14:13 +0000 Subject: Change in libosmo-sccp[master]: xua_asp_fsm: Fix IPA client role In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 ) Change subject: xua_asp_fsm: Fix IPA client role ...................................................................... Patch Set 3: Code-Review+2 > Patch Set 2: Code-Review+1 > > We had TTCN3 tests verifying basic ipa stuff in osmo-stp right? it's a bit surprising seeing all these issues, but perhaps they were not hit by tests? the tests all operate osmo-stp as server side for IPA/sccplite, and not for the client. Furthermoe, they cover mainly the translation from IPA and M3UA and vice-versa, and not so much the actual IPA AS/ASP behavior. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92 Gerrit-Change-Number: 23981 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:14: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 Apr 29 19:14:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:14:38 +0000 Subject: Change in libosmocore[master]: ns2: Allow setting the socket priority for a UDP bind In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23976 ) Change subject: ns2: Allow setting the socket priority for a UDP bind ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb Gerrit-Change-Number: 23976 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:14: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 Apr 29 19:14:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:14:40 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23977 ) Change subject: Fix ipa_ccm_make_id_resp_from_req ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I344975d0bda565ff196a1c0c69305cd349b98a19 Gerrit-Change-Number: 23977 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:14: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 Apr 29 19:14:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:14:47 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req to work at all In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23979 ) Change subject: Fix ipa_ccm_make_id_resp_from_req to work at all ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibed0ff7f8d36504ef783f2653c9982d4e25e874f Gerrit-Change-Number: 23979 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:14: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 Apr 29 19:14:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:14:51 +0000 Subject: Change in libosmocore[master]: ipa_ccm_make_id_resp: Make it work at all In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23980 ) Change subject: ipa_ccm_make_id_resp: Make it work at all ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I148799c5bdb95f70118691c1150330ebac4fdf21 Gerrit-Change-Number: 23980 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:14: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 Apr 29 19:14:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:14:53 +0000 Subject: Change in libosmocore[master]: ns2: Allow setting the socket priority for a UDP bind In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23976 ) Change subject: ns2: Allow setting the socket priority for a UDP bind ...................................................................... ns2: Allow setting the socket priority for a UDP bind Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map M tests/gb/gprs_ns2_vty.vty 5 files changed, 57 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index be59a67..a9c144c 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -246,6 +246,7 @@ const struct osmo_sockaddr *gprs_ns2_ip_bind_sockaddr(struct gprs_ns2_vc_bind *bind); int gprs_ns2_is_ip_bind(struct gprs_ns2_vc_bind *bind); int gprs_ns2_ip_bind_set_dscp(struct gprs_ns2_vc_bind *bind, int dscp); +int gprs_ns2_ip_bind_set_priority(struct gprs_ns2_vc_bind *bind, uint8_t priority); struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_bind( struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *saddr); diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 0de207c..7980df5 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -49,6 +49,7 @@ struct osmo_fd fd; struct osmo_sockaddr addr; int dscp; + uint8_t priority; }; struct priv_vc { @@ -103,7 +104,8 @@ nsvcs++; } - vty_out(vty, "UDP bind: %s:%d DSCP: %d%s", sockstr.ip, sockstr.port, priv->dscp, VTY_NEWLINE); + vty_out(vty, "UDP bind: %s:%d DSCP: %d Priority: %u%s", sockstr.ip, sockstr.port, + priv->dscp, priv->priority, VTY_NEWLINE); vty_out(vty, " IP-SNS signalling weight: %u data weight: %u%s", bind->sns_sig_weight, bind->sns_data_weight, VTY_NEWLINE); vty_out(vty, " %lu NS-VC:%s", nsvcs, VTY_NEWLINE); @@ -525,6 +527,29 @@ return rc; } +/*! Set the socket priority of the given bind. */ +int gprs_ns2_ip_bind_set_priority(struct gprs_ns2_vc_bind *bind, uint8_t priority) +{ + struct priv_bind *priv; + int rc = 0; + + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + priv = bind->priv; + + if (priority != priv->priority) { + priv->priority = priority; + + rc = osmo_sock_set_priority(priv->fd.fd, priority); + if (rc < 0) { + LOGBIND(bind, LOGL_ERROR, "Failed to set the priority to %u with ret(%d) errno(%d)\n", + priority, rc, errno); + } + } + + return rc; +} + + /*! Count UDP binds compatible with remote */ int ns2_ip_count_bind(struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote) { diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index c390423..0fd7c17 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -67,6 +67,7 @@ const char *name; enum gprs_ns2_ll ll; int dscp; + uint8_t priority; bool accept_ipaccess; bool accept_sns; uint8_t ip_sns_sig_weight; @@ -468,6 +469,8 @@ vty_out(vty, " accept-dynamic-ip-sns%s", VTY_NEWLINE); if (vbind->dscp) vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); + if (vbind->priority) + vty_out(vty, " priority %u%s", vbind->priority, VTY_NEWLINE); vty_out(vty, " ip-sns signalling-weight %u data-weight %u%s", vbind->ip_sns_sig_weight, vbind->ip_sns_data_weight, VTY_NEWLINE); break; @@ -722,6 +725,28 @@ return CMD_SUCCESS; } +DEFUN(cfg_ns_bind_priority, cfg_ns_bind_priority_cmd, + "priority <0-255>", + "Set socket priority on the UDP socket\n" "Priority Value (>6 requires CAP_NET_ADMIN)\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint8_t prio = 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->priority = prio; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_priority(bind, prio); + + 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" @@ -2235,6 +2260,7 @@ 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_priority_cmd); install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ip_sns_weight_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); diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index ed9b822..db638f9 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -162,6 +162,7 @@ gprs_ns2_ip_bind; gprs_ns2_ip_bind_by_sockaddr; gprs_ns2_ip_bind_set_dscp; +gprs_ns2_ip_bind_set_priority; gprs_ns2_ip_bind_set_sns_weight; gprs_ns2_ip_bind_sockaddr; gprs_ns2_ip_connect; diff --git a/tests/gb/gprs_ns2_vty.vty b/tests/gb/gprs_ns2_vty.vty index 78c7e78..891bde5 100644 --- a/tests/gb/gprs_ns2_vty.vty +++ b/tests/gb/gprs_ns2_vty.vty @@ -29,7 +29,7 @@ OsmoNSdummy(config-ns-bind)# listen 127.0.0.14 42999 OsmoNSdummy(config-ns-bind)# end OsmoNSdummy# show ns -UDP bind: 127.0.0.14:42999 DSCP: 0 +UDP bind: 127.0.0.14:42999 DSCP: 0 Priority: 0 IP-SNS signalling weight: 1 data weight: 1 0 NS-VC: OsmoNSdummy# configure terminal @@ -41,7 +41,7 @@ NSEI 01234: UDP, DEAD 1 NS-VC: NSVCI none: RECOVERING PERSIST data_weight=1 sig_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 -UDP bind: 127.0.0.14:42999 DSCP: 0 +UDP bind: 127.0.0.14:42999 DSCP: 0 Priority: 0 IP-SNS signalling weight: 1 data weight: 1 1 NS-VC: NSVCI none: RECOVERING PERSIST data_weight=1 sig_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 @@ -57,7 +57,7 @@ NSVCI none: RECOVERING PERSIST data_weight=0 sig_weight=0 udp)[127.0.0.14]:42999<>[127.0.0.17]:9496 NSVCI none: RECOVERING PERSIST data_weight=9 sig_weight=0 udp)[127.0.0.14]:42999<>[127.0.0.16]:9496 NSVCI none: RECOVERING PERSIST data_weight=1 sig_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 -UDP bind: 127.0.0.14:42999 DSCP: 0 +UDP bind: 127.0.0.14:42999 DSCP: 0 Priority: 0 IP-SNS signalling weight: 1 data weight: 1 3 NS-VC: NSVCI none: RECOVERING PERSIST data_weight=0 sig_weight=0 udp)[127.0.0.14]:42999<>[127.0.0.17]:9496 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifdfa086ce1c8d62b256abb3454b70cf53da9dcdb Gerrit-Change-Number: 23976 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Apr 29 19:14:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:14:54 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23977 ) Change subject: Fix ipa_ccm_make_id_resp_from_req ...................................................................... Fix ipa_ccm_make_id_resp_from_req In 2018, I4723361e1094b358310541a7dc4c5c921c778a15 introuced a check against an integer unterflow. However, the fheck got the logic wrong, with the result of breaking the function completely: It would always only detect the first tag within the IPA request and then take the branch that assumes an integer underflow. Change-Id: I344975d0bda565ff196a1c0c69305cd349b98a19 --- M src/gsm/ipa.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gsm/ipa.c b/src/gsm/ipa.c index 7a26ba4..fdc0bc6 100644 --- a/src/gsm/ipa.c +++ b/src/gsm/ipa.c @@ -427,9 +427,9 @@ /* prevent any unsigned integer underflow due to somebody sending us * messages with wrong length values */ if (len <= t_len) - len -= t_len; - else len = 0; + else + len -= t_len; } return ipa_ccm_make_id_resp(dev, ies, num_ies); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I344975d0bda565ff196a1c0c69305cd349b98a19 Gerrit-Change-Number: 23977 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Apr 29 19:14:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:14:55 +0000 Subject: Change in libosmocore[master]: Fix ipa_ccm_make_id_resp_from_req to work at all In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23979 ) Change subject: Fix ipa_ccm_make_id_resp_from_req to work at all ...................................................................... Fix ipa_ccm_make_id_resp_from_req to work at all The parser was so horribly broken, it could not ever have possibly worked. Change-Id: Ibed0ff7f8d36504ef783f2653c9982d4e25e874f --- M src/gsm/ipa.c 1 file changed, 8 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/src/gsm/ipa.c b/src/gsm/ipa.c index fdc0bc6..fc77d75 100644 --- a/src/gsm/ipa.c +++ b/src/gsm/ipa.c @@ -412,10 +412,14 @@ /* build a array of the IEIs */ while (len >= 2) { uint8_t t_len, t_tag; - len -= 2; + len -= 2; /* subtract the length of the two bytes read below */ t_len = *cur++; t_tag = *cur++; + /* as the 'tag' is included in the length of t_len, this cannot happen */ + if (t_len == 0) + break; + if (t_len > len + 1) { LOGP(DLINP, LOGL_ERROR, "IPA CCM tag 0x%02x does not fit\n", t_tag); break; @@ -423,13 +427,14 @@ ies[num_ies++] = t_tag; - cur += t_len; + /* we need to subtract one from t_len to account for the tag */ + cur += t_len - 1; /* prevent any unsigned integer underflow due to somebody sending us * messages with wrong length values */ if (len <= t_len) len = 0; else - len -= t_len; + len -= t_len - 1; } return ipa_ccm_make_id_resp(dev, ies, num_ies); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibed0ff7f8d36504ef783f2653c9982d4e25e874f Gerrit-Change-Number: 23979 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 Thu Apr 29 19:14:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:14:56 +0000 Subject: Change in libosmocore[master]: ipa_ccm_make_id_resp: Make it work at all In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23980 ) Change subject: ipa_ccm_make_id_resp: Make it work at all ...................................................................... ipa_ccm_make_id_resp: Make it work at all This could never possibly have worked. When iterating over the different IEs to encode, we must of course use the tag of the current iterator item, and not the hard-coded value of the second tag in the list. Change-Id: I148799c5bdb95f70118691c1150330ebac4fdf21 --- M src/gsm/ipa.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/gsm/ipa.c b/src/gsm/ipa.c index fc77d75..447e8e3 100644 --- a/src/gsm/ipa.c +++ b/src/gsm/ipa.c @@ -388,7 +388,7 @@ tag = msgb_put(msg, 3 + strlen(str) + 1); tag[0] = 0x00; tag[1] = 1 + strlen(str) + 1; - tag[2] = ies_req[1]; + tag[2] = ies_req[i]; memcpy(tag + 3, str, strlen(str) + 1); } ipa_prepend_header(msg, IPAC_PROTO_IPACCESS); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I148799c5bdb95f70118691c1150330ebac4fdf21 Gerrit-Change-Number: 23980 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 Thu Apr 29 19:15:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:15:05 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: Truncate route 'mask' to point code bit length In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 ) Change subject: osmo_ss7: Truncate route 'mask' to point code bit length ...................................................................... osmo_ss7: Truncate route 'mask' to point code bit length Otherwise we run into the problem that a route with mask 0xffffff differs from one with a mask of 0x3fff despite having only 14 bit point code length and them being logically equal. Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Related: SYS#5422 --- M include/osmocom/sigtran/osmo_ss7.h M src/osmo_ss7.c 2 files changed, 21 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/include/osmocom/sigtran/osmo_ss7.h b/include/osmocom/sigtran/osmo_ss7.h index b717d53..a278b59 100644 --- a/include/osmocom/sigtran/osmo_ss7.h +++ b/include/osmocom/sigtran/osmo_ss7.h @@ -114,6 +114,7 @@ struct osmo_sccp_instance *osmo_ss7_ensure_sccp(struct osmo_ss7_instance *inst); uint8_t osmo_ss7_pc_width(const struct osmo_ss7_pc_fmt *pc_fmt); +uint32_t osmo_ss7_pc_normalize(const struct osmo_ss7_pc_fmt *pc_fmt, uint32_t pc); /*********************************************************************** * MTP Users (Users of MTP, such as SCCP or ISUP) diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 98dfc0c..de072b4 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -196,6 +196,15 @@ return pc_fmt->component_len[0] + pc_fmt->component_len[1] + pc_fmt->component_len[2]; } +/* truncate pc or mask to maximum permitted length. This solves + * callers specifying arbitrary large masks which then evade duplicate + * detection with longer mask lengths */ +uint32_t osmo_ss7_pc_normalize(const struct osmo_ss7_pc_fmt *pc_fmt, uint32_t pc) +{ + uint32_t mask = (1 << osmo_ss7_pc_width(pc_fmt))-1; + return pc & mask; +} + /* get the number of bits we must shift the given component of a point * code in this ss7_instance */ static unsigned int get_pc_comp_shift(const struct osmo_ss7_pc_fmt *pc_fmt, @@ -702,6 +711,9 @@ struct osmo_ss7_route *rt; OSMO_ASSERT(ss7_initialized); + + dpc = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, dpc); + /* we assume the routes are sorted by mask length, i.e. more * specific routes first, and less specific routes with shorter * mask later */ @@ -720,6 +732,9 @@ struct osmo_ss7_route *rt; OSMO_ASSERT(ss7_initialized); + mask = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, mask); + dpc = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, dpc); + /* we assume the routes are sorted by mask length, i.e. more * specific routes first, and less specific routes with shorter * mask later */ @@ -775,6 +790,11 @@ struct osmo_ss7_linkset *lset; struct osmo_ss7_as *as = NULL; + /* truncate mask to maximum. Let's avoid callers specifying arbitrary large + * masks to ensure we don't fail duplicate detection with longer mask lengths */ + mask = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, mask); + pc = osmo_ss7_pc_normalize(&rtbl->inst->cfg.pc_fmt, pc); + OSMO_ASSERT(ss7_initialized); lset = osmo_ss7_linkset_find_by_name(rtbl->inst, linkset_name); if (!lset) { -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5d5c828de45724d93a0461bb0dd7858fd8378acd Gerrit-Change-Number: 23982 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 Thu Apr 29 19:15:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:15:06 +0000 Subject: Change in libosmo-sccp[master]: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 ) Change subject: xua_as_fsm: Only delete a route for an IPA AS if we created one earlier ...................................................................... xua_as_fsm: Only delete a route for an IPA AS if we created one earlier The current code would potentially delete a route that was statically present in the configuration in the following situation: * route exists in config * identical route is attempted to be added at AS-ACTIVE time, but fails * route is unconditionally deleted at AS-DOWN time * user now does 'write file' and has lost a route Let's make sure we only delete the route if we added it previously. Change-Id: I9ad5f7ebe0790e6c186b8ea1b12f204860a00cd2 Related: SYS#5422 --- M src/xua_as_fsm.c 1 file changed, 11 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/xua_as_fsm.c b/src/xua_as_fsm.c index f66ba88..2f52762 100644 --- a/src/xua_as_fsm.c +++ b/src/xua_as_fsm.c @@ -200,6 +200,7 @@ struct osmo_timer_list t_r; struct llist_head queued_msgs; } recovery; + bool ipa_route_created; }; /* is the given AS one with a single ASP of IPA type? */ @@ -227,9 +228,13 @@ struct osmo_ss7_as *as = xafp->as; struct osmo_ss7_instance *inst = as->inst; + if (osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff)) + return; + /* As opposed to M3UA, there is no RKM and we have to implicitly * automatically add a route once an IPA connection has come up */ - osmo_ss7_route_create(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff, as->cfg.name); + if (osmo_ss7_route_create(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff, as->cfg.name)) + xafp->ipa_route_created = true; } static void ipa_del_route(struct osmo_fsm_inst *fi) @@ -239,6 +244,10 @@ struct osmo_ss7_instance *inst = as->inst; struct osmo_ss7_route *rt; + /* don't delete a route if we added none */ + if (!xafp->ipa_route_created) + return; + /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */ rt = osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff); /* no route found, bail out */ @@ -258,6 +267,7 @@ } osmo_ss7_route_destroy(rt); + xafp->ipa_route_created = false; } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9ad5f7ebe0790e6c186b8ea1b12f204860a00cd2 Gerrit-Change-Number: 23983 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 Thu Apr 29 19:15:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:15:10 +0000 Subject: Change in libosmo-sccp[master]: xua_asp_fsm: Fix IPA client role In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 ) Change subject: xua_asp_fsm: Fix IPA client role ...................................................................... xua_asp_fsm: Fix IPA client role The IPA server worked as expected, but the IPA client has some clear logic bug that prevented it from working. It shows that we never really use any of that IPA/SCCPlite stuff after years in spec-compliant SIGTRAN land. A client now first waits for the IPA_REQ, sends its IPA_RESP, then waits for the ACK, ... Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92 --- M src/xua_asp_fsm.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/xua_asp_fsm.c b/src/xua_asp_fsm.c index ec85d21..dd1dddb 100644 --- a/src/xua_asp_fsm.c +++ b/src/xua_asp_fsm.c @@ -867,7 +867,7 @@ } } else { /* Client: We simply wait for an ID GET */ - osmo_fsm_inst_state_chg(fi, IPA_ASP_S_WAIT_ID_ACK, 10, T_WAIT_ID_ACK); + osmo_fsm_inst_state_chg(fi, IPA_ASP_S_WAIT_ID_GET, 10, T_WAIT_ID_GET); } break; } @@ -1081,7 +1081,7 @@ [IPA_ASP_S_DOWN] = { .in_event_mask = S(XUA_ASP_E_M_ASP_UP_REQ) | S(XUA_ASP_E_SCTP_EST_IND), - .out_state_mask = S(IPA_ASP_S_WAIT_ID_ACK) | + .out_state_mask = S(IPA_ASP_S_WAIT_ID_GET) | S(IPA_ASP_S_WAIT_ID_RESP), .name = "ASP_DOWN", .action = ipa_asp_fsm_down, -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92 Gerrit-Change-Number: 23981 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 Thu Apr 29 19:23:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:23:27 +0000 Subject: Change in libosmo-abis[master]: ipa: Introduce support for user-specific DSCP and priority In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 to look at the new patch set (#3). Change subject: ipa: Introduce support for user-specific DSCP and priority ...................................................................... ipa: Introduce support for user-specific DSCP and priority This adds new members to struct ipa_server_link and ipa_client_conn, which can be set by the user before ipa_client_conn_open() or ipa_server_link_open() to ensure DSCP / priority values are applied from the first outgoing packet onwards. Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Depends: libosmocore.git If22988735fe05e51226c6b091a5348dcf1208cdf --- M TODO-RELEASE M include/osmocom/abis/ipa.h M src/input/ipa.c 3 files changed, 15 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/57/23957/3 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Gerrit-Change-Number: 23957 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:23:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:23:27 +0000 Subject: Change in libosmo-abis[master]: e1_input: Allow (vty) configuration of IP DSCP and socket priority In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 to look at the new patch set (#3). Change subject: e1_input: Allow (vty) configuration of IP DSCP and socket priority ...................................................................... e1_input: Allow (vty) configuration of IP DSCP and socket priority Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Related: SYS#5427 --- M include/internal.h M src/e1_input_vty.c M src/input/ipaccess.c 3 files changed, 69 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/58/23958/3 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Gerrit-Change-Number: 23958 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:24:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:24:33 +0000 Subject: Change in libosmo-abis[master]: e1_input: Allow (vty) configuration of IP DSCP and socket priority In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 to look at the new patch set (#4). Change subject: e1_input: Allow (vty) configuration of IP DSCP and socket priority ...................................................................... e1_input: Allow (vty) configuration of IP DSCP and socket priority Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Related: SYS#5427 --- M include/internal.h M src/e1_input_vty.c M src/input/ipaccess.c 3 files changed, 69 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/58/23958/4 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Gerrit-Change-Number: 23958 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:26:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:26:29 +0000 Subject: Change in osmo-mgw[master]: mgw: Add support for setting socket priority from VTY In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/23965 to look at the new patch set (#3). Change subject: mgw: Add support for setting socket priority from VTY ...................................................................... mgw: Add support for setting socket priority from VTY This is useful for affecting the 802.1Q PCP value without any separate external packet filter rules for classification. Change-Id: I69136c6dd114c24b1dace034e75dba5157bac37e Depends: libosmocore.git I89abffcd125e6d073338a5c6437b9433220e1823 --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_vty.c 4 files changed, 30 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/65/23965/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I69136c6dd114c24b1dace034e75dba5157bac37e Gerrit-Change-Number: 23965 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Apr 29 19:26:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:26:29 +0000 Subject: Change in osmo-mgw[master]: manual: Include QoS chapter and add osmo-mgw specific example In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/23967 to look at the new patch set (#3). Change subject: manual: Include QoS chapter and add osmo-mgw specific example ...................................................................... manual: Include QoS chapter and add osmo-mgw specific example Change-Id: I46f632f52a86a50242689a0132a7a7cb2a8feb12 Depends: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmomgw-usermanual.adoc 2 files changed, 44 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/67/23967/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I46f632f52a86a50242689a0132a7a7cb2a8feb12 Gerrit-Change-Number: 23967 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Apr 29 19:26:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:26:38 +0000 Subject: Change in libosmo-abis[master]: ipa: Introduce support for user-specific DSCP and priority In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23957 ) Change subject: ipa: Introduce support for user-specific DSCP and priority ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/23957/2/TODO-RELEASE File TODO-RELEASE: https://gerrit.osmocom.org/c/libosmo-abis/+/23957/2/TODO-RELEASE at 11 PS2, Line 11: libosmo-abis ABI break ipa_client_conn new struct members dscp, priority > I think we are fine regarding ABI break though, because the structs are always created internally by [?] Ack -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Gerrit-Change-Number: 23957 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:26:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:27:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:27:26 +0000 Subject: Change in osmo-mgw[master]: mgw: Add support for setting socket priority from VTY In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23965 ) Change subject: mgw: Add support for setting socket priority from VTY ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/23965/2/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/23965/2/src/libosmo-mgcp/mgcp_vty.c at 596 PS2, Line 596: "rtp priority <0-255>", > "rtp socket-priority" or "rtp vlan-priority" or wahtever may be more convinient, similar to what we [?] done, it's socket-priority now. I've also changed it in libosmo-abis to ensure it's consistent everywhere we add it. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I69136c6dd114c24b1dace034e75dba5157bac37e Gerrit-Change-Number: 23965 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:27:26 +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 Apr 29 19:27:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:27:33 +0000 Subject: Change in osmo-mgw[master]: switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23964 ) Change subject: switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() ...................................................................... switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() libosmocore If22988735fe05e51226c6b091a5348dcf1208cdf introduces an even more convenient mechanism for specifying the DSCP of an IP socket via OSMO_SOCK_F_DSCP() Change-Id: If0b11dea08716ed3952a25b546b2a9bd013857bf --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c 3 files changed, 6 insertions(+), 13 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index f3f225e..e0aeb83 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -208,5 +208,5 @@ int mgcp_send_reset_all(struct mgcp_config *cfg); -int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port); +int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp); int mgcp_udp_send(int fd, struct osmo_sockaddr *addr, int port, char *buf, int len); diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 675a0fc..76fe730 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1519,12 +1519,12 @@ * \param[in] fd associated file descriptor. * \param[in] port to bind on. * \returns 0 on success, -1 on ERROR. */ -int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port) +int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp) { int rc; rc = osmo_sock_init2(AF_UNSPEC, SOCK_DGRAM, IPPROTO_UDP, source_addr, port, - NULL, 0, OSMO_SOCK_F_BIND); + NULL, 0, OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(dscp)); if (rc < 0) { LOGP(DRTP, LOGL_ERROR, "failed to bind UDP port (%s:%i).\n", source_addr, port); @@ -1543,26 +1543,20 @@ /* NOTE: The port that is used for RTCP is the RTP port incremented by one * (e.g. RTP-Port = 16000 ==> RTCP-Port = 16001) */ - if (mgcp_create_bind(source_addr, &rtp_end->rtp, - rtp_end->local_port) != 0) { + if (mgcp_create_bind(source_addr, &rtp_end->rtp, rtp_end->local_port, cfg->endp_dscp) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "failed to create RTP port: %s:%d\n", source_addr, rtp_end->local_port); goto cleanup0; } - if (mgcp_create_bind(source_addr, &rtp_end->rtcp, - rtp_end->local_port + 1) != 0) { + if (mgcp_create_bind(source_addr, &rtp_end->rtcp, rtp_end->local_port + 1, cfg->endp_dscp) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "failed to create RTCP port: %s:%d\n", source_addr, rtp_end->local_port + 1); goto cleanup1; } - /* Set Type of Service (DSCP-Value) as configured via VTY */ - osmo_sock_set_dscp(rtp_end->rtp.fd, cfg->endp_dscp); - osmo_sock_set_dscp(rtp_end->rtcp.fd, cfg->endp_dscp); - if (osmo_fd_register(&rtp_end->rtp) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "failed to register RTP port %d\n", diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index 6c40307..62a6720 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -418,13 +418,12 @@ osmo_fd_setup(&osmux_fd, -1, OSMO_FD_READ, osmux_read_fd_cb, cfg, 0); - ret = mgcp_create_bind(cfg->osmux_addr, &osmux_fd, cfg->osmux_port); + ret = mgcp_create_bind(cfg->osmux_addr, &osmux_fd, cfg->osmux_port, cfg->endp_dscp); if (ret < 0) { LOGP(DLMGCP, LOGL_ERROR, "cannot bind OSMUX socket to %s:%u\n", cfg->osmux_addr, cfg->osmux_port); return ret; } - osmo_sock_set_dscp(osmux_fd.fd, cfg->endp_dscp); ret = osmo_fd_register(&osmux_fd); if (ret < 0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If0b11dea08716ed3952a25b546b2a9bd013857bf Gerrit-Change-Number: 23964 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:28:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:28:06 +0000 Subject: Change in osmo-mgw[master]: mgw: Add support for setting socket priority from VTY In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23965 ) Change subject: mgw: Add support for setting socket priority from VTY ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I69136c6dd114c24b1dace034e75dba5157bac37e Gerrit-Change-Number: 23965 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:28: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 Apr 29 19:28:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:28:14 +0000 Subject: Change in osmo-mgw[master]: manual: Include QoS chapter and add osmo-mgw specific example In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23967 ) Change subject: manual: Include QoS chapter and add osmo-mgw specific example ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I46f632f52a86a50242689a0132a7a7cb2a8feb12 Gerrit-Change-Number: 23967 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19: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 Thu Apr 29 19:29:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:29:53 +0000 Subject: Change in libosmocore[master]: ns2: change the 'priority' setting name to 'socket-priority' References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23984 ) Change subject: ns2: change the 'priority' setting name to 'socket-priority' ...................................................................... ns2: change the 'priority' setting name to 'socket-priority' This has been changed based on feedback from Pau Espin in osmo-mgw, and for consistency we also adjust it here. No backwards compat needed as it was just introduced yesterday. Change-Id: I88989dc17c8996609b895c43012f8cca98aa81dc --- M src/gb/gprs_ns2_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/84/23984/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 0fd7c17..a782c5c 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -470,7 +470,7 @@ if (vbind->dscp) vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); if (vbind->priority) - vty_out(vty, " priority %u%s", vbind->priority, VTY_NEWLINE); + vty_out(vty, " socket-priority %u%s", vbind->priority, VTY_NEWLINE); vty_out(vty, " ip-sns signalling-weight %u data-weight %u%s", vbind->ip_sns_sig_weight, vbind->ip_sns_data_weight, VTY_NEWLINE); break; @@ -726,7 +726,7 @@ } DEFUN(cfg_ns_bind_priority, cfg_ns_bind_priority_cmd, - "priority <0-255>", + "socket-priority <0-255>", "Set socket priority on the UDP socket\n" "Priority Value (>6 requires CAP_NET_ADMIN)\n") { struct vty_bind *vbind = vty->index; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I88989dc17c8996609b895c43012f8cca98aa81dc Gerrit-Change-Number: 23984 Gerrit-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 Apr 29 19:29:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:29:54 +0000 Subject: Change in libosmocore[master]: osmo_sock_*_ofd(): Mark OSMO_FD_WRITE on non-blocking connect() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/23985 ) Change subject: osmo_sock_*_ofd(): Mark OSMO_FD_WRITE on non-blocking connect() ...................................................................... osmo_sock_*_ofd(): Mark OSMO_FD_WRITE on non-blocking connect() When we perform a non-blocking Change-Id: I22964c5d5da849abcd97a900bd86ab5b4ada05da --- M src/socket.c 1 file changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/85/23985/1 diff --git a/src/socket.c b/src/socket.c index 59d0876..34972b8 100644 --- a/src/socket.c +++ b/src/socket.c @@ -972,11 +972,12 @@ /*! fill \ref osmo_fd for a give sfd * \param[out] ofd file descriptor (will be filled in) * \param[in] sfd socket file descriptor + * \param[in] flags flags like \ref OSMO_SOCK_F_CONNECT * \returns socket fd on success; negative on error * * This function fills the \a ofd structure. */ -static inline int osmo_fd_init_ofd(struct osmo_fd *ofd, int sfd) +static inline int osmo_fd_init_ofd(struct osmo_fd *ofd, int sfd, unsigned int flags) { int rc; @@ -986,6 +987,14 @@ ofd->fd = sfd; ofd->when = OSMO_FD_READ; + /* if we're doing a non-blocking connect, the completion will be signaled + * by marking the fd as WRITE-able. So in this exceptional case, we're + * also interested in when the socket becomes write-able */ + if ((flags & (OSMO_SOCK_F_CONNECT|OSMO_SOCK_F_NONBLOCK)) == + (OSMO_SOCK_F_CONNECT|OSMO_SOCK_F_NONBLOCK)) { + ofd->when |= OSMO_FD_WRITE; + } + rc = osmo_fd_register(ofd); if (rc < 0) { close(sfd); @@ -1011,7 +1020,7 @@ int osmo_sock_init_ofd(struct osmo_fd *ofd, int family, int type, int proto, const char *host, uint16_t port, unsigned int flags) { - return osmo_fd_init_ofd(ofd, osmo_sock_init(family, type, proto, host, port, flags)); + return osmo_fd_init_ofd(ofd, osmo_sock_init(family, type, proto, host, port, flags), flags); } /*! Initialize a socket and fill \ref osmo_fd @@ -1034,14 +1043,14 @@ const char *remote_host, uint16_t remote_port, unsigned int flags) { return osmo_fd_init_ofd(ofd, osmo_sock_init2(family, type, proto, local_host, - local_port, remote_host, remote_port, flags)); + local_port, remote_host, remote_port, flags), flags); } int osmo_sock_init_osa_ofd(struct osmo_fd *ofd, int type, int proto, const struct osmo_sockaddr *local, const struct osmo_sockaddr *remote, unsigned int flags) { - return osmo_fd_init_ofd(ofd, osmo_sock_init_osa(type, proto, local, remote, flags)); + return osmo_fd_init_ofd(ofd, osmo_sock_init_osa(type, proto, local, remote, flags), flags); } /*! Initialize a socket and fill \ref sockaddr @@ -1313,7 +1322,7 @@ int osmo_sock_unix_init_ofd(struct osmo_fd *ofd, uint16_t type, uint8_t proto, const char *socket_path, unsigned int flags) { - return osmo_fd_init_ofd(ofd, osmo_sock_unix_init(type, proto, socket_path, flags)); + return osmo_fd_init_ofd(ofd, osmo_sock_unix_init(type, proto, socket_path, flags), flags); } /*! Get the IP and/or port number on socket in separate string buffers. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I22964c5d5da849abcd97a900bd86ab5b4ada05da Gerrit-Change-Number: 23985 Gerrit-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 Apr 29 19:30:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:30:29 +0000 Subject: Change in libosmocore[master]: ns2: change the 'priority' setting name to 'socket-priority' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23984 ) Change subject: ns2: change the 'priority' setting name to 'socket-priority' ...................................................................... Patch Set 1: Code-Review+2 just fixing this up quickly for consistency across programs -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I88989dc17c8996609b895c43012f8cca98aa81dc Gerrit-Change-Number: 23984 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 29 Apr 2021 19:30: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 Apr 29 19:31:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:31:09 +0000 Subject: Change in libosmo-abis[master]: ipa: Introduce support for user-specific DSCP and priority In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23957 ) Change subject: ipa: Introduce support for user-specific DSCP and priority ...................................................................... Patch Set 3: Code-Review+2 re-adding -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Gerrit-Change-Number: 23957 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:31: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 Apr 29 19:31:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:31:35 +0000 Subject: Change in libosmo-abis[master]: e1_input: Allow (vty) configuration of IP DSCP and socket priority In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23958 ) Change subject: e1_input: Allow (vty) configuration of IP DSCP and socket priority ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/23958/2/include/internal.h File include/internal.h: https://gerrit.osmocom.org/c/libosmo-abis/+/23958/2/include/internal.h at 35 PS2, Line 35: void e1inp_ipa_set_oml_dscp(uint8_t dscp); > So you define these APIs but I don't see them being implemented nor used? left over from a previous apporach to the problem. thanks for noticing. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Gerrit-Change-Number: 23958 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:31:35 +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 Apr 29 19:31:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:31:40 +0000 Subject: Change in libosmo-abis[master]: ipa: Introduce support for user-specific DSCP and priority In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23957 ) Change subject: ipa: Introduce support for user-specific DSCP and priority ...................................................................... ipa: Introduce support for user-specific DSCP and priority This adds new members to struct ipa_server_link and ipa_client_conn, which can be set by the user before ipa_client_conn_open() or ipa_server_link_open() to ensure DSCP / priority values are applied from the first outgoing packet onwards. Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Depends: libosmocore.git If22988735fe05e51226c6b091a5348dcf1208cdf --- M TODO-RELEASE M include/osmocom/abis/ipa.h M src/input/ipa.c 3 files changed, 15 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index d0852fc..8c417cd 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,3 +7,6 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line +update libosmocore dependency to > 1.5.1 for OSMO_SOCK_F_{DSCP,PRIO}() +libosmo-abis new member ipa_client_conn new struct members dscp, priority +libosmo-abis new member ipa_server_link new struct members dscp, priority diff --git a/include/osmocom/abis/ipa.h b/include/osmocom/abis/ipa.h index 4764a95..7e13a6d 100644 --- a/include/osmocom/abis/ipa.h +++ b/include/osmocom/abis/ipa.h @@ -19,6 +19,8 @@ uint16_t port; int (*accept_cb)(struct ipa_server_link *link, int fd); void *data; + uint8_t dscp; + uint8_t priority; }; struct ipa_server_link * @@ -80,6 +82,8 @@ struct msgb *pending_msg; const char *local_addr; uint16_t local_port; + uint8_t dscp; + uint8_t priority; }; struct ipa_client_conn * diff --git a/src/input/ipa.c b/src/input/ipa.c index f01ecd9..c121987 100644 --- a/src/input/ipa.c +++ b/src/input/ipa.c @@ -224,7 +224,8 @@ ret = osmo_sock_init2(AF_INET, SOCK_STREAM, IPPROTO_TCP, link->local_addr, link->local_port, link->addr, link->port, - OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT|OSMO_SOCK_F_NONBLOCK); + OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT|OSMO_SOCK_F_NONBLOCK| + OSMO_SOCK_F_DSCP(link->dscp) | OSMO_SOCK_F_PRIO(link->priority)); if (ret < 0) return ret; link->ofd->fd = ret; @@ -282,6 +283,10 @@ LOGIPA(link, LOGL_NOTICE, "accept()ed new link from %s:%u\n", inet_ntoa(sa.sin_addr), ntohs(sa.sin_port)); + /* make new fd inherit DSCP + priority of listen-socket */ + osmo_sock_set_dscp(fd, link->dscp); + osmo_sock_set_priority(fd, link->priority); + ret = link->accept_cb(link, fd); if (ret < 0) { LOGP(DLINP, LOGL_ERROR, @@ -330,7 +335,8 @@ int ret; ret = osmo_sock_init(AF_INET, SOCK_STREAM, IPPROTO_TCP, - link->addr, link->port, OSMO_SOCK_F_BIND); + link->addr, link->port, OSMO_SOCK_F_BIND| + OSMO_SOCK_F_DSCP(link->dscp) | OSMO_SOCK_F_PRIO(link->priority)); if (ret < 0) return ret; -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5ab22d35d9b11eca47d9ea12208e5589a1a5713c Gerrit-Change-Number: 23957 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:37:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 19:37:10 +0000 Subject: Change in libosmocore[master]: osmo_sock_*_ofd(): Mark OSMO_FD_WRITE on non-blocking connect() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23985 ) Change subject: osmo_sock_*_ofd(): Mark OSMO_FD_WRITE on non-blocking connect() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I22964c5d5da849abcd97a900bd86ab5b4ada05da Gerrit-Change-Number: 23985 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:37:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:38:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 29 Apr 2021 19:38:01 +0000 Subject: Change in libosmo-abis[master]: e1_input: Allow (vty) configuration of IP DSCP and socket priority In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23958 ) Change subject: e1_input: Allow (vty) configuration of IP DSCP and socket priority ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Gerrit-Change-Number: 23958 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19: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 Thu Apr 29 19:44:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:44:54 +0000 Subject: Change in libosmo-abis[master]: trau: Introduce osmo_rtp_socket_set_priority() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23986 ) Change subject: trau: Introduce osmo_rtp_socket_set_priority() ...................................................................... trau: Introduce osmo_rtp_socket_set_priority() For consistency reasons with osmo_rtp_socket_set_dscp(), let's also introduce a osmo_rtp_socket_set_priority() function to wrap the two calls to osmo_sock_set_priority(). Change-Id: I52c08f4b2a46981d002ef0c21e6549445d845a6e --- M include/osmocom/trau/osmo_ortp.h M src/trau/osmo_ortp.c 2 files changed, 18 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/86/23986/1 diff --git a/include/osmocom/trau/osmo_ortp.h b/include/osmocom/trau/osmo_ortp.h index 1e0720c..4cf2321 100644 --- a/include/osmocom/trau/osmo_ortp.h +++ b/include/osmocom/trau/osmo_ortp.h @@ -77,6 +77,7 @@ int osmo_rtp_socket_autoconnect(struct osmo_rtp_socket *rs); int osmo_rtp_socket_set_pt(struct osmo_rtp_socket *rs, int payload_type); int osmo_rtp_socket_set_dscp(struct osmo_rtp_socket *rs, int dscp); +int osmo_rtp_socket_set_priority(struct osmo_rtp_socket *rs, uint8_t prio); int osmo_rtp_socket_free(struct osmo_rtp_socket *rs); int osmo_rtp_skipped_frame(struct osmo_rtp_socket *rs, unsigned int duration); int osmo_rtp_send_frame(struct osmo_rtp_socket *rs, const uint8_t *payload, diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index d105ca8..b72f681 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -1,4 +1,4 @@ -/* (C) 2011 by Harald Welte +/* (C) 2011-2021 by Harald Welte * (C) 2011 by On-Waves e.h.f * All Rights Reserved * @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -592,6 +593,21 @@ return rtp_session_set_dscp(rs->sess, dscp); } +/*! \brief Set the socket priority for outgoing RTP packets + * \param[in] rs OsmoRTP socket + * \param[in] prio socket priority + * \returns 0 on success, < 0 otherwise + */ +int osmo_rtp_socket_set_priority(struct osmo_rtp_socket *rs, uint8_t prio) +{ + int rc; + + rc = osmo_sock_set_priority(rs->rtp_bfd.fd, prio); + if (rc < 0) + return rc; + return osmo_sock_set_priority(rs->rtcp_bfd.fd, prio); +} + /*! \brief completely close the RTP socket and release all resources * \param[in] rs OsmoRTP socket to be released * \returns 0 on success -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I52c08f4b2a46981d002ef0c21e6549445d845a6e Gerrit-Change-Number: 23986 Gerrit-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 Apr 29 19:45:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:45:21 +0000 Subject: Change in libosmo-abis[master]: e1_input: Allow (vty) configuration of IP DSCP and socket priority In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23958 ) Change subject: e1_input: Allow (vty) configuration of IP DSCP and socket priority ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Gerrit-Change-Number: 23958 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:45: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 Apr 29 19:45:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:45:25 +0000 Subject: Change in libosmo-abis[master]: e1_input: Allow (vty) configuration of IP DSCP and socket priority In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23958 ) Change subject: e1_input: Allow (vty) configuration of IP DSCP and socket priority ...................................................................... e1_input: Allow (vty) configuration of IP DSCP and socket priority Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Related: SYS#5427 --- M include/internal.h M src/e1_input_vty.c M src/input/ipaccess.c 3 files changed, 69 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/include/internal.h b/include/internal.h index aeca02f..0ee2dcb 100644 --- a/include/internal.h +++ b/include/internal.h @@ -10,6 +10,19 @@ struct e1inp_sign_link; struct e1inp_ts; +struct ipa_proto_pars { + uint8_t dscp; + uint8_t priority; +}; + +struct ipa_pars { + struct ipa_proto_pars oml; + struct ipa_proto_pars rsl; +}; + +/* global parameters of IPA input driver */ +extern struct ipa_pars g_e1inp_ipaccess_pars; + /* talloc context for libosmo-abis. */ extern void *libosmo_abis_ctx; diff --git a/src/e1_input_vty.c b/src/e1_input_vty.c index 64f5f63..c392a3b 100644 --- a/src/e1_input_vty.c +++ b/src/e1_input_vty.c @@ -1,5 +1,5 @@ /* E1 vty interface */ -/* (C) 2011 by Harald Welte +/* (C) 2011-2021 by Harald Welte * All Rights Reserved * * SPDX-License-Identifier: AGPL-3.0+ @@ -327,6 +327,38 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_ipa_dscp, cfg_ipa_dscp_cmd, + X(OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK), + "ipa ip-dscp (oml|rsl) <0-63>", + "ipa driver config\n" + "Set IP DSCP value for outbound packets\n" + "Set IP DSCP for OML link\n" + "Set IP DSCP for RSL link\n" + "IP DSCP Value to use\n") +{ + if (!strcmp(argv[0], "oml")) + g_e1inp_ipaccess_pars.oml.dscp = atoi(argv[1]); + else + g_e1inp_ipaccess_pars.rsl.dscp = atoi(argv[1]); + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_ipa_priority, cfg_ipa_priority_cmd, + X(OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK), + "ipa socket-priority (oml|rsl) <0-255>", + "ipa driver config\n" + "Set socket priority value for outbound packets\n" + "Set socket priority for OML link\n" + "Set socket priority for RSL link\n" + "socket priority value to use (>6 requires CAP_NET_ADMIN)\n") +{ + if (!strcmp(argv[0], "oml")) + g_e1inp_ipaccess_pars.oml.priority = atoi(argv[1]); + else + g_e1inp_ipaccess_pars.rsl.priority = atoi(argv[1]); + return CMD_SUCCESS; +} + static int e1inp_config_write(struct vty *vty) { struct e1inp_line *line; @@ -373,6 +405,15 @@ vty_out(vty, " ipa bind %s%s", ipa_bind, VTY_NEWLINE); + if (g_e1inp_ipaccess_pars.oml.dscp) + vty_out(vty, " ipa ip-dscp oml %u%s", g_e1inp_ipaccess_pars.oml.dscp, VTY_NEWLINE); + if (g_e1inp_ipaccess_pars.rsl.dscp) + vty_out(vty, " ipa ip-dscp rsl %u%s", g_e1inp_ipaccess_pars.rsl.dscp, VTY_NEWLINE); + if (g_e1inp_ipaccess_pars.oml.priority) + vty_out(vty, " ipa socket-priority oml %u%s", g_e1inp_ipaccess_pars.oml.priority, VTY_NEWLINE); + if (g_e1inp_ipaccess_pars.rsl.priority) + vty_out(vty, " ipa socket-priority rsl %u%s", g_e1inp_ipaccess_pars.rsl.priority, VTY_NEWLINE); + return CMD_SUCCESS; } @@ -532,6 +573,8 @@ install_lib_element(L_E1INP_NODE, &cfg_e1_line_no_ipa_keepalive_cmd); install_lib_element(L_E1INP_NODE, &cfg_ipa_bind_cmd); + install_lib_element(L_E1INP_NODE, &cfg_ipa_dscp_cmd); + install_lib_element(L_E1INP_NODE, &cfg_ipa_priority_cmd); install_lib_element_ve(&show_e1drv_cmd); install_lib_element_ve(&show_e1line_cmd); diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c index be882a9..e876790 100644 --- a/src/input/ipaccess.c +++ b/src/input/ipaccess.c @@ -1,6 +1,6 @@ /* OpenBSC Abis input driver for ip.access */ -/* (C) 2009 by Harald Welte +/* (C) 2009-2021 by Harald Welte * (C) 2010 by Holger Hans Peter Freyther * (C) 2010 by On-Waves * @@ -51,6 +51,9 @@ #include #include +/* global parameters of IPA input driver */ +struct ipa_pars g_e1inp_ipaccess_pars; + static void *tall_ipa_ctx; #define TS1_ALLOC_SIZE 900 @@ -1041,6 +1044,8 @@ "BSC link: %s\n", strerror(errno)); return -ENOMEM; } + oml_link->dscp = g_e1inp_ipaccess_pars.oml.dscp; + oml_link->priority = g_e1inp_ipaccess_pars.oml.priority; if (ipa_server_link_open(oml_link) < 0) { LOGP(DLINP, LOGL_ERROR, "cannot open OML BSC link: %s\n", strerror(errno)); @@ -1055,6 +1060,8 @@ "BSC link: %s\n", strerror(errno)); return -ENOMEM; } + rsl_link->dscp = g_e1inp_ipaccess_pars.rsl.dscp; + rsl_link->priority = g_e1inp_ipaccess_pars.rsl.priority; if (ipa_server_link_open(rsl_link) < 0) { LOGP(DLINP, LOGL_ERROR, "cannot open RSL BSC link: %s\n", strerror(errno)); @@ -1087,6 +1094,8 @@ "BTS link: %s\n", strerror(errno)); return -ENOMEM; } + link->dscp = g_e1inp_ipaccess_pars.oml.dscp; + link->priority = g_e1inp_ipaccess_pars.oml.priority; if (ipa_client_conn_open(link) < 0) { LOGP(DLINP, LOGL_ERROR, "cannot open OML BTS link: %s\n", strerror(errno)); @@ -1141,6 +1150,8 @@ "BTS link: %s\n", strerror(errno)); return -ENOMEM; } + rsl_link->dscp = g_e1inp_ipaccess_pars.rsl.dscp; + rsl_link->priority = g_e1inp_ipaccess_pars.rsl.priority; if (ipa_client_conn_open(rsl_link) < 0) { LOGP(DLINP, LOGL_ERROR, "cannot open RSL BTS link: %s\n", strerror(errno)); -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8991dd6eb406a5b9a70498974fc1ad339452f871 Gerrit-Change-Number: 23958 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:49:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:49:05 +0000 Subject: Change in libosmocore[master]: ns2: change the 'priority' setting name to 'socket-priority' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23984 ) Change subject: ns2: change the 'priority' setting name to 'socket-priority' ...................................................................... ns2: change the 'priority' setting name to 'socket-priority' This has been changed based on feedback from Pau Espin in osmo-mgw, and for consistency we also adjust it here. No backwards compat needed as it was just introduced yesterday. Change-Id: I88989dc17c8996609b895c43012f8cca98aa81dc --- M src/gb/gprs_ns2_vty.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_vty.c b/src/gb/gprs_ns2_vty.c index 0fd7c17..a782c5c 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -470,7 +470,7 @@ if (vbind->dscp) vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); if (vbind->priority) - vty_out(vty, " priority %u%s", vbind->priority, VTY_NEWLINE); + vty_out(vty, " socket-priority %u%s", vbind->priority, VTY_NEWLINE); vty_out(vty, " ip-sns signalling-weight %u data-weight %u%s", vbind->ip_sns_sig_weight, vbind->ip_sns_data_weight, VTY_NEWLINE); break; @@ -726,7 +726,7 @@ } DEFUN(cfg_ns_bind_priority, cfg_ns_bind_priority_cmd, - "priority <0-255>", + "socket-priority <0-255>", "Set socket priority on the UDP socket\n" "Priority Value (>6 requires CAP_NET_ADMIN)\n") { struct vty_bind *vbind = vty->index; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I88989dc17c8996609b895c43012f8cca98aa81dc Gerrit-Change-Number: 23984 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 Apr 29 19:49:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:49:34 +0000 Subject: Change in osmo-mgw[master]: mgw: Add support for setting socket priority from VTY In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23965 ) Change subject: mgw: Add support for setting socket priority from VTY ...................................................................... mgw: Add support for setting socket priority from VTY This is useful for affecting the 802.1Q PCP value without any separate external packet filter rules for classification. Change-Id: I69136c6dd114c24b1dace034e75dba5157bac37e Depends: libosmocore.git I89abffcd125e6d073338a5c6437b9433220e1823 --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_vty.c 4 files changed, 30 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index e0aeb83..1de579a 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -143,6 +143,7 @@ struct mgcp_port_range net_ports; int endp_dscp; + int endp_priority; int force_ptime; @@ -208,5 +209,6 @@ int mgcp_send_reset_all(struct mgcp_config *cfg); -int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp); +int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp, + uint8_t prio); int mgcp_udp_send(int fd, struct osmo_sockaddr *addr, int port, char *buf, int len); diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 76fe730..6a30165 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1518,13 +1518,17 @@ * \param[in] source_addr source (local) address to bind on. * \param[in] fd associated file descriptor. * \param[in] port to bind on. + * \param[in] dscp IP DSCP value to use. + * \param[in] prio socket priority to use. * \returns 0 on success, -1 on ERROR. */ -int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp) +int mgcp_create_bind(const char *source_addr, struct osmo_fd *fd, int port, uint8_t dscp, + uint8_t prio) { int rc; rc = osmo_sock_init2(AF_UNSPEC, SOCK_DGRAM, IPPROTO_UDP, source_addr, port, - NULL, 0, OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(dscp)); + NULL, 0, OSMO_SOCK_F_BIND | OSMO_SOCK_F_DSCP(dscp) | + OSMO_SOCK_F_PRIO(prio)); if (rc < 0) { LOGP(DRTP, LOGL_ERROR, "failed to bind UDP port (%s:%i).\n", source_addr, port); @@ -1543,14 +1547,16 @@ /* NOTE: The port that is used for RTCP is the RTP port incremented by one * (e.g. RTP-Port = 16000 ==> RTCP-Port = 16001) */ - if (mgcp_create_bind(source_addr, &rtp_end->rtp, rtp_end->local_port, cfg->endp_dscp) != 0) { + if (mgcp_create_bind(source_addr, &rtp_end->rtp, rtp_end->local_port, + cfg->endp_dscp, cfg->endp_priority) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "failed to create RTP port: %s:%d\n", source_addr, rtp_end->local_port); goto cleanup0; } - if (mgcp_create_bind(source_addr, &rtp_end->rtcp, rtp_end->local_port + 1, cfg->endp_dscp) != 0) { + if (mgcp_create_bind(source_addr, &rtp_end->rtcp, rtp_end->local_port + 1, + cfg->endp_dscp, cfg->endp_priority) != 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "failed to create RTCP port: %s:%d\n", source_addr, rtp_end->local_port + 1); diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index 62a6720..bb85735 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -418,7 +418,8 @@ osmo_fd_setup(&osmux_fd, -1, OSMO_FD_READ, osmux_read_fd_cb, cfg, 0); - ret = mgcp_create_bind(cfg->osmux_addr, &osmux_fd, cfg->osmux_port, cfg->endp_dscp); + ret = mgcp_create_bind(cfg->osmux_addr, &osmux_fd, cfg->osmux_port, + cfg->endp_dscp, cfg->endp_priority); if (ret < 0) { LOGP(DLMGCP, LOGL_ERROR, "cannot bind OSMUX socket to %s:%u\n", cfg->osmux_addr, cfg->osmux_port); diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 6b180ef..521f86e 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -83,6 +83,8 @@ else vty_out(vty, " no rtp ip-probing%s", VTY_NEWLINE); vty_out(vty, " rtp ip-dscp %d%s", g_cfg->endp_dscp, VTY_NEWLINE); + if (g_cfg->endp_priority) + vty_out(vty, " rtp socket-priority %d%s", g_cfg->endp_priority, VTY_NEWLINE); if (trunk->keepalive_interval == MGCP_KEEPALIVE_ONCE) vty_out(vty, " rtp keep-alive once%s", VTY_NEWLINE); else if (trunk->keepalive_interval) @@ -588,6 +590,18 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_mgcp_rtp_priority, + cfg_mgcp_rtp_priority_cmd, + X(MGW_CMD_ATTR_NEWCONN), + "rtp socket-priority <0-255>", + RTP_STR + "socket priority (values > 6 require CAP_NET_ADMIN)\n" "socket priority value\n") +{ + int prio = atoi(argv[0]); + g_cfg->endp_priority = prio; + return CMD_SUCCESS; +} + #define FORCE_PTIME_STR "Force a fixed ptime for packets sent" DEFUN_USRATTR(cfg_mgcp_rtp_force_ptime, cfg_mgcp_rtp_force_ptime_cmd, @@ -1618,6 +1632,7 @@ install_element(MGCP_NODE, &cfg_mgcp_rtp_net_bind_ip_probing_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_no_net_bind_ip_probing_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_ip_dscp_cmd); + install_element(MGCP_NODE, &cfg_mgcp_rtp_priority_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_force_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_rtp_force_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_rtp_keepalive_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I69136c6dd114c24b1dace034e75dba5157bac37e Gerrit-Change-Number: 23965 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:49:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:49:35 +0000 Subject: Change in osmo-mgw[master]: manual: Include QoS chapter and add osmo-mgw specific example In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/23967 ) Change subject: manual: Include QoS chapter and add osmo-mgw specific example ...................................................................... manual: Include QoS chapter and add osmo-mgw specific example Change-Id: I46f632f52a86a50242689a0132a7a7cb2a8feb12 Depends: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmomgw-usermanual.adoc 2 files changed, 44 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/qos-example.adoc b/doc/manuals/chapters/qos-example.adoc new file mode 100644 index 0000000..deb3d86 --- /dev/null +++ b/doc/manuals/chapters/qos-example.adoc @@ -0,0 +1,42 @@ +==== Full example of QoS for osmo-mgw + +In the below example we will show the full set of configuration required +for both DSCP and PCP differentiation of RTP traffic by osmo-mgw. + +What we want to achieve in this example is the following configuration: + +.DSCP and PCP assignments for osmo-mgw Abis downlink traffic in this example +[options="header",width="30%",cols="2,1,1"] +|=== +|Traffic |DSCP|PCP +|RTP | 46| 6 +|=== + +. configure the osmo-mgw program to set the DSCP value +. configure an egrees QoS map to map from priority to PCP + +.Example Step 1: add related VTY configuration to `osmo-mgw.cfg` +---- +... +mgcp + rtp ip-dscp 46 + rtp socket-priority 6 +... +---- + +.Example Step 2: egress QoS map to map from socket priority to PCP values +---- +$ sudo ip link set dev eth0.9<1> type vlan egress-qos-map 0:0 5:5 6:6 7:7 <2> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9`. +<2> create a egress QoS map that maps the priority value 1:1 to the PCP. We also include the + mapping 5:5 and 7:7 from the osmo-bsc example (see <>) here. + +NOTE:: The settings of the `ip` command are volatile and only active until +the next reboot (or the network device or VLAN is removed). Please refer to +the documentation of your specific Linux distribution in order to find out how +to make such settings persistent by means of an `ifup` hook whenever the interface +comes up. For CentOS/RHEL 8 this can e.g. be achieved by means of an `/sbin/ifup-local +script` (when using `network-scripts` and not NetworkManager). For Debian or Ubuntu, +this typically involves adding `up` lines to `/etc/network/interfaces` or a `/etc/network/if-up.d` +script. diff --git a/doc/manuals/osmomgw-usermanual.adoc b/doc/manuals/osmomgw-usermanual.adoc index c4660f5..7ebc2db 100644 --- a/doc/manuals/osmomgw-usermanual.adoc +++ b/doc/manuals/osmomgw-usermanual.adoc @@ -24,6 +24,8 @@ include::./common/chapters/osmux/osmux.adoc[] +include::./common/chapters/qos-dscp-pcp.adoc[] + //include::{srcdir}/chapters/counters.adoc[] include::./common/chapters/vty_cpu_sched.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/23967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I46f632f52a86a50242689a0132a7a7cb2a8feb12 Gerrit-Change-Number: 23967 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Apr 29 19:49:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:49:50 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example 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-bts/+/23927 to look at the new patch set (#4). Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... manual: Include QoS chapter and add osmo-bts specific example Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Requires: libosmo-abis.git I8991dd6eb406a5b9a70498974fc1ad339452f871 --- M TODO-RELEASE A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmobts-usermanual.adoc 3 files changed, 53 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/23927/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 4 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 Apr 29 19:49:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 19:49:50 +0000 Subject: Change in osmo-bts[master]: Introduce ability to set socket priority of RTP sockets References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/23987 ) Change subject: Introduce ability to set socket priority of RTP sockets ...................................................................... Introduce ability to set socket priority of RTP sockets This significantly simplifies setups in which not only the IP DSCP but also the IEEE 802.1Q PCP is to be set for RTP packets. Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Related: SYS#5427 --- M include/osmo-bts/bts.h M src/common/bts.c M src/common/rsl.c M src/common/vty.c 4 files changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/87/23987/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index be0222d..7a1085e 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -297,6 +297,7 @@ uint16_t rtp_port_range_end; uint16_t rtp_port_range_next; int rtp_ip_dscp; + int rtp_priority; struct { uint8_t ciphers; /* flags A5/1==0x1, A5/2==0x2, A5/3==0x4 */ diff --git a/src/common/bts.c b/src/common/bts.c index 06a5ccb..3860a87 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -329,6 +329,7 @@ bts->rtp_port_range_end = 17407; bts->rtp_port_range_next = bts->rtp_port_range_start; bts->rtp_ip_dscp = -1; + bts->rtp_priority = -1; /* Default (fall-back) MS/BS Power control parameters */ bts->bs_dpc_params = power_ctrl_params_def; diff --git a/src/common/rsl.c b/src/common/rsl.c index 963e6ba..cd3fda5 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -2433,6 +2433,11 @@ LOGP(DRSL, LOGL_ERROR, "failed to set DSCP=%i: %s\n", bts->rtp_ip_dscp, strerror(errno)); } + if (bts->rtp_priority != -1) { + if (osmo_rtp_socket_set_priority(rs, bts->rtp_priority)) + LOGP(DRSL, LOGL_ERROR, "failed to set socket priority %d: %s\n", + bts->rtp_priority, strerror(errno)); + } return 0; } diff --git a/src/common/vty.c b/src/common/vty.c index 45ee32c..fb4ab94 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -300,6 +300,8 @@ bts->rtp_port_range_end, VTY_NEWLINE); if (bts->rtp_ip_dscp != -1) vty_out(vty, " rtp ip-dscp %i%s", bts->rtp_ip_dscp, VTY_NEWLINE); + if (bts->rtp_priority != -1) + vty_out(vty, " rtp socket-priority %i%s", bts->rtp_priority, VTY_NEWLINE); vty_out(vty, " paging queue-size %u%s", paging_get_queue_max(bts->paging_state), VTY_NEWLINE); vty_out(vty, " paging lifetime %u%s", paging_get_lifetime(bts->paging_state), @@ -595,6 +597,21 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_bts_rtp_priority, + cfg_bts_rtp_priority_cmd, + X(BTS_VTY_ATTR_NEW_LCHAN), + "rtp socket-priority <0-255>", + RTP_STR "Specify socket priority for RTP/IP packets\n" + "The socket priority alue (> 6 requires CAP_NET_ADMIN)\n") +{ + struct gsm_bts *bts = vty->index; + int prio = atoi(argv[0]); + + bts->rtp_priority = prio; + + return CMD_SUCCESS; +} + #define PAG_STR "Paging related parameters\n" DEFUN_ATTR(cfg_bts_paging_queue_size, @@ -2312,6 +2329,7 @@ install_element(BTS_NODE, &cfg_bts_rtp_jitbuf_cmd); install_element(BTS_NODE, &cfg_bts_rtp_port_range_cmd); install_element(BTS_NODE, &cfg_bts_rtp_ip_dscp_cmd); + install_element(BTS_NODE, &cfg_bts_rtp_priority_cmd); install_element(BTS_NODE, &cfg_bts_band_cmd); install_element(BTS_NODE, &cfg_description_cmd); install_element(BTS_NODE, &cfg_no_description_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Gerrit-Change-Number: 23987 Gerrit-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 Apr 29 19:51:13 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 19:51:13 +0000 Subject: Change in osmo-bts[master]: manuals: Update copyright years In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23960 ) Change subject: manuals: Update copyright years ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I353013ddfc8c5506599e723e713d93f3f041f15d Gerrit-Change-Number: 23960 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19:51: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 Apr 29 19:52:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 29 Apr 2021 19:52:52 +0000 Subject: Change in osmo-bts[master]: manual: Remove manual revision history; we don't use it anywawy In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23959 ) Change subject: manual: Remove manual revision history; we don't use it anywawy ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I25c4d8b694756c6eed81c9b552a389ca5bd04ea7 Gerrit-Change-Number: 23959 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 19: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 Thu Apr 29 20:12:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:12:08 +0000 Subject: Change in osmo-bts[master]: Introduce ability to set socket priority of RTP sockets In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/23987 ) Change subject: Introduce ability to set socket priority of RTP sockets ...................................................................... Introduce ability to set socket priority of RTP sockets This significantly simplifies setups in which not only the IP DSCP but also the IEEE 802.1Q PCP is to be set for RTP packets. Depends: libosmo-abis.git I52c08f4b2a46981d002ef0c21e6549445d845a6e Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Related: SYS#5427 --- M TODO-RELEASE M include/osmo-bts/bts.h M src/common/bts.c M src/common/rsl.c M src/common/vty.c 5 files changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/87/23987/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Gerrit-Change-Number: 23987 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 Apr 29 20:12:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:12:08 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example 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-bts/+/23927 to look at the new patch set (#5). Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... manual: Include QoS chapter and add osmo-bts specific example Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Requires: libosmo-abis.git I8991dd6eb406a5b9a70498974fc1ad339452f871 --- M TODO-RELEASE A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmobts-usermanual.adoc 3 files changed, 53 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/23927/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 5 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 Apr 29 20:13:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:13:53 +0000 Subject: Change in osmo-pcu[master]: manual: Include QoS chapter and add osmo-pcu specific example 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-pcu/+/23929 to look at the new patch set (#2). Change subject: manual: Include QoS chapter and add osmo-pcu specific example ...................................................................... manual: Include QoS chapter and add osmo-pcu specific example Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmopcu-usermanual.adoc 2 files changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/29/23929/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Gerrit-Change-Number: 23929 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 Thu Apr 29 20:13:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:13:54 +0000 Subject: Change in osmo-pcu[master]: vty: Add configuration for Gb DSCP and socket priority References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23988 ) Change subject: vty: Add configuration for Gb DSCP and socket priority ...................................................................... vty: Add configuration for Gb DSCP and socket priority While libosmogb / ns2 supports that natively in the VTY, the PCU doesn't want to use the complexities of the full NS2 vty. Change-Id: I7bfbad46582e65e5ad2ac0cc66545538bc632df8 Related: SYS#5427 --- M TODO-RELEASE M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c 5 files changed, 41 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/88/23988/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 716f713..5b2720b 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,3 +8,4 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line libosmocore struct bssgp_bvc_ctx->is_sgsn field used available only on libosmocore >1.5.1 +libosmocore gprs_ns2_ip_bind_set_priority function used available only on libosmocore >1.5.1 diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 06e1814..f6114de 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -1060,6 +1060,11 @@ continue; } } + + if (the_pcu->vty.ns_ip_dscp != -1) + gprs_ns2_ip_bind_set_dscp(bind[i], the_pcu->vty.ns_ip_dscp); + if (the_pcu->vty.ns_priority != -1) + gprs_ns2_ip_bind_set_priority(bind[i], the_pcu->vty.ns_priority); } binds |= 1 << i; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 3875e09..df439ef 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -105,6 +105,8 @@ pcu->vty.mcs_lqual_ranges[8].low = 23; pcu->vty.mcs_lqual_ranges[8].high = 256; pcu->vty.ns_dialect = GPRS_NS2_DIALECT_IPACCESS; + pcu->vty.ns_ip_dscp = -1; + pcu->vty.ns_priority = -1; /* TODO: increase them when CRBB decoding is implemented */ pcu->vty.ws_base = 64; pcu->vty.ws_pdch = 0; diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index a17144c..86fe8eb 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -102,6 +102,8 @@ struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; enum gprs_ns2_dialect ns_dialect; /* Are we talking Gb with IP-SNS (true) or classic Gb? */ + int ns_ip_dscp; + int ns_priority; uint16_t ws_base; uint16_t ws_pdch; /* increase WS by this value per PDCH */ uint16_t force_llc_lifetime; /* overrides lifetime from SGSN */ diff --git a/src/pcu_vty.c b/src/pcu_vty.c index abc3d8d..1ca6376 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -251,6 +251,11 @@ else vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE); + if (the_pcu->vty.ns_ip_dscp != -1) + vty_out(vty, " gb ip-dscp %d%s", the_pcu->vty.ns_ip_dscp, VTY_NEWLINE); + if (the_pcu->vty.ns_priority != -1) + vty_out(vty, " gb socket-priority %d%s", the_pcu->vty.ns_priority, VTY_NEWLINE); + if (the_pcu->vty.neigh_ctrl_addr) { vty_out(vty, " neighbor resolution %s %u%s", the_pcu->vty.neigh_ctrl_addr, the_pcu->vty.neigh_ctrl_port, VTY_NEWLINE); @@ -1031,6 +1036,30 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_pcu_gb_ip_dscp, + cfg_pcu_gb_ip_dscp_cmd, + X(PCU_VTY_ATTR_NS_RESET), + "gb ip-dscp <0-63>", + "Configure Gb interface\n" + "Set IP DSCP value for outbound packets\n" + "IP DSCP value to use\n") +{ + the_pcu->vty.ns_ip_dscp = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_pcu_gb_priority, + cfg_pcu_gb_priority_cmd, + X(PCU_VTY_ATTR_NS_RESET), + "gb socket-priority <0-255>", + "Configure Gb interface\n" + "Set socket priority value for outbound packets\n" + "Socket priority value to use (>6 requires CAP_NET_ADMIN)") +{ + the_pcu->vty.ns_priority = atoi(argv[0]); + return CMD_SUCCESS; +} + DEFUN(cfg_neighbor_resolution, cfg_neighbor_resolution_cmd, "neighbor resolution " VTY_IPV46_CMD " [<0-65535>]", "Manage local and remote-BSS neighbor cells\n" @@ -1265,6 +1294,8 @@ install_element(PCU_NODE, &cfg_pcu_no_gsmtap_categ_cmd); install_element(PCU_NODE, &cfg_pcu_sock_cmd); install_element(PCU_NODE, &cfg_pcu_gb_dialect_cmd); + install_element(PCU_NODE, &cfg_pcu_gb_ip_dscp_cmd); + install_element(PCU_NODE, &cfg_pcu_gb_priority_cmd); install_element(PCU_NODE, &cfg_neighbor_resolution_cmd); install_element(PCU_NODE, &cfg_pcu_timer_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7bfbad46582e65e5ad2ac0cc66545538bc632df8 Gerrit-Change-Number: 23988 Gerrit-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 Apr 29 20:14:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:14:26 +0000 Subject: Change in libosmo-abis[master]: trau: Introduce osmo_rtp_socket_set_priority() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23986 ) Change subject: trau: Introduce osmo_rtp_socket_set_priority() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I52c08f4b2a46981d002ef0c21e6549445d845a6e Gerrit-Change-Number: 23986 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 20: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 Apr 29 20:14:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:14:30 +0000 Subject: Change in libosmo-abis[master]: trau: Introduce osmo_rtp_socket_set_priority() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/23986 ) Change subject: trau: Introduce osmo_rtp_socket_set_priority() ...................................................................... trau: Introduce osmo_rtp_socket_set_priority() For consistency reasons with osmo_rtp_socket_set_dscp(), let's also introduce a osmo_rtp_socket_set_priority() function to wrap the two calls to osmo_sock_set_priority(). Change-Id: I52c08f4b2a46981d002ef0c21e6549445d845a6e --- M include/osmocom/trau/osmo_ortp.h M src/trau/osmo_ortp.c 2 files changed, 18 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/trau/osmo_ortp.h b/include/osmocom/trau/osmo_ortp.h index 1e0720c..4cf2321 100644 --- a/include/osmocom/trau/osmo_ortp.h +++ b/include/osmocom/trau/osmo_ortp.h @@ -77,6 +77,7 @@ int osmo_rtp_socket_autoconnect(struct osmo_rtp_socket *rs); int osmo_rtp_socket_set_pt(struct osmo_rtp_socket *rs, int payload_type); int osmo_rtp_socket_set_dscp(struct osmo_rtp_socket *rs, int dscp); +int osmo_rtp_socket_set_priority(struct osmo_rtp_socket *rs, uint8_t prio); int osmo_rtp_socket_free(struct osmo_rtp_socket *rs); int osmo_rtp_skipped_frame(struct osmo_rtp_socket *rs, unsigned int duration); int osmo_rtp_send_frame(struct osmo_rtp_socket *rs, const uint8_t *payload, diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index d105ca8..b72f681 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -1,4 +1,4 @@ -/* (C) 2011 by Harald Welte +/* (C) 2011-2021 by Harald Welte * (C) 2011 by On-Waves e.h.f * All Rights Reserved * @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -592,6 +593,21 @@ return rtp_session_set_dscp(rs->sess, dscp); } +/*! \brief Set the socket priority for outgoing RTP packets + * \param[in] rs OsmoRTP socket + * \param[in] prio socket priority + * \returns 0 on success, < 0 otherwise + */ +int osmo_rtp_socket_set_priority(struct osmo_rtp_socket *rs, uint8_t prio) +{ + int rc; + + rc = osmo_sock_set_priority(rs->rtp_bfd.fd, prio); + if (rc < 0) + return rc; + return osmo_sock_set_priority(rs->rtcp_bfd.fd, prio); +} + /*! \brief completely close the RTP socket and release all resources * \param[in] rs OsmoRTP socket to be released * \returns 0 on success -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/23986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I52c08f4b2a46981d002ef0c21e6549445d845a6e Gerrit-Change-Number: 23986 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 Apr 29 20:14:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:14:50 +0000 Subject: Change in libosmocore[master]: osmo_timer_pending: Make arg const In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23978 ) Change subject: osmo_timer_pending: Make arg const ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I250c25c3ac61ac364335f81d8ba50cb32fd6976e Gerrit-Change-Number: 23978 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 29 Apr 2021 20:14: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 Apr 29 20:14:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:14:51 +0000 Subject: Change in libosmocore[master]: osmo_timer_pending: Make arg const In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23978 ) Change subject: osmo_timer_pending: Make arg const ...................................................................... osmo_timer_pending: Make arg const Change-Id: I250c25c3ac61ac364335f81d8ba50cb32fd6976e --- M include/osmocom/core/timer.h M src/timer.c 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/timer.h b/include/osmocom/core/timer.h index 6ffc3b1..61d20e2 100644 --- a/include/osmocom/core/timer.h +++ b/include/osmocom/core/timer.h @@ -75,7 +75,7 @@ void osmo_timer_del(struct osmo_timer_list *timer); -int osmo_timer_pending(struct osmo_timer_list *timer); +int osmo_timer_pending(const struct osmo_timer_list *timer); int osmo_timer_remaining(const struct osmo_timer_list *timer, const struct timeval *now, diff --git a/src/timer.c b/src/timer.c index bcd9f5b..ed5a610 100644 --- a/src/timer.c +++ b/src/timer.c @@ -135,7 +135,7 @@ * This function can be used to determine whether a given timer * has alredy expired (returns 0) or is still pending (returns 1) */ -int osmo_timer_pending(struct osmo_timer_list *timer) +int osmo_timer_pending(const struct osmo_timer_list *timer) { return timer->active; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I250c25c3ac61ac364335f81d8ba50cb32fd6976e Gerrit-Change-Number: 23978 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 Apr 29 20:15:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:15:10 +0000 Subject: Change in osmocom-bb[master]: trxcon: fix legacy length expectations for TRXDv0 Rx PDUs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23972 ) Change subject: trxcon: fix legacy length expectations for TRXDv0 Rx PDUs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I6c0734bc4669ccde2a93940c9cf50fdbbd67cb00 Gerrit-Change-Number: 23972 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 29 Apr 2021 20:15: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 Apr 29 20:15:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:15:11 +0000 Subject: Change in osmocom-bb[master]: trxcon: fix legacy length expectations for TRXDv0 Rx PDUs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/23972 ) Change subject: trxcon: fix legacy length expectations for TRXDv0 Rx PDUs ...................................................................... trxcon: fix legacy length expectations for TRXDv0 Rx PDUs 158 is basically: 8 + 148 + 2, where the last two are padding bytes sent by legacy TRXDv0 transceivers. We don't need them, so do not drop PDUs without these leggacy padding bytes. Change-Id: I6c0734bc4669ccde2a93940c9cf50fdbbd67cb00 --- M src/host/trxcon/trx_if.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/src/host/trxcon/trx_if.c b/src/host/trxcon/trx_if.c index e1ce588..716fd23 100644 --- a/src/host/trxcon/trx_if.c +++ b/src/host/trxcon/trx_if.c @@ -585,7 +585,7 @@ return read_len; } - if (read_len != 158) { + if (read_len < (8 + 148)) { /* TRXDv0 header + GMSK burst */ LOGP(DTRXD, LOGL_ERROR, "Got data message with invalid " "length '%zd'\n", read_len); return -EINVAL; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/23972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I6c0734bc4669ccde2a93940c9cf50fdbbd67cb00 Gerrit-Change-Number: 23972 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 Apr 29 20:16:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 29 Apr 2021 20:16:54 +0000 Subject: Change in osmo-pcu[master]: manual: Include QoS chapter and add osmo-pcu specific example 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-pcu/+/23929 to look at the new patch set (#3). Change subject: manual: Include QoS chapter and add osmo-pcu specific example ...................................................................... manual: Include QoS chapter and add osmo-pcu specific example Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmopcu-usermanual.adoc 2 files changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/29/23929/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Gerrit-Change-Number: 23929 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 Fri Apr 30 01:45:48 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 01:45:48 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement TRXDv2 protocol support In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23833 ) Change subject: osmo-bts-trx: implement TRXDv2 protocol support ...................................................................... Patch Set 7: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3532a6693bb335043ec390049138308991083e66 Gerrit-Change-Number: 23833 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 30 Apr 2021 01:45:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 01:46:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 01:46:33 +0000 Subject: Change in osmo-pcu[master]: manual: remove revhistory, as we don't maintain it manually anyyway In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23930 ) Change subject: manual: remove revhistory, as we don't maintain it manually anyyway ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibbe08cac143f4bff6192125940ef190cc943d307 Gerrit-Change-Number: 23930 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 01:46: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 Apr 30 01:46:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 01:46:51 +0000 Subject: Change in osmo-pcu[master]: manual: Update copyright years In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23931 ) Change subject: manual: Update copyright years ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0dde7100dd90c6ad6279efbaf02b9bd3f868635 Gerrit-Change-Number: 23931 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 01:46: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 Fri Apr 30 01:48:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 01:48:14 +0000 Subject: Change in osmo-pcu[master]: vty: Add configuration for Gb DSCP and socket priority In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23988 ) Change subject: vty: Add configuration for Gb DSCP and socket priority ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7bfbad46582e65e5ad2ac0cc66545538bc632df8 Gerrit-Change-Number: 23988 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 01: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 Fri Apr 30 01:50:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 01:50:24 +0000 Subject: Change in osmo-pcu[master]: manual: Include QoS chapter and add osmo-pcu specific example In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23929 ) Change subject: manual: Include QoS chapter and add osmo-pcu specific example ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Gerrit-Change-Number: 23929 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 01:50: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 Apr 30 01:52:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 01:52:27 +0000 Subject: Change in osmo-bts[master]: Introduce ability to set socket priority of RTP sockets In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23987 ) Change subject: Introduce ability to set socket priority of RTP sockets ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23987/2/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/23987/2/src/common/vty.c at 605 PS2, Line 605: alue typo: value -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Gerrit-Change-Number: 23987 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 01:52:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 01:54:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 01:54:52 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... Patch Set 5: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23927/5/doc/manuals/chapters/qos-example.adoc File doc/manuals/chapters/qos-example.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23927/5/doc/manuals/chapters/qos-example.adoc at 13 PS5, Line 13: A-bis RTP This looks wrong to me, shouldn't it be just 'RTP' without 'A-bis'? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 01:54: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 Fri Apr 30 01:57:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 01:57:55 +0000 Subject: Change in libosmocore[master]: osmo_sock_*_ofd(): Mark OSMO_FD_WRITE on non-blocking connect() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23985 ) Change subject: osmo_sock_*_ofd(): Mark OSMO_FD_WRITE on non-blocking connect() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/23985/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/23985/1//COMMIT_MSG at 9 PS1, Line 9: When we perform a non-blocking Looks like your keyboard slipped away in the middle of typing ;) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I22964c5d5da849abcd97a900bd86ab5b4ada05da Gerrit-Change-Number: 23985 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 01:57: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 Fri Apr 30 02:03:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 02:03:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_channel_needs_modify(): ask actual TCH lchan mode via VTY In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 ) Change subject: f_channel_needs_modify(): ask actual TCH lchan mode via VTY ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807/1/bsc/MSC_ConnectionHandler.ttcn File bsc/MSC_ConnectionHandler.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807/1/bsc/MSC_ConnectionHandler.ttcn at 970 PS1, Line 970: * subslot 1 is indicated in RslChannelNr (plus all current tests where this matters use subslot > it's not in this case, but it would be a t_RslChanNr_Lm(?, subslot_nr) - should be trivial to add. Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 Gerrit-Change-Number: 23807 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 02:03: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 Fri Apr 30 02:04:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 02:04:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_channel_needs_modify(): ask actual TCH lchan mode via VTY In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 ) Change subject: f_channel_needs_modify(): ask actual TCH lchan mode via VTY ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 Gerrit-Change-Number: 23807 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 02:04: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 Apr 30 02:37:06 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 02:37:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_assignment_codec_fr_by_mode_modify In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 ) Change subject: bsc: add TC_assignment_codec_fr_by_mode_modify ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/3/bsc/MSC_ConnectionHandler.ttcn File bsc/MSC_ConnectionHandler.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/3/bsc/MSC_ConnectionHandler.ttcn at 789 PS3, Line 789: PDU_ML3_NW_MS Makes more sense to use 'PDU_RRM_ChannelModeModify_NW_MS' here, because 'PDU_ML3_NW_MS' may technically contain any other RR message, and it's not really handy to access its fields by full path, e.g. 'rr_channel_mode_modify_msg.msgs.rrm.channelModeModify.channelMode.mode' in your code below. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/3/bsc/MSC_ConnectionHandler.ttcn at 791 PS3, Line 791: RSL_Message Same here, I would rather store 'RSL_IE_List' instead of the full message. But I see that f_rsl_find_ie() wants exactly an 'RSL_Message' as the argument, so this one can be kept as-is. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/3/bsc/MSC_ConnectionHandler.ttcn at 1246 PS3, Line 1246: var RSL_IE_Body chan_mode_ie; This is a very imperative/C-style approach. Given that the ordering of IE in RSL messages is fixed and defined by 3GPP, I think you could just match the 'RSL_IE_List' against a template. If something does not math, TITAN will reflect this in the logs (TTCN_MATCHING). -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf4efaed986de0bbd2b663313e837352cc139f0f Gerrit-Change-Number: 23808 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 02:37: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 Fri Apr 30 02:42:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 02:42:31 +0000 Subject: Change in osmo-bsc[master]: gsm_lchan_name_compute with ctx In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23938 ) Change subject: gsm_lchan_name_compute with ctx ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb922605c15242a2cdc7c34668c845a179a15660 Gerrit-Change-Number: 23938 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 02:42:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 02:42:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 02:42:52 +0000 Subject: Change in osmo-bsc[master]: log: drop duplicate logging in ts_setup_lchans() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23939 ) Change subject: log: drop duplicate logging in ts_setup_lchans() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I569229328229047d399033d1483d09d323826692 Gerrit-Change-Number: 23939 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 02:42:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 02:43:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 02:43:14 +0000 Subject: Change in osmo-bsc[master]: comment: tweak pchan_subslots() description In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23940 ) Change subject: comment: tweak pchan_subslots() description ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4d3ca6efc7b4fadd6711ae80502027cec1b7b84e Gerrit-Change-Number: 23940 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 02:43: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 Apr 30 02:43:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 02:43:40 +0000 Subject: Change in osmo-bsc[master]: lchan_release(): do not release UNUSED lchan In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23941 ) Change subject: lchan_release(): do not release UNUSED lchan ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6e9faf682d1668388d5470419110408a098b9900 Gerrit-Change-Number: 23941 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 02:43: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 Apr 30 02:44:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 02:44:50 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: mode modify: fix missing timeouts and error transitions In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23942 ) Change subject: lchan_fsm: mode modify: fix missing timeouts and error transitions ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6364cfb78f661f5f7473dcec488e361e6a1dc9e4 Gerrit-Change-Number: 23942 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 02:44: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 Apr 30 02:54:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 02:54:39 +0000 Subject: Change in osmo-bsc[master]: lchan and assignment FSMs: make Channel Mode Modify more sane In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23943 ) Change subject: lchan and assignment FSMs: make Channel Mode Modify more sane ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23943/1/src/osmo-bsc/lchan_fsm.c File src/osmo-bsc/lchan_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23943/1/src/osmo-bsc/lchan_fsm.c at 413 PS1, Line 413: goto abort; Why don't you just call lchan_on_mode_modify_failure() here? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4986844f839b1c9672c61d916eb3d33d0042d747 Gerrit-Change-Number: 23943 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 02:54: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 Apr 30 05:48:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 05:48:06 +0000 Subject: Change in osmo-pcu[master]: manual: remove revhistory, as we don't maintain it manually anyyway In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23930 ) Change subject: manual: remove revhistory, as we don't maintain it manually anyyway ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibbe08cac143f4bff6192125940ef190cc943d307 Gerrit-Change-Number: 23930 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 05:48: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 Apr 30 05:48:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 05:48:10 +0000 Subject: Change in osmo-pcu[master]: manual: remove revhistory, as we don't maintain it manually anyyway In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23930 ) Change subject: manual: remove revhistory, as we don't maintain it manually anyyway ...................................................................... manual: remove revhistory, as we don't maintain it manually anyyway Change-Id: Ibbe08cac143f4bff6192125940ef190cc943d307 --- M doc/manuals/osmopcu-gb-docinfo.xml M doc/manuals/osmopcu-usermanual-docinfo.xml M doc/manuals/osmopcu-vty-reference.xml 3 files changed, 0 insertions(+), 31 deletions(-) Approvals: Jenkins Builder: Verified fixeria: 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 diff --git a/doc/manuals/osmopcu-gb-docinfo.xml b/doc/manuals/osmopcu-gb-docinfo.xml index 23ec3d1..782fb2f 100644 --- a/doc/manuals/osmopcu-gb-docinfo.xml +++ b/doc/manuals/osmopcu-gb-docinfo.xml @@ -1,15 +1,3 @@ - - - 0 - February 2016 - HW, MS - - Initial version, reflecting OsmoPCU master branch as on 2016-Mar-02 - (commit 22d7e75e1f160e5337140d9f3dcb2679b621b646). - - - - Max diff --git a/doc/manuals/osmopcu-usermanual-docinfo.xml b/doc/manuals/osmopcu-usermanual-docinfo.xml index ecc6742..78c8030 100644 --- a/doc/manuals/osmopcu-usermanual-docinfo.xml +++ b/doc/manuals/osmopcu-usermanual-docinfo.xml @@ -1,14 +1,3 @@ - - - 1 - February 13, 2016 - HW - - Initial version. - - - - Harald diff --git a/doc/manuals/osmopcu-vty-reference.xml b/doc/manuals/osmopcu-vty-reference.xml index f8c39ec..1ce9d23 100644 --- a/doc/manuals/osmopcu-vty-reference.xml +++ b/doc/manuals/osmopcu-vty-reference.xml @@ -11,14 +11,6 @@ - - - v1 - 5th March 2014 - hf - Initial version for 0.2-307 - - OsmoPCU VTY Reference -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibbe08cac143f4bff6192125940ef190cc943d307 Gerrit-Change-Number: 23930 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 05:48:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 05:48:11 +0000 Subject: Change in osmo-pcu[master]: manual: Update copyright years In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23931 ) Change subject: manual: Update copyright years ...................................................................... manual: Update copyright years Change-Id: Ia0dde7100dd90c6ad6279efbaf02b9bd3f868635 --- M doc/manuals/osmopcu-gb-docinfo.xml M doc/manuals/osmopcu-usermanual-docinfo.xml M doc/manuals/osmopcu-vty-reference.xml 3 files changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/doc/manuals/osmopcu-gb-docinfo.xml b/doc/manuals/osmopcu-gb-docinfo.xml index 782fb2f..175be1c 100644 --- a/doc/manuals/osmopcu-gb-docinfo.xml +++ b/doc/manuals/osmopcu-gb-docinfo.xml @@ -24,7 +24,7 @@ - 2015-2016 + 2015-2021 sysmocom - s.f.m.c. GmbH diff --git a/doc/manuals/osmopcu-usermanual-docinfo.xml b/doc/manuals/osmopcu-usermanual-docinfo.xml index 78c8030..b7f9570 100644 --- a/doc/manuals/osmopcu-usermanual-docinfo.xml +++ b/doc/manuals/osmopcu-usermanual-docinfo.xml @@ -13,7 +13,7 @@ - 2013-2016 + 2013-2021 sysmocom - s.f.m.c. GmbH diff --git a/doc/manuals/osmopcu-vty-reference.xml b/doc/manuals/osmopcu-vty-reference.xml index 1ce9d23..9b1154a 100644 --- a/doc/manuals/osmopcu-vty-reference.xml +++ b/doc/manuals/osmopcu-vty-reference.xml @@ -15,7 +15,7 @@ OsmoPCU VTY Reference - 2014 + 2014-2021 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0dde7100dd90c6ad6279efbaf02b9bd3f868635 Gerrit-Change-Number: 23931 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 05:48:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 05:48:17 +0000 Subject: Change in osmo-pcu[master]: vty: Add configuration for Gb DSCP and socket priority In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23988 ) Change subject: vty: Add configuration for Gb DSCP and socket priority ...................................................................... vty: Add configuration for Gb DSCP and socket priority While libosmogb / ns2 supports that natively in the VTY, the PCU doesn't want to use the complexities of the full NS2 vty. Change-Id: I7bfbad46582e65e5ad2ac0cc66545538bc632df8 Related: SYS#5427 --- M TODO-RELEASE M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c 5 files changed, 41 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index 716f713..5b2720b 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,3 +8,4 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line libosmocore struct bssgp_bvc_ctx->is_sgsn field used available only on libosmocore >1.5.1 +libosmocore gprs_ns2_ip_bind_set_priority function used available only on libosmocore >1.5.1 diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 06e1814..f6114de 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -1060,6 +1060,11 @@ continue; } } + + if (the_pcu->vty.ns_ip_dscp != -1) + gprs_ns2_ip_bind_set_dscp(bind[i], the_pcu->vty.ns_ip_dscp); + if (the_pcu->vty.ns_priority != -1) + gprs_ns2_ip_bind_set_priority(bind[i], the_pcu->vty.ns_priority); } binds |= 1 << i; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 3875e09..df439ef 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -105,6 +105,8 @@ pcu->vty.mcs_lqual_ranges[8].low = 23; pcu->vty.mcs_lqual_ranges[8].high = 256; pcu->vty.ns_dialect = GPRS_NS2_DIALECT_IPACCESS; + pcu->vty.ns_ip_dscp = -1; + pcu->vty.ns_priority = -1; /* TODO: increase them when CRBB decoding is implemented */ pcu->vty.ws_base = 64; pcu->vty.ws_pdch = 0; diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index a17144c..86fe8eb 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -102,6 +102,8 @@ struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; enum gprs_ns2_dialect ns_dialect; /* Are we talking Gb with IP-SNS (true) or classic Gb? */ + int ns_ip_dscp; + int ns_priority; uint16_t ws_base; uint16_t ws_pdch; /* increase WS by this value per PDCH */ uint16_t force_llc_lifetime; /* overrides lifetime from SGSN */ diff --git a/src/pcu_vty.c b/src/pcu_vty.c index abc3d8d..1ca6376 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -251,6 +251,11 @@ else vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE); + if (the_pcu->vty.ns_ip_dscp != -1) + vty_out(vty, " gb ip-dscp %d%s", the_pcu->vty.ns_ip_dscp, VTY_NEWLINE); + if (the_pcu->vty.ns_priority != -1) + vty_out(vty, " gb socket-priority %d%s", the_pcu->vty.ns_priority, VTY_NEWLINE); + if (the_pcu->vty.neigh_ctrl_addr) { vty_out(vty, " neighbor resolution %s %u%s", the_pcu->vty.neigh_ctrl_addr, the_pcu->vty.neigh_ctrl_port, VTY_NEWLINE); @@ -1031,6 +1036,30 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_pcu_gb_ip_dscp, + cfg_pcu_gb_ip_dscp_cmd, + X(PCU_VTY_ATTR_NS_RESET), + "gb ip-dscp <0-63>", + "Configure Gb interface\n" + "Set IP DSCP value for outbound packets\n" + "IP DSCP value to use\n") +{ + the_pcu->vty.ns_ip_dscp = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_pcu_gb_priority, + cfg_pcu_gb_priority_cmd, + X(PCU_VTY_ATTR_NS_RESET), + "gb socket-priority <0-255>", + "Configure Gb interface\n" + "Set socket priority value for outbound packets\n" + "Socket priority value to use (>6 requires CAP_NET_ADMIN)") +{ + the_pcu->vty.ns_priority = atoi(argv[0]); + return CMD_SUCCESS; +} + DEFUN(cfg_neighbor_resolution, cfg_neighbor_resolution_cmd, "neighbor resolution " VTY_IPV46_CMD " [<0-65535>]", "Manage local and remote-BSS neighbor cells\n" @@ -1265,6 +1294,8 @@ install_element(PCU_NODE, &cfg_pcu_no_gsmtap_categ_cmd); install_element(PCU_NODE, &cfg_pcu_sock_cmd); install_element(PCU_NODE, &cfg_pcu_gb_dialect_cmd); + install_element(PCU_NODE, &cfg_pcu_gb_ip_dscp_cmd); + install_element(PCU_NODE, &cfg_pcu_gb_priority_cmd); install_element(PCU_NODE, &cfg_neighbor_resolution_cmd); install_element(PCU_NODE, &cfg_pcu_timer_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7bfbad46582e65e5ad2ac0cc66545538bc632df8 Gerrit-Change-Number: 23988 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 Fri Apr 30 05:50:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 05:50:29 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23927/5/doc/manuals/chapters/qos-example.adoc File doc/manuals/chapters/qos-example.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/23927/5/doc/manuals/chapters/qos-example.adoc at 13 PS5, Line 13: A-bis RTP > This looks wrong to me, shouldn't it be just 'RTP' without 'A-bis'? No, it is RTP on the A-bis interface. Anything between BTS and BSC (or it's colocated MGW) is Abis. Just like the TRAU frames on E1 were part of Abis. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 05:50: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 Fri Apr 30 05:50:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 05:50:42 +0000 Subject: Change in osmo-bts[master]: manual: Remove manual revision history; we don't use it anywawy In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23959 ) Change subject: manual: Remove manual revision history; we don't use it anywawy ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I25c4d8b694756c6eed81c9b552a389ca5bd04ea7 Gerrit-Change-Number: 23959 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 05:50:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 06:24:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 06:24:32 +0000 Subject: Change in osmo-bts[master]: Introduce ability to set socket priority of RTP sockets 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-bts/+/23987 to look at the new patch set (#3). Change subject: Introduce ability to set socket priority of RTP sockets ...................................................................... Introduce ability to set socket priority of RTP sockets This significantly simplifies setups in which not only the IP DSCP but also the IEEE 802.1Q PCP is to be set for RTP packets. Depends: libosmo-abis.git I52c08f4b2a46981d002ef0c21e6549445d845a6e Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Related: SYS#5427 --- M TODO-RELEASE M include/osmo-bts/bts.h M src/common/bts.c M src/common/rsl.c M src/common/vty.c 5 files changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/87/23987/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Gerrit-Change-Number: 23987 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 06:25:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 06:25:22 +0000 Subject: Change in osmo-bts[master]: Introduce ability to set socket priority of RTP sockets In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23987 ) Change subject: Introduce ability to set socket priority of RTP sockets ...................................................................... Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23987/2/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/23987/2/src/common/vty.c at 605 PS2, Line 605: alue > typo: value Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Gerrit-Change-Number: 23987 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 06:25:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 09:44:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 09:44:52 +0000 Subject: Change in osmo-bts[master]: Introduce ability to set socket priority of RTP sockets In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23987 ) Change subject: Introduce ability to set socket priority of RTP sockets ...................................................................... Introduce ability to set socket priority of RTP sockets This significantly simplifies setups in which not only the IP DSCP but also the IEEE 802.1Q PCP is to be set for RTP packets. Depends: libosmo-abis.git I52c08f4b2a46981d002ef0c21e6549445d845a6e Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Related: SYS#5427 --- M TODO-RELEASE M include/osmo-bts/bts.h M src/common/bts.c M src/common/rsl.c M src/common/vty.c 5 files changed, 26 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index e69de29..9b000e3 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -0,0 +1 @@ +update libosmo-abis dependency to > 1.1.1 for osmo_rtp_socket_set_priority() diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index be0222d..7a1085e 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -297,6 +297,7 @@ uint16_t rtp_port_range_end; uint16_t rtp_port_range_next; int rtp_ip_dscp; + int rtp_priority; struct { uint8_t ciphers; /* flags A5/1==0x1, A5/2==0x2, A5/3==0x4 */ diff --git a/src/common/bts.c b/src/common/bts.c index 06a5ccb..3860a87 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -329,6 +329,7 @@ bts->rtp_port_range_end = 17407; bts->rtp_port_range_next = bts->rtp_port_range_start; bts->rtp_ip_dscp = -1; + bts->rtp_priority = -1; /* Default (fall-back) MS/BS Power control parameters */ bts->bs_dpc_params = power_ctrl_params_def; diff --git a/src/common/rsl.c b/src/common/rsl.c index 963e6ba..cd3fda5 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -2433,6 +2433,11 @@ LOGP(DRSL, LOGL_ERROR, "failed to set DSCP=%i: %s\n", bts->rtp_ip_dscp, strerror(errno)); } + if (bts->rtp_priority != -1) { + if (osmo_rtp_socket_set_priority(rs, bts->rtp_priority)) + LOGP(DRSL, LOGL_ERROR, "failed to set socket priority %d: %s\n", + bts->rtp_priority, strerror(errno)); + } return 0; } diff --git a/src/common/vty.c b/src/common/vty.c index 45ee32c..626cd60 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -300,6 +300,8 @@ bts->rtp_port_range_end, VTY_NEWLINE); if (bts->rtp_ip_dscp != -1) vty_out(vty, " rtp ip-dscp %i%s", bts->rtp_ip_dscp, VTY_NEWLINE); + if (bts->rtp_priority != -1) + vty_out(vty, " rtp socket-priority %i%s", bts->rtp_priority, VTY_NEWLINE); vty_out(vty, " paging queue-size %u%s", paging_get_queue_max(bts->paging_state), VTY_NEWLINE); vty_out(vty, " paging lifetime %u%s", paging_get_lifetime(bts->paging_state), @@ -595,6 +597,21 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_bts_rtp_priority, + cfg_bts_rtp_priority_cmd, + X(BTS_VTY_ATTR_NEW_LCHAN), + "rtp socket-priority <0-255>", + RTP_STR "Specify socket priority for RTP/IP packets\n" + "The socket priority value (> 6 requires CAP_NET_ADMIN)\n") +{ + struct gsm_bts *bts = vty->index; + int prio = atoi(argv[0]); + + bts->rtp_priority = prio; + + return CMD_SUCCESS; +} + #define PAG_STR "Paging related parameters\n" DEFUN_ATTR(cfg_bts_paging_queue_size, @@ -2312,6 +2329,7 @@ install_element(BTS_NODE, &cfg_bts_rtp_jitbuf_cmd); install_element(BTS_NODE, &cfg_bts_rtp_port_range_cmd); install_element(BTS_NODE, &cfg_bts_rtp_ip_dscp_cmd); + install_element(BTS_NODE, &cfg_bts_rtp_priority_cmd); install_element(BTS_NODE, &cfg_bts_band_cmd); install_element(BTS_NODE, &cfg_description_cmd); install_element(BTS_NODE, &cfg_no_description_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Gerrit-Change-Number: 23987 Gerrit-PatchSet: 3 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 Fri Apr 30 09:45:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 09:45:00 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... Removed Code-Review-1 by fixeria -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 09:45:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 09:45:04 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 09: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 Fri Apr 30 09:48:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 09:48:51 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 09:48: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 Fri Apr 30 10:07:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 10:07:28 +0000 Subject: Change in libosmo-sccp[master]: don't do explicit NULL checks before calling talloc_free() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23989 ) Change subject: don't do explicit NULL checks before calling talloc_free() ...................................................................... don't do explicit NULL checks before calling talloc_free() Change-Id: I97a072ca32820ad34785ac6a54b00ed51b519305 --- M src/osmo_ss7.c 1 file changed, 2 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/89/23989/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index de072b4..6d68290 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1734,8 +1734,7 @@ struct osmo_ss7_asp *asp = osmo_stream_cli_get_data(cli); /* update the socket name */ - if (asp->sock_name) - talloc_free(asp->sock_name); + talloc_free(asp->sock_name); asp->sock_name = osmo_sock_get_name(asp, ofd->fd); LOGPASP(asp, DLSS7, LOGL_INFO, "Client connected %s\n", asp->sock_name); @@ -1987,8 +1986,7 @@ asp->server = srv; asp->xua_server = oxs; /* update the ASP socket name */ - if (asp->sock_name) - talloc_free(asp->sock_name); + talloc_free(asp->sock_name); asp->sock_name = talloc_reparent(link, asp, sock_name); /* make sure the conn_cb() is called with the asp as private * data */ -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I97a072ca32820ad34785ac6a54b00ed51b519305 Gerrit-Change-Number: 23989 Gerrit-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 Apr 30 10:07:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 10:07:29 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: free the sock_name string once an ASP socket is closed References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23990 ) Change subject: osmo_ss7: free the sock_name string once an ASP socket is closed ...................................................................... osmo_ss7: free the sock_name string once an ASP socket is closed It's confusing to keep around a string representation of what peer the socket was previously connected to. Change-Id: I00d47fc355bfe24915653767ad75c1f491c060d5 --- M src/osmo_ss7.c 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/90/23990/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 6d68290..617f6bb 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1759,6 +1759,10 @@ osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_SCTP_COMM_DOWN_IND, asp); /* send M-SCTP_RELEASE.ind to XUA Layer Manager */ xua_asp_send_xlm_prim_simple(asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_INDICATION); + + /* no connection means no socket means no socket name */ + talloc_free(asp->sock_name); + asp->sock_name = NULL; } static void xua_cli_close_and_reconnect(struct osmo_stream_cli *cli) @@ -1892,6 +1896,10 @@ osmo_ss7_asp_destroy(asp); } + /* no connection means no socket means no socket name */ + talloc_free(asp->sock_name); + asp->sock_name = NULL; + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I00d47fc355bfe24915653767ad75c1f491c060d5 Gerrit-Change-Number: 23990 Gerrit-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 Apr 30 10:16:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 10:16:15 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement TRXDv2 protocol support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23833 ) Change subject: osmo-bts-trx: implement TRXDv2 protocol support ...................................................................... Patch Set 7: (6 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/include/osmo-bts/scheduler.h File include/osmo-bts/scheduler.h: https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/include/osmo-bts/scheduler.h at 256 PS7, Line 256: uint8_t _pdu_num; /*!< Number of this PDU within the datagram */ you mean the PDU position? https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 726 PS7, Line 726: #define TRX_UL_V2HDR_LEN 1 + 1 + 1 + 1 + 2 + 2 missing () https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 852 PS7, Line 852: bi->rssi = -(int8_t)buf[3]; are you sure this works correctly? Example uint8_t buf[3] = 250: Then, (int8_t)buf[3] gives a negative value (because it's more than 128), and applying "-" to it makes it positive again. https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 987 PS7, Line 987: loop: do { https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 1046 PS7, Line 1046: if (bi.flags & TRX_BI_F_BATCH_IND) { buf_len -= bi.burst_len; buf += bi.burst_len; bi._pdu_num++; } while (bi.flags & TRX_BI_F_BATCH_IND) https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 1114 PS7, Line 1114: LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, not sure if we want to have this log here, looks really verbose. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3532a6693bb335043ec390049138308991083e66 Gerrit-Change-Number: 23833 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 10:16:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 10:17:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 10:17:33 +0000 Subject: Change in osmo-pcu[master]: manual: Include QoS chapter and add osmo-pcu specific example In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23929 ) Change subject: manual: Include QoS chapter and add osmo-pcu specific example ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Gerrit-Change-Number: 23929 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 10: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 Fri Apr 30 10:19:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 10:19:27 +0000 Subject: Change in libosmo-sccp[master]: ss7_vty: Print actual connected port number in case of IPA server References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23991 ) Change subject: ss7_vty: Print actual connected port number in case of IPA server ...................................................................... ss7_vty: Print actual connected port number in case of IPA server In IPA, unlike M3UA/SUA, we often have clients connecting from random/unknown ports. In such cases, the configured remote port is '0'. Let's use getsockname to determine the actual source ip/port of the connected client (if any) during "show ... asp" Change-Id: I1327a46d0b74c572d2ad828a958090af53b9fa37 Closes: SYS#5429 --- M src/osmo_ss7_vty.c 1 file changed, 11 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/91/23991/1 diff --git a/src/osmo_ss7_vty.c b/src/osmo_ss7_vty.c index b3aa9ef..4db3c53 100644 --- a/src/osmo_ss7_vty.c +++ b/src/osmo_ss7_vty.c @@ -37,6 +37,8 @@ #include #include +#include + #include #include @@ -765,7 +767,15 @@ vty_out(vty, "------------ ------------ ------------- ---- ----------------------- ----------%s", VTY_NEWLINE); llist_for_each_entry(asp, &inst->asp_list, list) { - osmo_ss7_asp_peer_snprintf(buf, sizeof(buf), &asp->cfg.remote); + if (asp->cfg.proto == OSMO_SS7_ASP_PROT_IPA && asp->cfg.remote.port == 0 && asp->server) { + struct osmo_fd *ofd = osmo_stream_srv_get_ofd(asp->server); + char hostbuf[64]; + char portbuf[16]; + osmo_sock_get_ip_and_port(ofd->fd, hostbuf, sizeof(hostbuf), + portbuf, sizeof(portbuf), false); + snprintf(buf, sizeof(buf), "%s:%s", hostbuf, portbuf); + } else + osmo_ss7_asp_peer_snprintf(buf, sizeof(buf), &asp->cfg.remote); vty_out(vty, "%-12s %-12s %-13s %-4s %-14s %-10s%s", asp->cfg.name, "?", asp->fi? osmo_fsm_inst_state_name(asp->fi) : "uninitialized", -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I1327a46d0b74c572d2ad828a958090af53b9fa37 Gerrit-Change-Number: 23991 Gerrit-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 Apr 30 10:19:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 10:19:31 +0000 Subject: Change in libosmo-sccp[master]: don't do explicit NULL checks before calling talloc_free() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23989 ) Change subject: don't do explicit NULL checks before calling talloc_free() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I97a072ca32820ad34785ac6a54b00ed51b519305 Gerrit-Change-Number: 23989 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 10:19:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 10:20:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 10:20:00 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: free the sock_name string once an ASP socket is closed In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23990 ) Change subject: osmo_ss7: free the sock_name string once an ASP socket is closed ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I00d47fc355bfe24915653767ad75c1f491c060d5 Gerrit-Change-Number: 23990 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 10:20:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 10:22:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 10:22:02 +0000 Subject: Change in libosmo-sccp[master]: don't do explicit NULL checks before calling talloc_free() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23989 ) Change subject: don't do explicit NULL checks before calling talloc_free() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I97a072ca32820ad34785ac6a54b00ed51b519305 Gerrit-Change-Number: 23989 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 10:22:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 10:22:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 10:22:23 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: free the sock_name string once an ASP socket is closed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23990 ) Change subject: osmo_ss7: free the sock_name string once an ASP socket is closed ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I00d47fc355bfe24915653767ad75c1f491c060d5 Gerrit-Change-Number: 23990 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 10:22: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 Apr 30 10:22:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 10:22:25 +0000 Subject: Change in libosmo-sccp[master]: don't do explicit NULL checks before calling talloc_free() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23989 ) Change subject: don't do explicit NULL checks before calling talloc_free() ...................................................................... don't do explicit NULL checks before calling talloc_free() Change-Id: I97a072ca32820ad34785ac6a54b00ed51b519305 --- M src/osmo_ss7.c 1 file changed, 2 insertions(+), 4 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_ss7.c b/src/osmo_ss7.c index de072b4..6d68290 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1734,8 +1734,7 @@ struct osmo_ss7_asp *asp = osmo_stream_cli_get_data(cli); /* update the socket name */ - if (asp->sock_name) - talloc_free(asp->sock_name); + talloc_free(asp->sock_name); asp->sock_name = osmo_sock_get_name(asp, ofd->fd); LOGPASP(asp, DLSS7, LOGL_INFO, "Client connected %s\n", asp->sock_name); @@ -1987,8 +1986,7 @@ asp->server = srv; asp->xua_server = oxs; /* update the ASP socket name */ - if (asp->sock_name) - talloc_free(asp->sock_name); + talloc_free(asp->sock_name); asp->sock_name = talloc_reparent(link, asp, sock_name); /* make sure the conn_cb() is called with the asp as private * data */ -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I97a072ca32820ad34785ac6a54b00ed51b519305 Gerrit-Change-Number: 23989 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 10:22:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 10:22:25 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: free the sock_name string once an ASP socket is closed In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23990 ) Change subject: osmo_ss7: free the sock_name string once an ASP socket is closed ...................................................................... osmo_ss7: free the sock_name string once an ASP socket is closed It's confusing to keep around a string representation of what peer the socket was previously connected to. Change-Id: I00d47fc355bfe24915653767ad75c1f491c060d5 --- M src/osmo_ss7.c 1 file changed, 8 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 6d68290..617f6bb 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1759,6 +1759,10 @@ osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_SCTP_COMM_DOWN_IND, asp); /* send M-SCTP_RELEASE.ind to XUA Layer Manager */ xua_asp_send_xlm_prim_simple(asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_INDICATION); + + /* no connection means no socket means no socket name */ + talloc_free(asp->sock_name); + asp->sock_name = NULL; } static void xua_cli_close_and_reconnect(struct osmo_stream_cli *cli) @@ -1892,6 +1896,10 @@ osmo_ss7_asp_destroy(asp); } + /* no connection means no socket means no socket name */ + talloc_free(asp->sock_name); + asp->sock_name = NULL; + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I00d47fc355bfe24915653767ad75c1f491c060d5 Gerrit-Change-Number: 23990 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 noreply at opensuse.org Fri Apr 30 10:23:35 2021 From: noreply at opensuse.org (OBS Notification) Date: Fri, 30 Apr 2021 10:23:35 +0000 Subject: Build failure of network:osmocom:nightly/libsmpp34 in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <608bdab122fce_6ab22aae945685fc775548@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: [ 0s] [ 0s] armbuild04 started "build libsmpp34_1.14.1.202104300026.dsc" at Fri Apr 30 10:23:17 UTC 2021. [ 0s] [ 0s] Building libsmpp34 for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 'fb49f7b5709300f2e9282a9e8ed13d1e' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/libsmpp34_1.14.1.202104300026.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/libsmpp34_1.14.1.202104300026.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/libsmpp34_1.14.1.202104300026.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build libsmpp34_1.14.1.202104300026.dsc" at Fri Apr 30 10:23:18 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Apr 30 11:35:48 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Fri, 30 Apr 2021 11:35:48 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter 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-bsc/+/23234 to look at the new patch set (#5). Change subject: stats: add BTS uptime counter ...................................................................... stats: add BTS uptime counter Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/e1_config.c 6 files changed, 59 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/34/23234/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 5 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 11:50:18 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Fri, 30 Apr 2021 11:50:18 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 4: (3 comments) Hi Pepsin, Thanks for the review. I've addressed the first two items. The third has hopefully been explained better now but I'm open to suggestions. Regards, -Michael https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 571 PS4, Line 571: if (clock_gettime(CLOCK_MONOTONIC, &tp) != 0) { > osmo_clock_gettime Oops, sorry. I missed this from a previous comment. Fixed now. https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 580 PS4, Line 580: if (uptime_seconds < 0) { > This cannot happen with a monotonic clock? Unless you run for crazy amount of years without reboot w [?] True. My consideration was that there may be scheduling jitter between reading uptime and setting the last_uptime_read state. I forgot we're running in a single thread though and this will never happen. Removed. https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 586 PS4, Line 586: int downtime_seconds = BTS_DOWNTIME_SAMPLE_INTERVAL - uptime_seconds; > There's something here I'm not really following. [?] Yes, hopefully we always see very nearly zero downtime. :-) The last_uptime_read variable is also updated outside of this loop when a connection is reestablished. Let's say that happens half-way between calls to this timer loop. Now instead of seeing 10 seconds of elapsed uptime, we will only see 5 seconds of "new" uptime. This gives us 5 seconds which were interrupted in some way, signaling downtime. Testing this locally by disrupting the BTS<->BSC connection results in seemingly accurate downtime numbers. It could perhaps be improved but I'm satisfied with the result so far. Suggestions welcome. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 4 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Fri, 30 Apr 2021 11:50:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 11:53:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 11:53:43 +0000 Subject: Change in osmo-pcu[master]: bts: constify arg in func bts_ms_store() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23992 ) Change subject: bts: constify arg in func bts_ms_store() ...................................................................... bts: constify arg in func bts_ms_store() Change-Id: I4cc8c4fc075cdd07e689511df8f1c267e5360014 --- M src/bts.cpp M src/bts.h 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/92/23992/1 diff --git a/src/bts.cpp b/src/bts.cpp index bcf4d1b..4fe529e 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -1066,7 +1066,7 @@ return ms; } -struct GprsMsStorage *bts_ms_store(struct gprs_rlcmac_bts *bts) +struct GprsMsStorage *bts_ms_store(const struct gprs_rlcmac_bts *bts) { return bts->ms_store; } diff --git a/src/bts.h b/src/bts.h index a8b4d7b..ea44fb7 100644 --- a/src/bts.h +++ b/src/bts.h @@ -301,7 +301,7 @@ enum pcu_gsmtap_category categ, uint8_t channel, const struct rach_ind_params *rip); -struct GprsMsStorage *bts_ms_store(struct gprs_rlcmac_bts *bts); +struct GprsMsStorage *bts_ms_store(const struct gprs_rlcmac_bts *bts); struct GprsMs *bts_ms_by_tlli(struct gprs_rlcmac_bts *bts, uint32_t tlli, uint32_t old_tlli); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4cc8c4fc075cdd07e689511df8f1c267e5360014 Gerrit-Change-Number: 23992 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 Apr 30 12:16:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 12:16:43 +0000 Subject: Change in osmo-pcu[master]: sched: Rename func to describe its used only for RLCMAC CTRL blocks References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23993 ) Change subject: sched: Rename func to describe its used only for RLCMAC CTRL blocks ...................................................................... sched: Rename func to describe its used only for RLCMAC CTRL blocks Change-Id: I20e15047af2aac4d51e1dae263ab16e479bb0c46 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/93/23993/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 85c9be8..bb65ae1 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -41,7 +41,7 @@ struct gprs_rlcmac_ul_tbf *ul_ack; }; -static void get_tbf_candidates(const struct gprs_rlcmac_bts *bts, uint8_t trx, +static void get_ctrl_msg_tbf_candidates(const struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, struct tbf_sched_candidates *tbf_cand) { struct gprs_rlcmac_ul_tbf *ul_tbf; @@ -483,7 +483,7 @@ if (usf_tbf && req_mcs_kind == EGPRS && ms_mode(usf_tbf->ms()) != EGPRS) req_mcs_kind = EGPRS_GMSK; - get_tbf_candidates(bts, trx, ts, &tbf_cand); + get_ctrl_msg_tbf_candidates(bts, trx, ts, &tbf_cand); /* Prio 1: select control message */ if ((msg = sched_select_ctrl_msg(pdch, fn, block_nr, &tbf_cand))) { -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I20e15047af2aac4d51e1dae263ab16e479bb0c46 Gerrit-Change-Number: 23993 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 Apr 30 12:16:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 12:16:44 +0000 Subject: Change in osmo-pcu[master]: sched: Clean up param passing and improve logging References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23994 ) Change subject: sched: Clean up param passing and improve logging ...................................................................... sched: Clean up param passing and improve logging Change-Id: If137a2aaac7744e60564ca833a1b5564ed7d93bb --- M src/gprs_rlcmac_sched.cpp M tests/tbf/TbfTest.err 2 files changed, 48 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/94/23994/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index bb65ae1..cfecb3b 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -41,8 +41,9 @@ struct gprs_rlcmac_ul_tbf *ul_ack; }; -static void get_ctrl_msg_tbf_candidates(const struct gprs_rlcmac_bts *bts, uint8_t trx, - uint8_t ts, struct tbf_sched_candidates *tbf_cand) +static void get_ctrl_msg_tbf_candidates(struct gprs_rlcmac_bts *bts, + struct gprs_rlcmac_pdch *pdch, + struct tbf_sched_candidates *tbf_cand) { struct gprs_rlcmac_ul_tbf *ul_tbf; struct gprs_rlcmac_dl_tbf *dl_tbf; @@ -52,7 +53,7 @@ ul_tbf = as_ul_tbf((struct gprs_rlcmac_tbf *)pos->entry); OSMO_ASSERT(ul_tbf); /* this trx, this ts */ - if (ul_tbf->trx->trx_no != trx || !ul_tbf->is_control_ts(ts)) + if (ul_tbf->trx->trx_no != pdch->trx->trx_no || !ul_tbf->is_control_ts(pdch->ts_no)) continue; if (ul_tbf->ul_ack_state_is(GPRS_RLCMAC_UL_ACK_SEND_ACK)) tbf_cand->ul_ack = ul_tbf; @@ -71,7 +72,7 @@ dl_tbf = as_dl_tbf((struct gprs_rlcmac_tbf *)pos->entry); OSMO_ASSERT(dl_tbf); /* this trx, this ts */ - if (dl_tbf->trx->trx_no != trx || !dl_tbf->is_control_ts(ts)) + if (dl_tbf->trx->trx_no != pdch->trx->trx_no || !dl_tbf->is_control_ts(pdch->ts_no)) continue; if (dl_tbf->dl_ass_state_is(GPRS_RLCMAC_DL_ASS_SEND_ASS)) tbf_cand->dl_ass = dl_tbf; @@ -84,8 +85,8 @@ } } -static struct gprs_rlcmac_ul_tbf *sched_select_uplink(uint8_t trx, uint8_t ts, uint32_t fn, - uint8_t block_nr, struct gprs_rlcmac_pdch *pdch, bool require_gprs_only) +static struct gprs_rlcmac_ul_tbf *sched_select_uplink(struct gprs_rlcmac_pdch *pdch, uint32_t fn, + uint8_t block_nr, bool require_gprs_only) { struct gprs_rlcmac_ul_tbf *tbf; uint8_t i, tfi; @@ -108,10 +109,10 @@ continue; /* use this USF */ - LOGP(DRLCMACSCHED, LOGL_DEBUG, "Received RTS for PDCH: TRX=%d " - "TS=%d FN=%d block_nr=%d scheduling USF=%d for " - "required uplink resource of UL TFI=%d\n", trx, ts, fn, - block_nr, tbf->m_usf[ts], tfi); + LOGPDCH(pdch, DRLCMACSCHED, LOGL_DEBUG, "FN=%" PRIu32 " " + "Received RTS block_nr=%d, scheduling USF=%d for required " + "uplink resource of UL TFI=%d\n", + fn, block_nr, tbf->m_usf[pdch->ts_no], tfi); /* next TBF to handle resource is the next one */ pdch->next_ul_tfi = (tfi + 1) & 31; return tbf; @@ -475,7 +476,7 @@ if (poll_tbf->direction == GPRS_RLCMAC_UL_TBF && as_ul_tbf(poll_tbf)->m_usf[ts] != USF_INVALID) usf_tbf = as_ul_tbf(poll_tbf); /* else, search for uplink tbf */ - } else if ((usf_tbf = sched_select_uplink(trx, ts, fn, block_nr, pdch, require_gprs_only))) { + } else if ((usf_tbf = sched_select_uplink(pdch, fn, block_nr, require_gprs_only))) { pdch_ulc_reserve_tbf_usf(pdch->ulc, poll_fn, usf_tbf); } /* If MS selected for USF is GPRS-only, then it will only be @@ -483,7 +484,7 @@ if (usf_tbf && req_mcs_kind == EGPRS && ms_mode(usf_tbf->ms()) != EGPRS) req_mcs_kind = EGPRS_GMSK; - get_ctrl_msg_tbf_candidates(bts, trx, ts, &tbf_cand); + get_ctrl_msg_tbf_candidates(bts, pdch, &tbf_cand); /* Prio 1: select control message */ if ((msg = sched_select_ctrl_msg(pdch, fn, block_nr, &tbf_cand))) { diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index be7caf0..f66f5fd 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1667,7 +1667,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=2654275 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) appending 10 bytes Old MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 1 -Received RTS for PDCH: TRX=0 TS=7 FN=2654275 block_nr=9 scheduling USF=0 for required uplink resource of UL TFI=0 +PDCH(bts=0,trx=0,ts=7) FN=2654275 Received RTS block_nr=9, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654275 + 13 = 2654288 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) +++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ @@ -1692,7 +1692,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654279 Received RTS block_nr=10, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654279 Scheduling data message at RTS for DL TFI=0 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 @@ -1716,7 +1716,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654292, TS=7 (curr FN 2654292) TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) N3105 0 => 1 (< MAX 8) -Received RTS for PDCH: TRX=0 TS=7 FN=2654296 block_nr=2 scheduling USF=0 for required uplink resource of UL TFI=0 +PDCH(bts=0,trx=0,ts=7) FN=2654296 Received RTS block_nr=2, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654296 Scheduling data message at RTS for DL TFI=0 prio=5 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. @@ -1769,7 +1769,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654309, TS=7 (curr FN 2654348) TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) N3105 1 => 2 (< MAX 8) -Received RTS for PDCH: TRX=0 TS=7 FN=2654348 block_nr=2 scheduling USF=0 for required uplink resource of UL TFI=0 +PDCH(bts=0,trx=0,ts=7) FN=2654348 Received RTS block_nr=2, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654348 + 13 = 2654361 TBF(TFI=1 TLLI=0xf5667788 DIR=UL STATE=ASSIGN) start Packet Uplink Assignment (PACCH) +++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++ @@ -2217,7 +2217,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) appending 13 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) appending 13 bytes Old MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 40 -Received RTS for PDCH: TRX=0 TS=7 FN=2654275 block_nr=9 scheduling USF=0 for required uplink resource of UL TFI=0 +PDCH(bts=0,trx=0,ts=7) FN=2654275 Received RTS block_nr=9, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654275 + 13 = 2654288 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) +++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ @@ -2242,7 +2242,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654279 Received RTS block_nr=10, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654279 Scheduling data message at RTS for DL TFI=0 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 @@ -2261,7 +2261,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654283 Received RTS block_nr=11, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654283 Scheduling data message at RTS for DL TFI=0 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 @@ -2279,7 +2279,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654288 Received RTS block_nr=0, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654288 Scheduling data message at RTS for DL TFI=0 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 @@ -2299,7 +2299,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654292 Received RTS block_nr=1, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654292 Scheduling data message at RTS for DL TFI=0 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 @@ -2317,7 +2317,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654296 Received RTS block_nr=2, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654296 Scheduling data message at RTS for DL TFI=0 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 @@ -2337,7 +2337,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654301 Received RTS block_nr=3, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654301 Scheduling data message at RTS for DL TFI=0 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 @@ -2355,7 +2355,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654305 Received RTS block_nr=4, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654305 Scheduling data message at RTS for DL TFI=0 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 @@ -2375,7 +2375,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654309 Received RTS block_nr=5, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654309 Scheduling data message at RTS for DL TFI=0 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 @@ -2393,7 +2393,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654314 Received RTS block_nr=6, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654314 Scheduling data message at RTS for DL TFI=0 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 @@ -2411,7 +2411,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654318 Received RTS block_nr=7, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654318 Scheduling data message at RTS for DL TFI=0 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 @@ -2431,7 +2431,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654322 Received RTS block_nr=8, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654322 Scheduling data message at RTS for DL TFI=0 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 @@ -2449,7 +2449,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654327 Received RTS block_nr=9, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654327 Scheduling data message at RTS for DL TFI=0 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 @@ -2469,7 +2469,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654331 Received RTS block_nr=10, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654331 Scheduling data message at RTS for DL TFI=0 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 @@ -2487,7 +2487,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654335 Received RTS block_nr=11, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654335 Scheduling data message at RTS for DL TFI=0 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 @@ -2507,7 +2507,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654340 Received RTS block_nr=0, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654340 Scheduling data message at RTS for DL TFI=0 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 @@ -2525,7 +2525,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654344 Received RTS block_nr=1, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654344 Scheduling data message at RTS for DL TFI=0 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 @@ -2543,7 +2543,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654348 Received RTS block_nr=2, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654348 Scheduling data message at RTS for DL TFI=0 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 @@ -2563,7 +2563,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654353 Received RTS block_nr=3, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654353 Scheduling data message at RTS for DL TFI=0 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 @@ -2581,7 +2581,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654357 Received RTS block_nr=4, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654357 Scheduling data message at RTS for DL TFI=0 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 @@ -2601,7 +2601,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654361 Received RTS block_nr=5, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654361 Scheduling data message at RTS for DL TFI=0 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 @@ -2619,7 +2619,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654366 Received RTS block_nr=6, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654366 Scheduling data message at RTS for DL TFI=0 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 @@ -2643,7 +2643,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654370 Received RTS block_nr=7, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654370 Scheduling data message at RTS for DL TFI=0 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 @@ -2679,7 +2679,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654379 Received RTS block_nr=9, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654379 Scheduling data message at RTS for DL TFI=0 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 @@ -2699,7 +2699,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654383 Received RTS block_nr=10, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654383 Scheduling data message at RTS for DL TFI=0 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 @@ -2717,7 +2717,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654387 Received RTS block_nr=11, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654387 Scheduling data message at RTS for DL TFI=0 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 @@ -2737,7 +2737,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654392 Received RTS block_nr=0, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654392 Scheduling data message at RTS for DL TFI=0 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 @@ -2755,7 +2755,7 @@ Received RTS on disabled PDCH: TRX=0 TS=4 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 +PDCH(bts=0,trx=0,ts=7) FN=2654396 Received RTS block_nr=1, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) FN=2654396 Scheduling data message at RTS for DL TFI=0 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 @@ -6915,7 +6915,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) UL DATA TFI=0 received (V(Q)=1 .. V(R)=159) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=0, BSN=64, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 64 already received -Received RTS for PDCH: TRX=0 TS=7 FN=2654275 block_nr=9 scheduling USF=0 for required uplink resource of UL TFI=0 +PDCH(bts=0,trx=0,ts=7) FN=2654275 Received RTS block_nr=9, scheduling USF=0 for required uplink resource of UL TFI=0 Got 'TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS)', TA=7 Got MS: TLLI = 0xf1223344, TA = 7 Modifying MS object, TLLI = 0xf1223344, IMSI '' -> '0011223344' @@ -7078,7 +7078,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Scheduling Ack/Nack, because some data is missing and last block has CV==0. TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) changes UL ACK state from GPRS_RLCMAC_UL_ACK_NONE to GPRS_RLCMAC_UL_ACK_SEND_ACK TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) changes UL ACK state from GPRS_RLCMAC_UL_ACK_SEND_ACK to GPRS_RLCMAC_UL_ACK_NONE -Received RTS for PDCH: TRX=0 TS=7 FN=2654279 block_nr=10 scheduling USF=0 for required uplink resource of UL TFI=0 +PDCH(bts=0,trx=0,ts=7) FN=2654279 Received RTS block_nr=10, scheduling USF=0 for required uplink resource of UL TFI=0 PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654279 + 13 = 2654292 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) start Packet Downlink Assignment (PACCH) +++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ @@ -7582,7 +7582,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) Got MCS-4 RLC data block: CV=0, BSN=64, SPB=0, PI=0, E=1, TI=0, bitoffs=33 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) BSN 64 storing in window (0..191) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) data_length=44, data=80 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 -Received RTS for PDCH: TRX=0 TS=7 FN=2654283 block_nr=11 scheduling USF=0 for required uplink resource of UL TFI=0 +PDCH(bts=0,trx=0,ts=7) FN=2654283 Received RTS block_nr=11, scheduling USF=0 for required uplink resource of UL TFI=0 Got 'TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS)', TA=7 Got MS: TLLI = 0xf1223344, TA = 7 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If137a2aaac7744e60564ca833a1b5564ed7d93bb Gerrit-Change-Number: 23994 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 Apr 30 12:38:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 12:38:38 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 586 PS4, Line 586: int downtime_seconds = BTS_DOWNTIME_SAMPLE_INTERVAL - uptime_seconds; > Yes, hopefully we always see very nearly zero downtime. [?] I'm still not getting it, I'm sorry. Or maybe I'm getting it but I still find it really strange. So, the idea of the BTS_STAT_DOWNTIME counter, as you wrote it, is to: * Be 0 or nearly 0 whenever the BTS is UP and running * Be in the range [0, BTS_DOWNTIME_SAMPLE_INTERVAL] whenever the BTS is down So being it a [0, BTS_DOWNTIME_SAMPLE_INTERVAL] range, I don't see much of a use regarding the value other than signalling Up vs DOWN state, at which point maybe having a 0-1 value is good enough. In case we don't agree on the range being [0, BTS_DOWNTIME_SAMPLE_INTERVAL] per your implementation, let's, my assumptions reading the code are: - bts_record_downtime() is called every BTS_DOWNTIME_SAMPLE_INTERVAL, and sets bts->last_uptime_read to now() every time, meaning that when bts_record_downtime() runs, bts->last_uptime_read will always contain at most now()-BTS_DOWNTIME_SAMPLE_INTERVAL. - if BTS is up: downtime_seconds = BTS_DOWNTIME_SAMPLE_INTERVAL - uptime_seconds = 0. - if BTS is down, it means bts->last_uptime_read was set to now() at some point in the last [0, BTS_DOWNTIME_SAMPLE_INTERVAL] interval (it cannot be less than now()-BTS_DOWNTIME_SAMPLE_INTERVAL because it would have already been updated by previous run of bts_record_downtime(). So please, if I'm wrong feel free to explain it to me. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 5 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Fri, 30 Apr 2021 12:38:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: iedemam 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 Apr 30 12:47:47 2021 From: gerrit-no-reply at lists.osmocom.org (roox) Date: Fri, 30 Apr 2021 12:47:47 +0000 Subject: Change in pysim[master]: setup: set minimum required versions for contruct and cmd2 References: Message-ID: roox has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23995 ) Change subject: setup: set minimum required versions for contruct and cmd2 ...................................................................... setup: set minimum required versions for contruct and cmd2 * 'String' class renamed to 'PaddedString' in construct v2.9 * 'CommandSet' was introduced with with cmd2 v1.3.0 Change-Id: I170a9e896612086c4b0535cd6d950346897abc3b --- M setup.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/95/23995/1 diff --git a/setup.py b/setup.py index 6b4335a..75d7d20 100644 --- a/setup.py +++ b/setup.py @@ -12,9 +12,9 @@ "pyscard", "serial", "pytlv", - "cmd2", + "cmd2 >= 1.3.0", "jsonpath-ng", - "construct", + "construct >= 2.9", ], scripts=[ 'pySim-prog.py', -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I170a9e896612086c4b0535cd6d950346897abc3b Gerrit-Change-Number: 23995 Gerrit-PatchSet: 1 Gerrit-Owner: roox Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 13:51:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 13:51:40 +0000 Subject: Change in libosmo-sccp[master]: Revert "osmo_ss7: free the sock_name string once an ASP socket is clo... References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23996 ) Change subject: Revert "osmo_ss7: free the sock_name string once an ASP socket is closed" ...................................................................... Revert "osmo_ss7: free the sock_name string once an ASP socket is closed" This reverts commit 03e3b0423443cd48f901762e36e8aa5b75c27c37. It caused a regression, as apparently some code is using the sock_name string even after the close: DLSS7 osmo_ss7.c:1676 0: asp-asp-dyn-0: xua_srv_conn_cb(): sctp_recvmsg() returned 12 (flags=0x8080) DLSS7 osmo_ss7.c:1608 0: asp-asp-dyn-0: xUA SRV SCTP NOTIFICATION 32773 flags=0x0 DLSS7 osmo_ss7.c:1621 0: asp-asp-dyn-0: xUA SRV SHUTDOWN_EVENT DLSS7 osmo_ss7.c:1875 asp-dyn-0: connection closed DLSS7 osmo_ss7.c:1881 XUA_ASP(asp-dyn-0){ASP_INACTIVE}: Received Event SCTP-COMM_DOWN.ind DLSS7 xua_asp_fsm.c:669 XUA_ASP(asp-dyn-0){ASP_INACTIVE}: state_chg to ASP_DOWN DLSS7 xua_asp_fsm.c:113 0: asp-asp-dyn-0: No Layer Manager, dropping M-ASP_DOWN.indication DLSS7 xua_asp_fsm.c:113 0: asp-asp-dyn-0: No Layer Manager, dropping M-SCTP_RELEASE.indication DLSS7 osmo_ss7.c:1442 0: asp-asp-dyn-0: Destroying ASP DLSS7 osmo_ss7.c:1449 XUA_ASP(asp-dyn-0){ASP_DOWN}: Terminating (cause = OSMO_FSM_TERM_REQUEST) DLSS7 osmo_ss7.c:1449 XUA_ASP(asp-dyn-0){ASP_DOWN}: Freeing instance DLSS7 fsm.c:573 XUA_ASP(asp-dyn-0){ASP_DOWN}: Deallocated ================================================================= ==2928584==ERROR: AddressSanitizer: heap-use-after-free on address 0x618000004d28 at pc 0x7fd6cddeaff8 bp 0x7ffe978fbad0 sp 0x7ffe978fbac8 READ of size 8 at 0x618000004d28 thread T0 #0 0x7fd6cddeaff7 in xua_srv_conn_closed_cb (/space/home/laforge/projects/git/libosmo-sccp/src/.libs/libosmo-sigtran.so.5+0x17bff7) #1 0x7fd6cc443d0f in osmo_stream_srv_destroy (/usr/local/lib/libosmonetif.so.8+0x7ed0f) #2 0x7fd6cdde8ce8 in xua_srv_conn_cb (/space/home/laforge/projects/git/libosmo-sccp/src/.libs/libosmo-sigtran.so.5+0x179ce8) #3 0x7fd6cc44285e in osmo_stream_srv_read (/usr/local/lib/libosmonetif.so.8+0x7d85e) #4 0x7fd6cc44331d in osmo_stream_srv_cb (/usr/local/lib/libosmonetif.so.8+0x7e31d) #5 0x7fd6cd88a1c7 in poll_disp_fds (/usr/local/lib/libosmocore.so.17+0x10d1c7) #6 0x7fd6cd88a30d in _osmo_select_main (/usr/local/lib/libosmocore.so.17+0x10d30d) #7 0x7fd6cd88a32c in osmo_select_main (/usr/local/lib/libosmocore.so.17+0x10d32c) #8 0x557aab05c078 in main /space/home/laforge/projects/git/libosmo-sccp/stp/stp_main.c:267 #9 0x7fd6ccc50d09 in __libc_start_main ../csu/libc-start.c:308 #10 0x557aab05b389 in _start (/space/home/laforge/projects/git/libosmo-sccp/stp/.libs/osmo-stp+0x3389) Change-Id: I72f83114408e7a54d1f3072338fa6f189bf4064f --- M src/osmo_ss7.c 1 file changed, 0 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/96/23996/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 617f6bb..6d68290 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1759,10 +1759,6 @@ osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_SCTP_COMM_DOWN_IND, asp); /* send M-SCTP_RELEASE.ind to XUA Layer Manager */ xua_asp_send_xlm_prim_simple(asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_INDICATION); - - /* no connection means no socket means no socket name */ - talloc_free(asp->sock_name); - asp->sock_name = NULL; } static void xua_cli_close_and_reconnect(struct osmo_stream_cli *cli) @@ -1896,10 +1892,6 @@ osmo_ss7_asp_destroy(asp); } - /* no connection means no socket means no socket name */ - talloc_free(asp->sock_name); - asp->sock_name = NULL; - return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I72f83114408e7a54d1f3072338fa6f189bf4064f Gerrit-Change-Number: 23996 Gerrit-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 Apr 30 13:51:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 13:51:59 +0000 Subject: Change in libosmo-sccp[master]: Revert "osmo_ss7: free the sock_name string once an ASP socket is clo... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23996 ) Change subject: Revert "osmo_ss7: free the sock_name string once an ASP socket is closed" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I72f83114408e7a54d1f3072338fa6f189bf4064f Gerrit-Change-Number: 23996 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 30 Apr 2021 13:51: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 Apr 30 13:52:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 13:52:22 +0000 Subject: Change in pysim[master]: setup: set minimum required versions for contruct and cmd2 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23995 ) Change subject: setup: set minimum required versions for contruct and cmd2 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I170a9e896612086c4b0535cd6d950346897abc3b Gerrit-Change-Number: 23995 Gerrit-PatchSet: 1 Gerrit-Owner: roox Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 13:52:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 13:52:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 13:52:24 +0000 Subject: Change in pysim[master]: setup: set minimum required versions for contruct and cmd2 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23995 ) Change subject: setup: set minimum required versions for contruct and cmd2 ...................................................................... setup: set minimum required versions for contruct and cmd2 * 'String' class renamed to 'PaddedString' in construct v2.9 * 'CommandSet' was introduced with with cmd2 v1.3.0 Change-Id: I170a9e896612086c4b0535cd6d950346897abc3b --- M setup.py 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/setup.py b/setup.py index 6b4335a..75d7d20 100644 --- a/setup.py +++ b/setup.py @@ -12,9 +12,9 @@ "pyscard", "serial", "pytlv", - "cmd2", + "cmd2 >= 1.3.0", "jsonpath-ng", - "construct", + "construct >= 2.9", ], scripts=[ 'pySim-prog.py', -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I170a9e896612086c4b0535cd6d950346897abc3b Gerrit-Change-Number: 23995 Gerrit-PatchSet: 1 Gerrit-Owner: roox 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 Apr 30 13:52:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 13:52:45 +0000 Subject: Change in osmo-pcu[master]: manual: Include QoS chapter and add osmo-pcu specific example In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23929 ) Change subject: manual: Include QoS chapter and add osmo-pcu specific example ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Gerrit-Change-Number: 23929 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 13:52:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 13:52:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 13:52:47 +0000 Subject: Change in osmo-pcu[master]: manual: Include QoS chapter and add osmo-pcu specific example In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23929 ) Change subject: manual: Include QoS chapter and add osmo-pcu specific example ...................................................................... manual: Include QoS chapter and add osmo-pcu specific example Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 --- A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmopcu-usermanual.adoc 2 files changed, 46 insertions(+), 0 deletions(-) Approvals: fixeria: 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 Jenkins Builder: Verified diff --git a/doc/manuals/chapters/qos-example.adoc b/doc/manuals/chapters/qos-example.adoc new file mode 100644 index 0000000..22fdc60 --- /dev/null +++ b/doc/manuals/chapters/qos-example.adoc @@ -0,0 +1,44 @@ +==== Full example of QoS for osmo-pcu uplink QoS + +In the below example we will show the full set of configuration required +for both DSCP and PCP differentiation of uplink Gb traffic by osmo-pcu. + +What we want to achieve in this example is the following configuration: + +.DSCP and PCP assignments for osmo-bts uplink traffic in this example +[options="header",width="30%",cols="2,1,1"] +|=== +|Traffic |DSCP|PCP +|Gb (NS) | 10| 1 +|=== + +. configure the osmocom program to set the DSCP value + * osmo-pcu.cfg: `dscp 10` in `udp bind` vty node +. configure an egrees QoS map to map from priority to PCP + +.Example Step 1: add related VTY configuration to `osmo-pcu.cfg` +---- +... +pcu + gb ip-dscp 10 + gb socket-priority 1 + ... +---- + +.Example Step 2: egress QoS map to map from DSCP values to priority values +---- +$ sudo ip link set dev eth0.9<1> type vlan egress-qos-map 0:0 1:1 5:5 6:6 7:7 <2> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9`. +<2> create a egress QoS map that maps the priority value 1:1 to the PCP. We also + include the mappings for 5, 6, and 7 from the osmo-bts example here (see + <>). + +NOTE:: The settings of the `ip` command are volatile and only active until +the next reboot (or the network device or VLAN is removed). Please refer to +the documentation of your specific Linux distribution in order to find out how +to make such settings persistent by means of an `ifup` hook whenever the interface +comes up. For CentOS/RHEL 8 this can e.g. be achieved by means of an `/sbin/ifup-local +script` (when using `network-scripts` and not NetworkManager). For Debian or Ubuntu, +this typically involves adding `up` lines to `/etc/network/interfaces` or a `/etc/network/if-up.d` +script. diff --git a/doc/manuals/osmopcu-usermanual.adoc b/doc/manuals/osmopcu-usermanual.adoc index e202e33..0fae72a 100644 --- a/doc/manuals/osmopcu-usermanual.adoc +++ b/doc/manuals/osmopcu-usermanual.adoc @@ -21,6 +21,8 @@ include::./common/chapters/gb.adoc[] +include::./common/chapters/qos-dscp-pcp.adoc[] + include::./common/chapters/vty_cpu_sched.adoc[] include::./common/chapters/port_numbers.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4d409b55861f05ba229dc5cb97f99370356e3dbd Gerrit-Change-Number: 23929 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 13:53:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 13:53:06 +0000 Subject: Change in osmo-bts[master]: manual: Include QoS chapter and add osmo-bts specific example In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23927 ) Change subject: manual: Include QoS chapter and add osmo-bts specific example ...................................................................... manual: Include QoS chapter and add osmo-bts specific example Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Requires: libosmo-abis.git I8991dd6eb406a5b9a70498974fc1ad339452f871 --- M TODO-RELEASE A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmobts-usermanual.adoc 3 files changed, 53 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/TODO-RELEASE b/TODO-RELEASE index 9b000e3..1546ec7 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -1 +1,2 @@ update libosmo-abis dependency to > 1.1.1 for osmo_rtp_socket_set_priority() +update libosmo-abis dependency to > 1.1.1 for new e1_input vty commands for DSCP + priority diff --git a/doc/manuals/chapters/qos-example.adoc b/doc/manuals/chapters/qos-example.adoc new file mode 100644 index 0000000..c31e2eb --- /dev/null +++ b/doc/manuals/chapters/qos-example.adoc @@ -0,0 +1,50 @@ +==== Full example of QoS for osmo-bts uplink QoS + +In the below example we will show the full set of configuration required +for both DSCP and PCP differentiation of uplink Abis traffic by osmo-bts. + +What we want to achieve in this example is the following configuration: + +.DSCP and PCP assignments for osmo-bts uplink traffic in this example +[options="header",width="30%",cols="2,1,1"] +|=== +|Traffic |DSCP|PCP +|A-bis RSL | 56| 7 +|A-bis RTP | 46| 6 +|A-bis OML | 34| 5 +|=== + +. configure the osmocom program to set the DSCP value +. configure an egrees QoS map to map from priority to PCP + +.Example Step 1: add related VTY configuration to `osmo-bts.cfg` +---- +... +e1_input + ipa ip-dscp oml 34 + ipa socket-priority oml 5 + ipa ip-dscp rsl 56 + ipa socket-priority rsl 7 +... +bts 0 + rtp ip-dscp 46 + rtp socket-priority 6 + ... +---- + +.Example Step 2: egress QoS map to map from socket priority to PCP values +---- +$ sudo ip link set dev eth0.9<1> type vlan egress-qos-map 0:0 1:1 5:5 6:6 7:7 <2> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9`. +<2> create a egress QoS map that maps the priority value 1:1 to the PCP. We also include the + mapping 1:1 from the osmo-pcu example (see <>) here. + +NOTE:: The settings of the `ip` command are volatile and only active until +the next reboot (or the network device or VLAN is removed). Please refer to +the documentation of your specific Linux distribution in order to find out how +to make such settings persistent by means of an `ifup` hook whenever the interface +comes up. For CentOS/RHEL 8 this can e.g. be achieved by means of an `/sbin/ifup-local +script` (when using `network-scripts` and not NetworkManager). For Debian or Ubuntu, +this typically involves adding `up` lines to `/etc/network/interfaces` or a `/etc/network/if-up.d` +script. diff --git a/doc/manuals/osmobts-usermanual.adoc b/doc/manuals/osmobts-usermanual.adoc index b1b0747..9ef4960 100644 --- a/doc/manuals/osmobts-usermanual.adoc +++ b/doc/manuals/osmobts-usermanual.adoc @@ -30,6 +30,8 @@ include::{srcdir}/chapters/architecture.adoc[] +include::./common/chapters/qos-dscp-pcp.adoc[] + include::./common/chapters/vty_cpu_sched.adoc[] include::./common/chapters/trx_if.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8fcd524c550b43a851b3094effc215e5203d28be Gerrit-Change-Number: 23927 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 13:53:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 13:53:07 +0000 Subject: Change in osmo-bts[master]: manual: Remove manual revision history; we don't use it anywawy In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23959 ) Change subject: manual: Remove manual revision history; we don't use it anywawy ...................................................................... manual: Remove manual revision history; we don't use it anywawy Change-Id: I25c4d8b694756c6eed81c9b552a389ca5bd04ea7 --- M doc/manuals/osmobts-abis-docinfo.xml M doc/manuals/osmobts-usermanual-docinfo.xml M doc/manuals/rtp-amr-docinfo.xml M doc/manuals/vty/osmobts-vty-reference.xml 4 files changed, 0 insertions(+), 79 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve diff --git a/doc/manuals/osmobts-abis-docinfo.xml b/doc/manuals/osmobts-abis-docinfo.xml index 4e23394..363d812 100644 --- a/doc/manuals/osmobts-abis-docinfo.xml +++ b/doc/manuals/osmobts-abis-docinfo.xml @@ -1,39 +1,3 @@ - - - 1 - December 2015 - NJH, HW - - Initial version, reflecting OsmoBTS master branch as on 2015-Dec-7 - (commit e28a20a2d9d049cd6312e218a7646593bbc43431). - - - - 2 - February 2016 - HW - - Updated version with Message Sequence Chart of OML and RSL bring-up. - - - - 2.1 - February 2016 - HW - - Fix A-bis OML/RSL port number swap in message seqeuence charts. - - - - 2.2 - July 2016 - NJH, HW - - Add description on Dynamic Channel Configuration in OML and activation in RSL. - - - - diff --git a/doc/manuals/osmobts-usermanual-docinfo.xml b/doc/manuals/osmobts-usermanual-docinfo.xml index aa3285f..6b4f5f8 100644 --- a/doc/manuals/osmobts-usermanual-docinfo.xml +++ b/doc/manuals/osmobts-usermanual-docinfo.xml @@ -1,14 +1,3 @@ - - - 1 - January 2016 - HW - - Initial version, reflecting OsmoBTS master branch as on FIXME - (commit FIXME). - - - diff --git a/doc/manuals/rtp-amr-docinfo.xml b/doc/manuals/rtp-amr-docinfo.xml index 3f4de8d..a575fb5 100644 --- a/doc/manuals/rtp-amr-docinfo.xml +++ b/doc/manuals/rtp-amr-docinfo.xml @@ -1,29 +1,3 @@ - - - 1 - October 2016 - HW - - Initial version - - - - 2 - November 2016 - MS - - FSM added - - - - 3 - July 2017 - PE - - Add section and update sequence charts to describe requirement to receive all PH-DATA.ind events - - - diff --git a/doc/manuals/vty/osmobts-vty-reference.xml b/doc/manuals/vty/osmobts-vty-reference.xml index a38eb05..b62f1d6 100644 --- a/doc/manuals/vty/osmobts-vty-reference.xml +++ b/doc/manuals/vty/osmobts-vty-reference.xml @@ -13,12 +13,6 @@ - v1 - 13th October 2016 - hw - Initial - - v2 @@REV_DATE@@ s.f.m.c. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I25c4d8b694756c6eed81c9b552a389ca5bd04ea7 Gerrit-Change-Number: 23959 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 13:53:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 13:53:08 +0000 Subject: Change in osmo-bts[master]: manuals: Update copyright years In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23960 ) Change subject: manuals: Update copyright years ...................................................................... manuals: Update copyright years Change-Id: I353013ddfc8c5506599e723e713d93f3f041f15d --- M doc/manuals/osmobts-abis-docinfo.xml M doc/manuals/osmobts-usermanual-docinfo.xml M doc/manuals/rtp-amr-docinfo.xml 3 files changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/doc/manuals/osmobts-abis-docinfo.xml b/doc/manuals/osmobts-abis-docinfo.xml index 363d812..3bbbe7f 100644 --- a/doc/manuals/osmobts-abis-docinfo.xml +++ b/doc/manuals/osmobts-abis-docinfo.xml @@ -25,7 +25,7 @@ - 2015-2016 + 2015-2021 sysmocom - s.f.m.c. GmbH diff --git a/doc/manuals/osmobts-usermanual-docinfo.xml b/doc/manuals/osmobts-usermanual-docinfo.xml index 6b4f5f8..1704f89 100644 --- a/doc/manuals/osmobts-usermanual-docinfo.xml +++ b/doc/manuals/osmobts-usermanual-docinfo.xml @@ -14,7 +14,7 @@ - 2016 + 2016-2021 sysmocom - s.f.m.c. GmbH diff --git a/doc/manuals/rtp-amr-docinfo.xml b/doc/manuals/rtp-amr-docinfo.xml index a575fb5..84d5558 100644 --- a/doc/manuals/rtp-amr-docinfo.xml +++ b/doc/manuals/rtp-amr-docinfo.xml @@ -25,7 +25,7 @@ - 2016 + 2016-2021 sysmocom - s.f.m.c. GmbH -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I353013ddfc8c5506599e723e713d93f3f041f15d Gerrit-Change-Number: 23960 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 13:54:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 13:54:09 +0000 Subject: Change in libosmo-sccp[master]: Revert "osmo_ss7: free the sock_name string once an ASP socket is clo... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/23996 ) Change subject: Revert "osmo_ss7: free the sock_name string once an ASP socket is closed" ...................................................................... Revert "osmo_ss7: free the sock_name string once an ASP socket is closed" This reverts commit 03e3b0423443cd48f901762e36e8aa5b75c27c37. It caused a regression, as apparently some code is using the sock_name string even after the close: DLSS7 osmo_ss7.c:1676 0: asp-asp-dyn-0: xua_srv_conn_cb(): sctp_recvmsg() returned 12 (flags=0x8080) DLSS7 osmo_ss7.c:1608 0: asp-asp-dyn-0: xUA SRV SCTP NOTIFICATION 32773 flags=0x0 DLSS7 osmo_ss7.c:1621 0: asp-asp-dyn-0: xUA SRV SHUTDOWN_EVENT DLSS7 osmo_ss7.c:1875 asp-dyn-0: connection closed DLSS7 osmo_ss7.c:1881 XUA_ASP(asp-dyn-0){ASP_INACTIVE}: Received Event SCTP-COMM_DOWN.ind DLSS7 xua_asp_fsm.c:669 XUA_ASP(asp-dyn-0){ASP_INACTIVE}: state_chg to ASP_DOWN DLSS7 xua_asp_fsm.c:113 0: asp-asp-dyn-0: No Layer Manager, dropping M-ASP_DOWN.indication DLSS7 xua_asp_fsm.c:113 0: asp-asp-dyn-0: No Layer Manager, dropping M-SCTP_RELEASE.indication DLSS7 osmo_ss7.c:1442 0: asp-asp-dyn-0: Destroying ASP DLSS7 osmo_ss7.c:1449 XUA_ASP(asp-dyn-0){ASP_DOWN}: Terminating (cause = OSMO_FSM_TERM_REQUEST) DLSS7 osmo_ss7.c:1449 XUA_ASP(asp-dyn-0){ASP_DOWN}: Freeing instance DLSS7 fsm.c:573 XUA_ASP(asp-dyn-0){ASP_DOWN}: Deallocated ================================================================= ==2928584==ERROR: AddressSanitizer: heap-use-after-free on address 0x618000004d28 at pc 0x7fd6cddeaff8 bp 0x7ffe978fbad0 sp 0x7ffe978fbac8 READ of size 8 at 0x618000004d28 thread T0 #0 0x7fd6cddeaff7 in xua_srv_conn_closed_cb (/space/home/laforge/projects/git/libosmo-sccp/src/.libs/libosmo-sigtran.so.5+0x17bff7) #1 0x7fd6cc443d0f in osmo_stream_srv_destroy (/usr/local/lib/libosmonetif.so.8+0x7ed0f) #2 0x7fd6cdde8ce8 in xua_srv_conn_cb (/space/home/laforge/projects/git/libosmo-sccp/src/.libs/libosmo-sigtran.so.5+0x179ce8) #3 0x7fd6cc44285e in osmo_stream_srv_read (/usr/local/lib/libosmonetif.so.8+0x7d85e) #4 0x7fd6cc44331d in osmo_stream_srv_cb (/usr/local/lib/libosmonetif.so.8+0x7e31d) #5 0x7fd6cd88a1c7 in poll_disp_fds (/usr/local/lib/libosmocore.so.17+0x10d1c7) #6 0x7fd6cd88a30d in _osmo_select_main (/usr/local/lib/libosmocore.so.17+0x10d30d) #7 0x7fd6cd88a32c in osmo_select_main (/usr/local/lib/libosmocore.so.17+0x10d32c) #8 0x557aab05c078 in main /space/home/laforge/projects/git/libosmo-sccp/stp/stp_main.c:267 #9 0x7fd6ccc50d09 in __libc_start_main ../csu/libc-start.c:308 #10 0x557aab05b389 in _start (/space/home/laforge/projects/git/libosmo-sccp/stp/.libs/osmo-stp+0x3389) Change-Id: I72f83114408e7a54d1f3072338fa6f189bf4064f --- M src/osmo_ss7.c 1 file changed, 0 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 617f6bb..6d68290 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1759,10 +1759,6 @@ osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_SCTP_COMM_DOWN_IND, asp); /* send M-SCTP_RELEASE.ind to XUA Layer Manager */ xua_asp_send_xlm_prim_simple(asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_INDICATION); - - /* no connection means no socket means no socket name */ - talloc_free(asp->sock_name); - asp->sock_name = NULL; } static void xua_cli_close_and_reconnect(struct osmo_stream_cli *cli) @@ -1896,10 +1892,6 @@ osmo_ss7_asp_destroy(asp); } - /* no connection means no socket means no socket name */ - talloc_free(asp->sock_name); - asp->sock_name = NULL; - return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/23996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I72f83114408e7a54d1f3072338fa6f189bf4064f Gerrit-Change-Number: 23996 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 Apr 30 14:16:48 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 14:16:48 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement TRXDv2 protocol support In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23833 ) Change subject: osmo-bts-trx: implement TRXDv2 protocol support ...................................................................... Patch Set 7: (5 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/include/osmo-bts/scheduler.h File include/osmo-bts/scheduler.h: https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/include/osmo-bts/scheduler.h at 256 PS7, Line 256: uint8_t _pdu_num; /*!< Number of this PDU within the datagram */ > you mean the PDU position? This field basically holds the number of parsed PDUs, so when it's 0 we expect TDMA frame number to be present, otherwise it's absent. https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 726 PS7, Line 726: #define TRX_UL_V2HDR_LEN 1 + 1 + 1 + 1 + 2 + 2 > missing () Ack https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 852 PS7, Line 852: bi->rssi = -(int8_t)buf[3]; > are you sure this works correctly? [?] To be fair, I just copy-pasted this line from the existing code. https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 987 PS7, Line 987: loop: > do { I prefer to use 'goto' here to avoid wrapping large code blocks into { }, and see no problem with using it. https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 1114 PS7, Line 1114: LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, > not sure if we want to have this log here, looks really verbose. I am just moving the existing log line, not introducing a new one. Sometimes it's useful to see what [we think] we send, so let's keep it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3532a6693bb335043ec390049138308991083e66 Gerrit-Change-Number: 23833 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 14:16:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 14:22:18 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 14:22:18 +0000 Subject: Change in osmo-bsc[master]: Lb: add missing X12 timer configurability In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23914 ) Change subject: Lb: add missing X12 timer configurability ...................................................................... Lb: add missing X12 timer configurability While adding timers for Channel Mode Modify, I notice that X12 is used in lcs_ta_req.c, but missing in net_init.c. Add it so that it is exposed on the VTY configuration. Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 --- M src/osmo-bsc/net_init.c M tests/timer.vty 2 files changed, 3 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 6cbb40c..478c62f 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -53,6 +53,7 @@ { .T=-9, .default_val=5, .desc="Timeout for availability of MGW endpoint" }, { .T=-10, .default_val=5, .desc="Timeout for fully configured MGW endpoint" }, { .T=-11, .default_val=5, .desc="Timeout for Perform Location Response from SMLC" }, + { .T=-12, .default_val=5, .desc="Timeout for obtaining TA after BSSLAP TA Request" }, { .T=-3111, .default_val=4, .desc="Wait time after lchan was released in error (should be T3111 + 2s)" }, { .T=-3210, .default_val=20, .desc="After L3 Complete, wait for MSC to confirm" }, {} diff --git a/tests/timer.vty b/tests/timer.vty index 6c26681..4b9ddbb 100644 --- a/tests/timer.vty +++ b/tests/timer.vty @@ -26,6 +26,7 @@ net: X9 = 5 s Timeout for availability of MGW endpoint (default: 5 s) net: X10 = 5 s Timeout for fully configured MGW endpoint (default: 5 s) net: X11 = 5 s Timeout for Perform Location Response from SMLC (default: 5 s) +net: X12 = 5 s Timeout for obtaining TA after BSSLAP TA Request (default: 5 s) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s) mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s) @@ -72,6 +73,7 @@ net: X9 = 5 s Timeout for availability of MGW endpoint (default: 5 s) net: X10 = 5 s Timeout for fully configured MGW endpoint (default: 5 s) net: X11 = 5 s Timeout for Perform Location Response from SMLC (default: 5 s) +net: X12 = 5 s Timeout for obtaining TA after BSSLAP TA Request (default: 5 s) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s) mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I19540f64de4937b39963bb66bebb1b5d433c2be2 Gerrit-Change-Number: 23914 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 14:22:19 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 14:22:19 +0000 Subject: Change in osmo-bsc[master]: Lb: make sure we never have missing timer configurability In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23937 ) Change subject: Lb: make sure we never have missing timer configurability ...................................................................... Lb: make sure we never have missing timer configurability After I found that X12 was missing from the VTY config, make sure that no timers have been forgotten in lcs_ta_req.c: change the default timeout to -1. We will notice missing timers during testing. Change-Id: I7c0b098622548bf0f0374c304522e6a9db0331e3 --- M src/osmo-bsc/lcs_ta_req.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/lcs_ta_req.c b/src/osmo-bsc/lcs_ta_req.c index 3b859a7..bcee6e1 100644 --- a/src/osmo-bsc/lcs_ta_req.c +++ b/src/osmo-bsc/lcs_ta_req.c @@ -56,7 +56,7 @@ osmo_tdef_fsm_inst_state_chg(FI, STATE, \ lcs_ta_req_fsm_timeouts, \ (bsc_gsmnet)->T_defs, \ - 5) + -1) #define lcs_ta_req_fail(cause, fmt, args...) do { \ LOG_LCS_TA_REQ(lcs_ta_req, LOGL_ERROR, "BSSLAP TA Request failed in state %s: " fmt "\n", \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c0b098622548bf0f0374c304522e6a9db0331e3 Gerrit-Change-Number: 23937 Gerrit-PatchSet: 1 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 Fri Apr 30 14:22:19 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 14:22:19 +0000 Subject: Change in osmo-bsc[master]: gsm_lchan_name_compute with ctx In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23938 ) Change subject: gsm_lchan_name_compute with ctx ...................................................................... gsm_lchan_name_compute with ctx Use a talloc ctx directly without an intermediate static buffer. A subsequent patch will add a name tweak for VAMOS secondary lchans, so it felt appropriate to first clean this. Change-Id: Idb922605c15242a2cdc7c34668c845a179a15660 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_trx.c M src/osmo-bsc/gsm_data.c 3 files changed, 5 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 0bc881b..9aecd2c 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -944,7 +944,7 @@ const char *gsm_chreq_name(enum gsm_chreq_reason_t c); char *gsm_ts_name(const struct gsm_bts_trx_ts *ts); char *gsm_ts_and_pchan_name(const struct gsm_bts_trx_ts *ts); -char *gsm_lchan_name_compute(const struct gsm_lchan *lchan); +char *gsm_lchan_name_compute(void *ctx, const struct gsm_lchan *lchan); static inline char *gsm_lchan_name(const struct gsm_lchan *lchan) { diff --git a/src/osmo-bsc/bts_trx.c b/src/osmo-bsc/bts_trx.c index 6d98929..1dfca95 100644 --- a/src/osmo-bsc/bts_trx.c +++ b/src/osmo-bsc/bts_trx.c @@ -105,15 +105,13 @@ for (l = 0; l < TS_MAX_LCHAN; l++) { struct gsm_lchan *lchan; - char *name; lchan = &ts->lchan[l]; lchan->ts = ts; lchan->nr = l; lchan->type = GSM_LCHAN_NONE; - name = gsm_lchan_name_compute(lchan); - lchan->name = talloc_strdup(trx, name); + lchan->name = gsm_lchan_name_compute(trx, lchan); } } diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 916ba68..47aceb0 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -334,14 +334,11 @@ return ts2str; } -char *gsm_lchan_name_compute(const struct gsm_lchan *lchan) +char *gsm_lchan_name_compute(void *ctx, const struct gsm_lchan *lchan) { struct gsm_bts_trx_ts *ts = lchan->ts; - - snprintf(ts2str, sizeof(ts2str), "(bts=%d,trx=%d,ts=%d,ss=%d)", - ts->trx->bts->nr, ts->trx->nr, ts->nr, lchan->nr); - - return ts2str; + return talloc_asprintf(ctx, "(bts=%d,trx=%d,ts=%d,ss=%d)", + ts->trx->bts->nr, ts->trx->nr, ts->nr, lchan->nr); } /* obtain the MO structure for a given object instance */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb922605c15242a2cdc7c34668c845a179a15660 Gerrit-Change-Number: 23938 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Fri Apr 30 14:22:20 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 14:22:20 +0000 Subject: Change in osmo-bsc[master]: log: drop duplicate logging in ts_setup_lchans() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23939 ) Change subject: log: drop duplicate logging in ts_setup_lchans() ...................................................................... log: drop duplicate logging in ts_setup_lchans() Change-Id: I569229328229047d399033d1483d09d323826692 --- M src/osmo-bsc/timeslot_fsm.c 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/timeslot_fsm.c b/src/osmo-bsc/timeslot_fsm.c index 3fd9d69..41921cd 100644 --- a/src/osmo-bsc/timeslot_fsm.c +++ b/src/osmo-bsc/timeslot_fsm.c @@ -215,8 +215,6 @@ ts->pchan_is = ts->pchan_on_init; break; } - - LOG_TS(ts, LOGL_DEBUG, "lchans initialized: %d\n", max_lchans); } static void ts_fsm_not_initialized(struct osmo_fsm_inst *fi, uint32_t event, void *data) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I569229328229047d399033d1483d09d323826692 Gerrit-Change-Number: 23939 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Fri Apr 30 14:22:20 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 14:22:20 +0000 Subject: Change in osmo-bsc[master]: comment: tweak pchan_subslots() description In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23940 ) Change subject: comment: tweak pchan_subslots() description ...................................................................... comment: tweak pchan_subslots() description Change-Id: I4d3ca6efc7b4fadd6711ae80502027cec1b7b84e --- M src/osmo-bsc/gsm_data.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 fixeria: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 47aceb0..2595ea9 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -565,8 +565,8 @@ [GSM_PCHAN_TCH_F_PDCH] = 1, }; -/*! According to ts->pchan and possibly ts->dyn_pchan, return the number of - * logical channels available in the timeslot. */ +/*! Return the maximum number of logical channels that may be used in a timeslot of the given physical channel + * configuration. */ uint8_t pchan_subslots(enum gsm_phys_chan_config pchan) { if (pchan < 0 || pchan >= ARRAY_SIZE(subslots_per_pchan)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4d3ca6efc7b4fadd6711ae80502027cec1b7b84e Gerrit-Change-Number: 23940 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Fri Apr 30 14:22:21 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 14:22:21 +0000 Subject: Change in osmo-bsc[master]: lchan_release(): do not release UNUSED lchan In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23941 ) Change subject: lchan_release(): do not release UNUSED lchan ...................................................................... lchan_release(): do not release UNUSED lchan I noticed that lchan_release() is generally called in varying error situations, so it makes sense to generally skip the release procedure when the lchan is already in the UNUSED state. Change-Id: I6e9faf682d1668388d5470419110408a098b9900 --- M src/osmo-bsc/lchan_fsm.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 fixeria: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index d58aac5..d2b7172 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -1592,7 +1592,7 @@ bool err, enum gsm48_rr_cause cause_rr, const struct osmo_plmn_id *last_eutran_plmn) { - if (!lchan || !lchan->fi) + if (!lchan || !lchan->fi || lchan->fi->state == LCHAN_ST_UNUSED) return; if (lchan->release.in_release_handler) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6e9faf682d1668388d5470419110408a098b9900 Gerrit-Change-Number: 23941 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Fri Apr 30 14:22:21 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 14:22:21 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: mode modify: fix missing timeouts and error transitions In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23942 ) Change subject: lchan_fsm: mode modify: fix missing timeouts and error transitions ...................................................................... lchan_fsm: mode modify: fix missing timeouts and error transitions Change-Id: I6364cfb78f661f5f7473dcec488e361e6a1dc9e4 --- M src/osmo-bsc/lchan_fsm.c M src/osmo-bsc/net_init.c M tests/timer.vty 3 files changed, 10 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved fixeria: Looks good to me, approved diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index d2b7172..4eb95ff 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -217,6 +217,8 @@ [LCHAN_ST_WAIT_BEFORE_RF_RELEASE] = { .T=3111 }, [LCHAN_ST_WAIT_RF_RELEASE_ACK] = { .T=3111 }, [LCHAN_ST_WAIT_AFTER_ERROR] = { .T=-3111 }, + [LCHAN_ST_WAIT_RR_CHAN_MODE_MODIFY_ACK] = { .T=-13 }, + [LCHAN_ST_WAIT_RSL_CHAN_MODE_MODIFY_ACK] = { .T=-14 }, }; /* Transition to a state, using the T timer defined in lchan_fsm_timeouts. @@ -261,8 +263,8 @@ [LCHAN_ST_WAIT_RF_RELEASE_ACK] = LCHAN_ST_BORKEN, [LCHAN_ST_WAIT_AFTER_ERROR] = LCHAN_ST_UNUSED, [LCHAN_ST_BORKEN] = LCHAN_ST_BORKEN, - [LCHAN_ST_WAIT_RR_CHAN_MODE_MODIFY_ACK] = LCHAN_ST_BORKEN, - [LCHAN_ST_WAIT_RSL_CHAN_MODE_MODIFY_ACK] = LCHAN_ST_BORKEN, + [LCHAN_ST_WAIT_RR_CHAN_MODE_MODIFY_ACK] = LCHAN_ST_WAIT_RF_RELEASE_ACK, + [LCHAN_ST_WAIT_RSL_CHAN_MODE_MODIFY_ACK] = LCHAN_ST_WAIT_RF_RELEASE_ACK, }; #define lchan_fail(fmt, args...) lchan_fail_to(lchan_fsm_on_error[fi->state], fmt, ## args) diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 478c62f..6d88adb 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -54,6 +54,8 @@ { .T=-10, .default_val=5, .desc="Timeout for fully configured MGW endpoint" }, { .T=-11, .default_val=5, .desc="Timeout for Perform Location Response from SMLC" }, { .T=-12, .default_val=5, .desc="Timeout for obtaining TA after BSSLAP TA Request" }, + { .T=-13, .default_val=5, .desc="Timeout for RR Channel Mode Modify ACK (BSC <-> MS)" }, + { .T=-14, .default_val=5, .desc="Timeout for RSL Channel Mode Modify ACK (BSC <-> BTS)" }, { .T=-3111, .default_val=4, .desc="Wait time after lchan was released in error (should be T3111 + 2s)" }, { .T=-3210, .default_val=20, .desc="After L3 Complete, wait for MSC to confirm" }, {} diff --git a/tests/timer.vty b/tests/timer.vty index 4b9ddbb..71dd2c1 100644 --- a/tests/timer.vty +++ b/tests/timer.vty @@ -27,6 +27,8 @@ net: X10 = 5 s Timeout for fully configured MGW endpoint (default: 5 s) net: X11 = 5 s Timeout for Perform Location Response from SMLC (default: 5 s) net: X12 = 5 s Timeout for obtaining TA after BSSLAP TA Request (default: 5 s) +net: X13 = 5 s Timeout for RR Channel Mode Modify ACK (BSC <-> MS) (default: 5 s) +net: X14 = 5 s Timeout for RSL Channel Mode Modify ACK (BSC <-> BTS) (default: 5 s) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s) mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s) @@ -74,6 +76,8 @@ net: X10 = 5 s Timeout for fully configured MGW endpoint (default: 5 s) net: X11 = 5 s Timeout for Perform Location Response from SMLC (default: 5 s) net: X12 = 5 s Timeout for obtaining TA after BSSLAP TA Request (default: 5 s) +net: X13 = 5 s Timeout for RR Channel Mode Modify ACK (BSC <-> MS) (default: 5 s) +net: X14 = 5 s Timeout for RSL Channel Mode Modify ACK (BSC <-> BTS) (default: 5 s) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s) mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6364cfb78f661f5f7473dcec488e361e6a1dc9e4 Gerrit-Change-Number: 23942 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Fri Apr 30 14:23:08 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 14:23:08 +0000 Subject: Change in osmo-bsc[master]: lchan and assignment FSMs: make Channel Mode Modify more sane In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23943 ) Change subject: lchan and assignment FSMs: make Channel Mode Modify more sane ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23943/1/src/osmo-bsc/lchan_fsm.c File src/osmo-bsc/lchan_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23943/1/src/osmo-bsc/lchan_fsm.c at 413 PS1, Line 413: goto abort; > Why don't you just call lchan_on_mode_modify_failure() here? copy paste artifact from lchan_activate i guess. thx -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4986844f839b1c9672c61d916eb3d33d0042d747 Gerrit-Change-Number: 23943 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 14:23:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 14:25:00 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 14:25:00 +0000 Subject: Change in osmo-bsc[master]: lchan and assignment FSMs: make Channel Mode Modify more sane 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/+/23943 to look at the new patch set (#2). Change subject: lchan and assignment FSMs: make Channel Mode Modify more sane ...................................................................... lchan and assignment FSMs: make Channel Mode Modify more sane The Channel Mode Modify procedure is currently implemented for changing a TCH lchan from signalling to voice mode. For that, however, it is re-using (abusing) the channel activation structs and state transitions, and thus always implies activating a voice stream when the mode modification is done. I will add a Channel Mode Modify to enable VAMOS mode soon, so I require separate structs and state transitions which also work on an lchan that already has a voice stream established: a struct lchan_modify_info and LCHAN_EV_REQUEST_MODE_MODIFY, and dedicated assignment FSM state ASSIGNMENT_ST_WAIT_LCHAN_MODIFIED. For the part where a Channel Mode Modify enables a voice stream after switching from signalling to speech mode, still use the channel activation code path, but only once the mode modification is done. General improvements: - To ask for a mode modification, emit an FSM event that ensures a mode modify only happens when the lchan state allows it. - The new lchan_modify_info struct reflects only those parts that have an effect during a mode modification (before the lchan_activate_info was fully populated, many values not having an effect). - More accurate logging, indicating "Mode Modify" instead of "Channel Activation" A TTCN3 test for the Channel Mode Modify procedure is added in Idf4efaed986de0bbd2b663313e837352cc139f0f, and the test passes both before and after this patch is applied. Related: SYS#4895 Change-Id: I4986844f839b1c9672c61d916eb3d33d0042d747 --- M doc/assignment-fsm.dot M include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/lchan_fsm.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/lchan_fsm.c 6 files changed, 205 insertions(+), 67 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/43/23943/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4986844f839b1c9672c61d916eb3d33d0042d747 Gerrit-Change-Number: 23943 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 14:26:58 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 14:26:58 +0000 Subject: Change in osmo-bsc[master]: lchan and assignment FSMs: make Channel Mode Modify more sane 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/+/23943 to look at the new patch set (#3). Change subject: lchan and assignment FSMs: make Channel Mode Modify more sane ...................................................................... lchan and assignment FSMs: make Channel Mode Modify more sane The Channel Mode Modify procedure is currently implemented for changing a TCH lchan from signalling to voice mode. For that, however, it is re-using (abusing) the channel activation structs and state transitions, and thus always implies activating a voice stream when the mode modification is done. I will add a Channel Mode Modify to enable VAMOS mode soon, so I require separate structs and state transitions which also work on an lchan that already has a voice stream established: a struct lchan_modify_info and LCHAN_EV_REQUEST_MODE_MODIFY, and dedicated assignment FSM state ASSIGNMENT_ST_WAIT_LCHAN_MODIFIED. For the part where a Channel Mode Modify enables a voice stream after switching from signalling to speech mode, still use the channel activation code path, but only once the mode modification is done. General improvements: - To ask for a mode modification, emit an FSM event that ensures a mode modify only happens when the lchan state allows it. - The new lchan_modify_info struct reflects only those parts that have an effect during a mode modification (before the lchan_activate_info was fully populated, many values not having an effect). - More accurate logging, indicating "Mode Modify" instead of "Channel Activation" A TTCN3 test for the Channel Mode Modify procedure is added in Idf4efaed986de0bbd2b663313e837352cc139f0f, and the test passes both before and after this patch is applied. Related: SYS#4895 Change-Id: I4986844f839b1c9672c61d916eb3d33d0042d747 --- M doc/assignment-fsm.dot M include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/lchan_fsm.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/lchan_fsm.c 6 files changed, 202 insertions(+), 67 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/43/23943/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4986844f839b1c9672c61d916eb3d33d0042d747 Gerrit-Change-Number: 23943 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 14:29:23 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 14:29:23 +0000 Subject: Change in osmo-bsc[master]: lchan and assignment FSMs: make Channel Mode Modify more sane In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23943 ) Change subject: lchan and assignment FSMs: make Channel Mode Modify more sane ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4986844f839b1c9672c61d916eb3d33d0042d747 Gerrit-Change-Number: 23943 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 14:29:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 14:43:17 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Fri, 30 Apr 2021 14:43:17 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 5: (1 comment) Hi, Thanks again for taking a look. Reply to your comment is maybe long but hopefully clear. -Michael https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 586 PS4, Line 586: int downtime_seconds = BTS_DOWNTIME_SAMPLE_INTERVAL - uptime_seconds; > I'm still not getting it, I'm sorry. Or maybe I'm getting it but I still find it really strange. [?] Let's back up a bit maybe. Currently there is no way determine a BTS uptime other than by polling it via the VTY. If the BSC restarts for some reason, all uptime tracking is lost. I wanted to have the uptime available via the statsd interface so each BTS uptime during any given period can be known without risking losing state in a restart. So, originally I wrote this to run every second and count uptime. Are we up? Good, increment the uptime counter. This value is summed every X seconds when statsd runs and the value is exported. Every interval of statsd would contain between 0 and X seconds of uptime. I can sum these intervals, for example, for an hour and the difference between that number and 3600 will be my downtime. Straightforward I thought. This approach was rejected. It ran too often, abused the counter interface, and counted uptime instead of downtime. OK, so now I've changed to using a stat_item, only running every INTERVAL seconds and counting downtime. The BTS_DOWNTIME_SAMPLE_INTERVAL value now represents the maximum amount of downtime that we would be willing to let go missing if a restart would occur because it isn't getting pushed into the statsd system. When we execute the periodic timer to calculate downtime we see how many seconds of uptime have elapsed and take the difference from the interval to determine downtime. Downtime is added to the stat_item. When the statsd system exports these values every X seconds, we have between 0 and X seconds of downtime in that period. Sum up all these periods and you can see total downtime for each BTS during any given timeframe. Suggestions welcome. I've tried my best to address concerns but am running out of ideas. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 5 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Fri, 30 Apr 2021 14:43:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: iedemam 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 Apr 30 15:05:53 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 15:05:53 +0000 Subject: Change in pysim[master]: ts_51_011: fix encoding of EF.MSISDN References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23997 ) Change subject: ts_51_011: fix encoding of EF.MSISDN ...................................................................... ts_51_011: fix encoding of EF.MSISDN The json input that is used with EF.MSISDN seems to be somewhat ambigious. The original code accepts {"msisdn": "+4916012345678"} only while the output is {"msisdn": [1, 1, "+4916012345678"]}. Lets add a check and also accept the latter version. Change-Id: I8f8dd68aac25d3fa3bc1aab06b855f8ec6640258 Related: OS#4963 --- M pySim/ts_51_011.py 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/97/23997/1 diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 9123330..15a7907 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -381,7 +381,11 @@ def _decode_record_hex(self, raw_hex_data): return {'msisdn': dec_msisdn(raw_hex_data)} def _encode_record_hex(self, abstract): - encoded_msisdn = enc_msisdn(abstract['msisdn']) + msisdn = abstract['msisdn'] + if type(msisdn) == str: + encoded_msisdn = enc_msisdn(msisdn) + else: + encoded_msisdn = enc_msisdn(msisdn[2],msisdn[0],msisdn[1]) alpha_identifier = (list(self.rec_len)[0] - len(encoded_msisdn) // 2) * "ff" return alpha_identifier + encoded_msisdn -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8f8dd68aac25d3fa3bc1aab06b855f8ec6640258 Gerrit-Change-Number: 23997 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 15:05:53 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 15:05:53 +0000 Subject: Change in pysim[master]: utils: specify paremeters of enc_plmn() as string References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23998 ) Change subject: utils: specify paremeters of enc_plmn() as string ...................................................................... utils: specify paremeters of enc_plmn() as string To prevent missunderstandings when using enc_plmn(), specify the input parameters as string. Change-Id: I57cf8e2de357650aef2a06fbffc7615ccb2a45b4 Related: OS#4963 --- M pySim/utils.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/98/23998/1 diff --git a/pySim/utils.py b/pySim/utils.py index a177c56..6034da4 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -134,7 +134,7 @@ def enc_iccid(iccid:str) -> Hexstr: return swap_nibbles(rpad(iccid, 20)) -def enc_plmn(mcc, mnc): +def enc_plmn(mcc:str, mnc:str): """Converts integer MCC/MNC into 3 bytes for EF""" if len(mnc) == 2: mnc += "F" # pad to 3 digits if needed -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I57cf8e2de357650aef2a06fbffc7615ccb2a45b4 Gerrit-Change-Number: 23998 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 15:05:54 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 15:05:54 +0000 Subject: Change in pysim[master]: utils: fix mcc/mnc encoding in dec_plmn (EF_PLMNsel) References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23999 ) Change subject: utils: fix mcc/mnc encoding in dec_plmn (EF_PLMNsel) ...................................................................... utils: fix mcc/mnc encoding in dec_plmn (EF_PLMNsel) The dec_plmn function takes an hexstring and returns the decoded MCC and MNC as integer values. The result is then used by the json encoder in EF_PLMNsel, which means the json output will contrary to the input, use integer values instead of strings. This is not correct since there may be leading zeros (e.g. mnc 01 and 001 both exist are different) which must be retained in order to know the correct length of the MNC. Related: OS#4963 Change-Id: I393e04836814d992d2a6d0a4e4e01850976d6e81 --- M pySim/utils.py M tests/test_utils.py 2 files changed, 55 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/99/23999/1 diff --git a/pySim/utils.py b/pySim/utils.py index 6034da4..ac28624 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -136,14 +136,35 @@ def enc_plmn(mcc:str, mnc:str): """Converts integer MCC/MNC into 3 bytes for EF""" - if len(mnc) == 2: - mnc += "F" # pad to 3 digits if needed + + # Make sure there are no excess whitespaces in the input + # parameters + mcc = mcc.strip() + mnc = mnc.strip() + + # Make sure that MCC/MNC are correctly padded with leading + # zeros or 'F', depending on the length. + if len(mnc) == 0: + mnc = "FFF" + elif len(mnc) == 1: + mnc = "F0" + mnc + elif len(mnc) == 2: + mnc += "F" + + if len(mcc) == 0: + mcc = "FFF" + elif len(mcc) == 1: + mcc = "00" + mcc + elif len(mcc) == 2: + mcc = "0" + mcc + return (mcc[1] + mcc[0]) + (mnc[2] + mcc[2]) + (mnc[1] + mnc[0]) def dec_plmn(threehexbytes:Hexstr) -> dict: - res = {'mcc': 0, 'mnc': 0 } - res['mcc'] = dec_mcc_from_plmn(threehexbytes) - res['mnc'] = dec_mnc_from_plmn(threehexbytes) + res = {'mcc': "0", 'mnc': "0" } + dec_mcc_from_plmn_str(threehexbytes) + res['mcc'] = dec_mcc_from_plmn_str(threehexbytes) + res['mnc'] = dec_mnc_from_plmn_str(threehexbytes) return res def dec_spn(ef): @@ -172,6 +193,13 @@ return 0xFFF # 4095 return derive_mcc(digit1, digit2, digit3) +def dec_mcc_from_plmn_str(plmn:Hexstr) -> str: + digit1 = plmn[1] # 1st byte, LSB + digit2 = plmn[0] # 1st byte, MSB + digit3 = plmn[3] # 2nd byte, LSB + res = digit1 + digit2 + digit3 + return res.upper().strip("F") + def dec_mnc_from_plmn(plmn:Hexstr) -> int: ia = h2i(plmn) digit1 = ia[2] & 0x0F # 3rd byte, LSB @@ -181,6 +209,13 @@ return 0xFFF # 4095 return derive_mnc(digit1, digit2, digit3) +def dec_mnc_from_plmn_str(plmn:Hexstr) -> str: + digit1 = plmn[5] # 3rd byte, LSB + digit2 = plmn[4] # 3rd byte, MSB + digit3 = plmn[2] # 2nd byte, MSB + res = digit1 + digit2 + digit3 + return res.upper().strip("F") + def dec_act(twohexbytes:Hexstr) -> List[str]: act_list = [ {'bit': 15, 'name': "UTRAN"}, diff --git a/tests/test_utils.py b/tests/test_utils.py index 71c0eb0..b70b17b 100755 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -37,6 +37,12 @@ def testDecMCCfromPLMN_unused(self): self.assertEqual(utils.dec_mcc_from_plmn("ff0f00"), 4095) + def testDecMCCfromPLMN_str(self): + self.assertEqual(utils.dec_mcc_from_plmn_str("92f501"), "295") + + def testDecMCCfromPLMN_unused_str(self): + self.assertEqual(utils.dec_mcc_from_plmn_str("ff0f00"), "") + def testDecMNCfromPLMN_twoDigitMNC(self): self.assertEqual(utils.dec_mnc_from_plmn("92f501"), 10) @@ -46,6 +52,15 @@ def testDecMNCfromPLMN_unused(self): self.assertEqual(utils.dec_mnc_from_plmn("00f0ff"), 4095) + def testDecMNCfromPLMN_twoDigitMNC_str(self): + self.assertEqual(utils.dec_mnc_from_plmn_str("92f501"), "10") + + def testDecMNCfromPLMN_threeDigitMNC_str(self): + self.assertEqual(utils.dec_mnc_from_plmn_str("031263"), "361") + + def testDecMNCfromPLMN_unused_str(self): + self.assertEqual(utils.dec_mnc_from_plmn_str("00f0ff"), "") + def test_enc_plmn(self): with self.subTest("2-digit MCC"): self.assertEqual(utils.enc_plmn("001", "01F"), "00F110") -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I393e04836814d992d2a6d0a4e4e01850976d6e81 Gerrit-Change-Number: 23999 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 15:05:54 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 15:05:54 +0000 Subject: Change in pysim[master]: ts_51_011: fix encoder of EF.CNL References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/24000 ) Change subject: ts_51_011: fix encoder of EF.CNL ...................................................................... ts_51_011: fix encoder of EF.CNL The encoder of EF.CNL is using "res" to reference some fields in the input dictionary, this is wrong, it should use "in_json" instead Change-Id: I6b07c91042ae3a87c561671689ec236918254ddf --- M pySim/ts_51_011.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/00/24000/1 diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 15a7907..14be6dc 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -649,8 +649,8 @@ return res def _encode_record_hex(self, in_json): plmn = enc_plmn(in_json['mcc'], in_json['mnc']) - return b2h(pack('!3sBBB', h2b(plmn), res['network_subset'], res['service_provider_id'], - res['corporate_id'])) + return b2h(pack('!3sBBB', h2b(plmn), in_json['network_subset'], in_json['service_provider_id'], + in_json['corporate_id'])) # TS 51.011 Section 10.3.31 class EF_NIA(LinFixedEF): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6b07c91042ae3a87c561671689ec236918254ddf Gerrit-Change-Number: 24000 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 15:18:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 15:18:50 +0000 Subject: Change in osmo-bsc[master]: fix test_gsm48_multirate_config: dump the complete AMR lv buffer References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24001 ) Change subject: fix test_gsm48_multirate_config: dump the complete AMR lv buffer ...................................................................... fix test_gsm48_multirate_config: dump the complete AMR lv buffer It's acceptable to verify an outcome by printing to an expected output. It's unacceptable to commit those expected outputs without first verifying that they are in fact correct! In this case, the output has obviously not been even read, since the length byte clearly indicates that one byte is missing from each buffer dump. I have now verified by hand against 3GPP TS 44.018 that each one of the generated octets are indeed correct. Change-Id: I92fcc7afe018a4a8dc91f0f2167e3a7835f623c9 --- M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok 2 files changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/01/24001/1 diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index 7545381..9a1d3cf 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -810,7 +810,7 @@ rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 4); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, - osmo_hexdump_nospc(lv, lv[0])); + osmo_hexdump_nospc(lv, 1 + lv[0])); /* Test #2: 4 active set members, but wrong mode order: */ mr.ms_mode[3].mode = 2; @@ -832,7 +832,7 @@ rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 3); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, - osmo_hexdump_nospc(lv, lv[0])); + osmo_hexdump_nospc(lv, 1 + lv[0])); /* Test #4: 3 active set members, but wrong mode order: */ mr.ms_mode[0].mode = 2; @@ -852,7 +852,7 @@ rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 2); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, - osmo_hexdump_nospc(lv, lv[0])); + osmo_hexdump_nospc(lv, 1 + lv[0])); /* Test #6: 2 active set members, but wrong mode order: */ mr.ms_mode[1].mode = 2; @@ -870,7 +870,7 @@ rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 1); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, - osmo_hexdump_nospc(lv, lv[0])); + osmo_hexdump_nospc(lv, 1 + lv[0])); /* Test #8: 0 active set members: */ mr.ms_mode[0].mode = 0; diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok index 7e054f4..f1aa463 100644 --- a/tests/gsm0408/gsm0408_test.ok +++ b/tests/gsm0408/gsm0408_test.ok @@ -239,8 +239,8 @@ test_gsm48_ra_id_by_bts[4]: digits='999999' lac=0xffff=htons(65535) rac=0xff=255 pass test_gsm48_ra_id_by_bts[5]: digits='09f909' lac=0xcdab=htons(43981) rac=0xab=171 pass test_gsm48_ra_id_by_bts[6]: digits='090990' lac=0xcdab=htons(43981) rac=0xab=171 pass -gsm48_multirate_config(): rc=0, lv=0620b40bf330 -gsm48_multirate_config(): rc=0, lv=0520340bf3 -gsm48_multirate_config(): rc=0, lv=0420140b -gsm48_multirate_config(): rc=0, lv=0220 +gsm48_multirate_config(): rc=0, lv=0620b40bf330d8 +gsm48_multirate_config(): rc=0, lv=0520340bf330 +gsm48_multirate_config(): rc=0, lv=0420140bf0 +gsm48_multirate_config(): rc=0, lv=022004 Done. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I92fcc7afe018a4a8dc91f0f2167e3a7835f623c9 Gerrit-Change-Number: 24001 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 Apr 30 15:18:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 15:18:50 +0000 Subject: Change in osmo-bsc[master]: test_gsm48_multirate_config: rather keep 4x amr_mode References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24002 ) Change subject: test_gsm48_multirate_config: rather keep 4x amr_mode ...................................................................... test_gsm48_multirate_config: rather keep 4x amr_mode In osmo-bsc, gsm48_multirate_config() is used in a way where the struct amr_mode *modes always points at the full set of configured modes, and only the AMR bits m4_75 thru m12_2 are unset to filter the used modes. In the current test, the bits are unset to filter, but also the struct amr_mode *modes is reduced accordingly. Instead, keep the modes fully populated and unset only bits, like osmo-bsc does in practice. The test results should not (and do not) differ. Change-Id: I545de6fb66a4b74a3f08899795b4b4d9c4538f58 --- M tests/gsm0408/gsm0408_test.c 1 file changed, 12 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/02/24002/1 diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index 9a1d3cf..8220c4f 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -824,12 +824,12 @@ mr.ms_mode[0].mode = 2; mr.ms_mode[1].mode = 4; mr.ms_mode[2].mode = 5; - mr.ms_mode[3].mode = 0; + mr.ms_mode[3].mode = 7; gsm48_ie->m12_2 = 0; mr.ms_mode[2].threshold = 0; mr.ms_mode[2].hysteresis = 0; - rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 3); + rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 4); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, osmo_hexdump_nospc(lv, 1 + lv[0])); @@ -838,18 +838,19 @@ mr.ms_mode[0].mode = 2; mr.ms_mode[2].mode = 4; mr.ms_mode[1].mode = 5; - rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 3); + rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 4); OSMO_ASSERT(rc == -EINVAL); /* Test #5: Normal configuration with 2 active set members */ mr.ms_mode[0].mode = 2; mr.ms_mode[1].mode = 4; - mr.ms_mode[2].mode = 0; + mr.ms_mode[2].mode = 5; + mr.ms_mode[3].mode = 7; gsm48_ie->m7_95 = 0; mr.ms_mode[1].threshold = 0; mr.ms_mode[1].hysteresis = 0; - rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 2); + rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 4); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, osmo_hexdump_nospc(lv, 1 + lv[0])); @@ -857,24 +858,26 @@ /* Test #6: 2 active set members, but wrong mode order: */ mr.ms_mode[1].mode = 2; mr.ms_mode[0].mode = 4; - rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 2); + rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 4); OSMO_ASSERT(rc == -EINVAL); /* Test #7: Normal configuration with 1 active set member */ mr.ms_mode[0].mode = 2; - mr.ms_mode[1].mode = 0; + mr.ms_mode[1].mode = 4; + mr.ms_mode[2].mode = 5; + mr.ms_mode[3].mode = 7; gsm48_ie->m7_40 = 0; mr.ms_mode[0].threshold = 0; mr.ms_mode[0].hysteresis = 0; - rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 1); + rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 4); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, osmo_hexdump_nospc(lv, 1 + lv[0])); /* Test #8: 0 active set members: */ mr.ms_mode[0].mode = 0; - rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 1); + rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 4); OSMO_ASSERT(rc == -EINVAL); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I545de6fb66a4b74a3f08899795b4b4d9c4538f58 Gerrit-Change-Number: 24002 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 Apr 30 15:21:14 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 15:21:14 +0000 Subject: Change in pysim[master]: utils: fix dec_xplmn_w_act() and format_xplmn_w_act() References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/24003 ) Change subject: utils: fix dec_xplmn_w_act() and format_xplmn_w_act() ...................................................................... utils: fix dec_xplmn_w_act() and format_xplmn_w_act() The function dec_xplmn_w_act(), which is also used by format_xplmn_w_act() is using integer numbers as MCC/MNC representation. This causes various problems since the information about leading zeros gets lost. Change-Id: I57f7dff80f48071ef9a3732ae1088882b127a6d4 --- M pySim/utils.py M tests/test_utils.py 2 files changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/03/24003/1 diff --git a/pySim/utils.py b/pySim/utils.py index ac28624..00cbb5d 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -234,13 +234,13 @@ return sel def dec_xplmn_w_act(fivehexbytes:Hexstr) -> Dict[str,Any]: - res = {'mcc': 0, 'mnc': 0, 'act': []} + res = {'mcc': "0", 'mnc': "0", 'act': []} plmn_chars = 6 act_chars = 4 plmn_str = fivehexbytes[:plmn_chars] # first three bytes (six ascii hex chars) act_str = fivehexbytes[plmn_chars:plmn_chars + act_chars] # two bytes after first three bytes - res['mcc'] = dec_mcc_from_plmn(plmn_str) - res['mnc'] = dec_mnc_from_plmn(plmn_str) + res['mcc'] = dec_mcc_from_plmn_str(plmn_str) + res['mnc'] = dec_mnc_from_plmn_str(plmn_str) res['act'] = dec_act(act_str) return res @@ -248,10 +248,10 @@ s = "" for rec_data in hexstr_to_Nbytearr(hexstr, 5): rec_info = dec_xplmn_w_act(rec_data) - if rec_info['mcc'] == 0xFFF and rec_info['mnc'] == 0xFFF: + if rec_info['mcc'] == "" and rec_info['mnc'] == "": rec_str = "unused" else: - rec_str = "MCC: %03d MNC: %03d AcT: %s" % (rec_info['mcc'], rec_info['mnc'], ", ".join(rec_info['act'])) + rec_str = "MCC: %s MNC: %s AcT: %s" % (rec_info['mcc'], rec_info['mnc'], ", ".join(rec_info['act'])) s += "\t%s # %s\n" % (rec_data, rec_str) return s diff --git a/tests/test_utils.py b/tests/test_utils.py index b70b17b..558b5e7 100755 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -96,13 +96,13 @@ self.assertEqual(utils.dec_act("ffff"), ["UTRAN", "E-UTRAN", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"]) def testDecxPlmn_w_act(self): - expected = {'mcc': 295, 'mnc': 10, 'act': ["UTRAN"]} + expected = {'mcc': '295', 'mnc': '10', 'act': ["UTRAN"]} self.assertEqual(utils.dec_xplmn_w_act("92f5018000"), expected) def testFormatxPlmn_w_act(self): input_str = "92f501800092f5508000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000" - expected = "\t92f5018000 # MCC: 295 MNC: 010 AcT: UTRAN\n" - expected += "\t92f5508000 # MCC: 295 MNC: 005 AcT: UTRAN\n" + expected = "\t92f5018000 # MCC: 295 MNC: 10 AcT: UTRAN\n" + expected += "\t92f5508000 # MCC: 295 MNC: 05 AcT: UTRAN\n" expected += "\tffffff0000 # unused\n" expected += "\tffffff0000 # unused\n" expected += "\tffffff0000 # unused\n" -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I57f7dff80f48071ef9a3732ae1088882b127a6d4 Gerrit-Change-Number: 24003 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 15:21:14 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 15:21:14 +0000 Subject: Change in pysim[master]: ts_51_011, utils: fix Access Technology Identifier coding References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/24004 ) Change subject: ts_51_011, utils: fix Access Technology Identifier coding ...................................................................... ts_51_011, utils: fix Access Technology Identifier coding When the Access Technology Identifier encoder sets the bits for E-UTRAN it does not respect that bit "100" is also a valid bit combination that encodes E-UTRAN WB-S1 and E-UTRAN NB-S1. Lets encode this bit combination if the user is just specifying "E-UTRAN" without further spefication of WB or NB. The decoder only looks at bit 14 and decodes "1xx" always to "E-UTRAN". This is not specific enough. Lets make sure that the decoder is complementary to the encoder. Change-Id: Ibfe8883a05f9ad6988d8e212cb9a598229954296 Related: OS#4963 --- M pySim/ts_51_011.py M pySim/utils.py M tests/test_utils.py 3 files changed, 17 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/04/24004/1 diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 14be6dc..1675aaf 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -704,6 +704,8 @@ if 'cdma2000 1xRTT' in in_list: u16 |= 0x0010 # E-UTRAN + if 'E-UTRAN' in in_list: + u16 |= 0x4000 if 'E-UTRAN WB-S1' in in_list: u16 |= 0x6000 if 'E-UTRAN NB-S1' in in_list: diff --git a/pySim/utils.py b/pySim/utils.py index 00cbb5d..78058fc 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -230,7 +230,20 @@ sel = [] for a in act_list: if u16t & (1 << a['bit']): - sel.append(a['name']) + if a['name'] == "E-UTRAN": + # The Access technology identifier of E-UTRAN + # allows a more detailed specification: + if u16t & (1 << 13) and u16t & (1 << 12): + sel.append("E-UTRAN WB-S1") + sel.append("E-UTRAN NB-S1") + elif u16t & (1 << 13): + sel.append("E-UTRAN WB-S1") + elif u16t & (1 << 12): + sel.append("E-UTRAN NB-S1") + else: + sel.append("E-UTRAN") + else: + sel.append(a['name']) return sel def dec_xplmn_w_act(fivehexbytes:Hexstr) -> Dict[str,Any]: diff --git a/tests/test_utils.py b/tests/test_utils.py index 558b5e7..0fb502c 100755 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -93,7 +93,7 @@ self.assertEqual(utils.dec_act("0010"), ["cdma2000 1xRTT"]) def testDecAct_allSet(self): - self.assertEqual(utils.dec_act("ffff"), ["UTRAN", "E-UTRAN", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"]) + self.assertEqual(utils.dec_act("ffff"), ["UTRAN", "E-UTRAN WB-S1", "E-UTRAN NB-S1", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"]) def testDecxPlmn_w_act(self): expected = {'mcc': '295', 'mnc': '10', 'act': ["UTRAN"]} -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibfe8883a05f9ad6988d8e212cb9a598229954296 Gerrit-Change-Number: 24004 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 15:21:14 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 15:21:14 +0000 Subject: Change in pysim[master]: utils: specify type of parameter name in enc_spn References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/24005 ) Change subject: utils: specify type of parameter name in enc_spn ...................................................................... utils: specify type of parameter name in enc_spn Related: OS#4963 Change-Id: I43a1e68afe9e756346bc0cfe8bda4ac665ac6c54 --- M pySim/utils.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/05/24005/1 diff --git a/pySim/utils.py b/pySim/utils.py index 78058fc..bcfa2ac 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -174,7 +174,7 @@ name = h2s(ef[2:]) return (name, hplmn_disp, oplmn_disp) -def enc_spn(name, hplmn_disp=False, oplmn_disp=False): +def enc_spn(name:str, hplmn_disp=False, oplmn_disp=False): byte1 = 0x00 if hplmn_disp: byte1 = byte1|0x01 if oplmn_disp: byte1 = byte1|0x02 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I43a1e68afe9e756346bc0cfe8bda4ac665ac6c54 Gerrit-Change-Number: 24005 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 15:21:15 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 15:21:15 +0000 Subject: Change in pysim[master]: ts_51_011: fix encoder of EF_SPN: References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/24006 ) Change subject: ts_51_011: fix encoder of EF_SPN: ...................................................................... ts_51_011: fix encoder of EF_SPN: The encoder for EF_SPN is passing the 'spn' parameter (which is a list) directly to enc_spn without taking it apart first. Change-Id: I0a405793c8909d4279e634b93dcb76e5cb2963f3 Related: OS#4963 --- M pySim/ts_51_011.py 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/06/24006/1 diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 1675aaf..8e4428c 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -522,7 +522,8 @@ def _decode_hex(self, raw_hex): return {'spn': dec_spn(raw_hex)} def _encode_hex(self, abstract): - return enc_spn(abstract['spn']) + spn = abstract['spn'] + return enc_spn(spn[0], spn[1], spn[2]) # TS 51.011 Section 10.3.13 class EF_CBMI(TransRecEF): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0a405793c8909d4279e634b93dcb76e5cb2963f3 Gerrit-Change-Number: 24006 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 15:48:35 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 15:48:35 +0000 Subject: Change in pysim[master]: utils: fix dec_xplmn_w_act() and format_xplmn_w_act() 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/+/24003 to look at the new patch set (#2). Change subject: utils: fix dec_xplmn_w_act() and format_xplmn_w_act() ...................................................................... utils: fix dec_xplmn_w_act() and format_xplmn_w_act() The function dec_xplmn_w_act(), which is also used by format_xplmn_w_act() is using integer numbers as MCC/MNC representation. This causes various problems since the information about leading zeros gets lost. Change-Id: I57f7dff80f48071ef9a3732ae1088882b127a6d4 --- M pySim/utils.py M pysim-testdata/Fairwaves-SIM.ok M pysim-testdata/Wavemobile-SIM.ok M pysim-testdata/sysmoISIM-SJA2.ok M pysim-testdata/sysmoUSIM-SJS1.ok M tests/test_utils.py 6 files changed, 17 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/03/24003/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I57f7dff80f48071ef9a3732ae1088882b127a6d4 Gerrit-Change-Number: 24003 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 Fri Apr 30 16:00:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:00:10 +0000 Subject: Change in osmo-bsc[master]: manual: Include QoS chapter and add osmo-bsc specific example References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24007 ) Change subject: manual: Include QoS chapter and add osmo-bsc specific example ...................................................................... manual: Include QoS chapter and add osmo-bsc specific example Change-Id: I3b1d44fc545725172142b903190a3ff5094805dd Requires: osmo-gsm-manuals.git Id344c29eda2a9b3e36376302b425e9db1f6c0f28 Requires: libosmo-abis.git I8991dd6eb406a5b9a70498974fc1ad339452f871 --- A doc/manuals/chapters/qos-example.adoc M doc/manuals/osmobsc-usermanual.adoc 2 files changed, 48 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/24007/1 diff --git a/doc/manuals/chapters/qos-example.adoc b/doc/manuals/chapters/qos-example.adoc new file mode 100644 index 0000000..2f88b93 --- /dev/null +++ b/doc/manuals/chapters/qos-example.adoc @@ -0,0 +1,46 @@ +==== Full example of QoS for osmo-bsc downlink QoS + +In the below example we will show the full set of configuration required +for both DSCP and PCP differentiation of downlink Abis traffic by osmo-bsc. + +What we want to achieve in this example is the following configuration: + +.DSCP and PCP assignments for osmo-bsc downlink traffic in this example +[options="header",width="30%",cols="2,1,1"] +|=== +|Traffic |DSCP|PCP +|A-bis RSL | 56| 7 +|A-bis RTP | 46| 6 +|A-bis OML | 34| 5 +|=== + +. configure the osmocom program to set the DSCP value +. configure an egrees QoS map to map from priority to PCP + +.Example Step 1: add related VTY configuration to `osmo-bsc.cfg` +---- +... +e1_input + ipa ip-dscp oml 34 + ipa socket-priority oml 5 + ipa ip-dscp rsl 56 + ipa socket-priority rsl 7 +... +---- + +.Example Step 2: egress QoS map to map from socket priority to PCP values +---- +$ sudo ip link set dev eth0.9<1> type vlan egress-qos-map 0:0 5:5 6:6 7:7 <2> +---- +<1> make sure to specify your specific VLAN interface name here instead of `eth0.9`. +<2> create a egress QoS map that maps the priority value 1:1 to the PCP. We also include the + mapping 6:6 from the osmo-mgw example (see <>) here. + +NOTE:: The settings of the `ip` command are volatile and only active until +the next reboot (or the network device or VLAN is removed). Please refer to +the documentation of your specific Linux distribution in order to find out how +to make such settings persistent by means of an `ifup` hook whenever the interface +comes up. For CentOS/RHEL 8 this can e.g. be achieved by means of an `/sbin/ifup-local +script` (when using `network-scripts` and not NetworkManager). For Debian or Ubuntu, +this typically involves adding `up` lines to `/etc/network/interfaces` or a `/etc/network/if-up.d` +script. diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc index e66b2be..c7589cc 100644 --- a/doc/manuals/osmobsc-usermanual.adoc +++ b/doc/manuals/osmobsc-usermanual.adoc @@ -34,6 +34,8 @@ include::{srcdir}/chapters/smlc.adoc[] +include::./common/chapters/qos-dscp-pcp.adoc[] + include::./common/chapters/counters-overview.adoc[] include::{srcdir}/chapters/counters.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3b1d44fc545725172142b903190a3ff5094805dd Gerrit-Change-Number: 24007 Gerrit-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 Apr 30 16:05:17 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 16:05:17 +0000 Subject: Change in pysim[master]: ts_51_011, utils: fix Access Technology Identifier coding 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/+/24004 to look at the new patch set (#3). Change subject: ts_51_011, utils: fix Access Technology Identifier coding ...................................................................... ts_51_011, utils: fix Access Technology Identifier coding When the Access Technology Identifier encoder sets the bits for E-UTRAN it does not respect that bit "100" is also a valid bit combination that encodes E-UTRAN WB-S1 and E-UTRAN NB-S1. Lets encode this bit combination if the user is just specifying "E-UTRAN" without further spefication of WB or NB. The decoder only looks at bit 14 and decodes "1xx" always to "E-UTRAN". This is not specific enough. Lets make sure that the decoder is complementary to the encoder. Change-Id: Ibfe8883a05f9ad6988d8e212cb9a598229954296 Related: OS#4963 --- M pySim/ts_51_011.py M pySim/utils.py M pysim-testdata/Fairwaves-SIM.ok M pysim-testdata/Wavemobile-SIM.ok M pysim-testdata/sysmoISIM-SJA2.ok M pysim-testdata/sysmoUSIM-SJS1.ok M tests/test_utils.py 7 files changed, 26 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/04/24004/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibfe8883a05f9ad6988d8e212cb9a598229954296 Gerrit-Change-Number: 24004 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 Fri Apr 30 16:07:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:07:48 +0000 Subject: Change in pysim[master]: ts_51_011: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23997 ) Change subject: ts_51_011: fix encoding of EF.MSISDN ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8f8dd68aac25d3fa3bc1aab06b855f8ec6640258 Gerrit-Change-Number: 23997 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 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 Fri Apr 30 16:08:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:08:56 +0000 Subject: Change in pysim[master]: utils: specify paremeters of enc_plmn() as string In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23998 ) Change subject: utils: specify paremeters of enc_plmn() as string ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/pysim/+/23998/1/pySim/utils.py File pySim/utils.py: https://gerrit.osmocom.org/c/pysim/+/23998/1/pySim/utils.py at a137 PS1, Line 137: def enc_plmn(mcc, mnc): I think it should/could even be Hexstr, as we use this in other places where we expect a string of hexadecimal nibbles. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I57cf8e2de357650aef2a06fbffc7615ccb2a45b4 Gerrit-Change-Number: 23998 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 16:08: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 Fri Apr 30 16:09:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:09:00 +0000 Subject: Change in pysim[master]: ts_51_011: fix encoding of EF.MSISDN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/23997 ) Change subject: ts_51_011: fix encoding of EF.MSISDN ...................................................................... ts_51_011: fix encoding of EF.MSISDN The json input that is used with EF.MSISDN seems to be somewhat ambigious. The original code accepts {"msisdn": "+4916012345678"} only while the output is {"msisdn": [1, 1, "+4916012345678"]}. Lets add a check and also accept the latter version. Change-Id: I8f8dd68aac25d3fa3bc1aab06b855f8ec6640258 Related: OS#4963 --- M pySim/ts_51_011.py 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 9123330..15a7907 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -381,7 +381,11 @@ def _decode_record_hex(self, raw_hex_data): return {'msisdn': dec_msisdn(raw_hex_data)} def _encode_record_hex(self, abstract): - encoded_msisdn = enc_msisdn(abstract['msisdn']) + msisdn = abstract['msisdn'] + if type(msisdn) == str: + encoded_msisdn = enc_msisdn(msisdn) + else: + encoded_msisdn = enc_msisdn(msisdn[2],msisdn[0],msisdn[1]) alpha_identifier = (list(self.rec_len)[0] - len(encoded_msisdn) // 2) * "ff" return alpha_identifier + encoded_msisdn -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8f8dd68aac25d3fa3bc1aab06b855f8ec6640258 Gerrit-Change-Number: 23997 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 Fri Apr 30 16:09:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:09:38 +0000 Subject: Change in pysim[master]: utils: fix mcc/mnc encoding in dec_plmn (EF_PLMNsel) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23999 ) Change subject: utils: fix mcc/mnc encoding in dec_plmn (EF_PLMNsel) ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I393e04836814d992d2a6d0a4e4e01850976d6e81 Gerrit-Change-Number: 23999 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 16:09: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 Apr 30 16:09:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:09:53 +0000 Subject: Change in pysim[master]: ts_51_011: fix encoder of EF.CNL In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/24000 ) Change subject: ts_51_011: fix encoder of EF.CNL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6b07c91042ae3a87c561671689ec236918254ddf Gerrit-Change-Number: 24000 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 16:09:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 16:10:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:10:22 +0000 Subject: Change in pysim[master]: utils: fix dec_xplmn_w_act() and format_xplmn_w_act() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/24003 ) Change subject: utils: fix dec_xplmn_w_act() and format_xplmn_w_act() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I57f7dff80f48071ef9a3732ae1088882b127a6d4 Gerrit-Change-Number: 24003 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 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 Fri Apr 30 16:11:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:11:20 +0000 Subject: Change in pysim[master]: ts_51_011, utils: fix Access Technology Identifier coding In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/24004 ) Change subject: ts_51_011, utils: fix Access Technology Identifier coding ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibfe8883a05f9ad6988d8e212cb9a598229954296 Gerrit-Change-Number: 24004 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 16:11: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 Apr 30 16:12:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:12:35 +0000 Subject: Change in osmo-bsc[master]: fix test_gsm48_multirate_config: dump the complete AMR lv buffer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24001 ) Change subject: fix test_gsm48_multirate_config: dump the complete AMR lv buffer ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I92fcc7afe018a4a8dc91f0f2167e3a7835f623c9 Gerrit-Change-Number: 24001 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 16:12: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 Apr 30 16:13:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:13:02 +0000 Subject: Change in osmo-bsc[master]: test_gsm48_multirate_config: rather keep 4x amr_mode In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24002 ) Change subject: test_gsm48_multirate_config: rather keep 4x amr_mode ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I545de6fb66a4b74a3f08899795b4b4d9c4538f58 Gerrit-Change-Number: 24002 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 16:13:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 16:13:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:13:34 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor handling of version specific TRXD parts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23832 ) Change subject: osmo-bts-trx: refactor handling of version specific TRXD parts ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Gerrit-Change-Number: 23832 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 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 Fri Apr 30 16:14:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:14:00 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: enlarge and share TRXD message buffer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23865 ) Change subject: osmo-bts-trx: enlarge and share TRXD message buffer ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Gerrit-Change-Number: 23865 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 16:14:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 16:14:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:14:14 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: assert PDU version in trx_if_send_burst() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23866 ) Change subject: osmo-bts-trx: assert PDU version in trx_if_send_burst() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I301377bcebd5e2bbcfc18b3637253ef261bb5b2e Gerrit-Change-Number: 23866 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 16:14: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 Apr 30 16:14:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:14:28 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: reduce code nasting in trx_if_send_burst() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23867 ) Change subject: osmo-bts-trx: reduce code nasting in trx_if_send_burst() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I578bd5a731ad88ebff283c75bb7eb268d9e7e787 Gerrit-Change-Number: 23867 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 16:14: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 Apr 30 16:19:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:19:05 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement TRXDv2 protocol support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23833 ) Change subject: osmo-bts-trx: implement TRXDv2 protocol support ...................................................................... Patch Set 7: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 987 PS7, Line 987: loop: > I prefer to use 'goto' here to avoid wrapping large code blocks into { }, and see no problem with us [?] * the indent level here is not deep at all * the length of the function is the same whether you use a proper loop or a goto So by all means I am with pespin here. If you think the code is somehow not reaable enough, then it should be split into smaller functions... https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 1114 PS7, Line 1114: LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, > I am just moving the existing log line, not introducing a new one. [?] I agree it should not be changed if this code just moves it around. However, I do think there's little point in logging every TRXDF datagram just before a syscall. There's strace for such debugging, or of course, pcap/wireshark/tcpdump. For TRXD you will be overwhelmed by the amount of logging anyway in this situation. So I think it should be removed in a separate patch, but I'm not saying fixeria has to do that just because he works with this code... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3532a6693bb335043ec390049138308991083e66 Gerrit-Change-Number: 23833 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 16:19:05 +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 Apr 30 16:19:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:19:14 +0000 Subject: Change in osmo-pcu[master]: bts: constify arg in func bts_ms_store() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23992 ) Change subject: bts: constify arg in func bts_ms_store() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4cc8c4fc075cdd07e689511df8f1c267e5360014 Gerrit-Change-Number: 23992 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 16:19: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 Apr 30 16:19:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:19:24 +0000 Subject: Change in osmo-pcu[master]: sched: Rename func to describe its used only for RLCMAC CTRL blocks In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23993 ) Change subject: sched: Rename func to describe its used only for RLCMAC CTRL blocks ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I20e15047af2aac4d51e1dae263ab16e479bb0c46 Gerrit-Change-Number: 23993 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 16:19: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 Apr 30 16:19:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 30 Apr 2021 16:19:35 +0000 Subject: Change in osmo-pcu[master]: sched: Clean up param passing and improve logging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23994 ) Change subject: sched: Clean up param passing and improve logging ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If137a2aaac7744e60564ca833a1b5564ed7d93bb Gerrit-Change-Number: 23994 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 30 Apr 2021 16:19:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 16:20:40 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 16:20:40 +0000 Subject: Change in pysim[master]: commands: pad short data input in update_record() References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/24008 ) Change subject: commands: pad short data input in update_record() ...................................................................... commands: pad short data input in update_record() The method update_record as a "force_len" parameter, which is somewhat irretatating. Some explainatory comments and a reformat of the if statement will help to make it more understandable to the api user. In the non force_len case the method determines the record length from the select response and throws an exception if the data input does not match that length. This makes sense if the data input exceeds the record length of the file but if the data input is less then the record length the situation is fixable by padding the input with 0xff. This also a quite common case because in some situation it is not guaranteed that the data will fill the entire record. Change-Id: I9a5df0e46c3dd2e87d447c5c01cf15844b0eed07 Related: OS#4963 --- M pySim/commands.py 1 file changed, 12 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/08/24008/1 diff --git a/pySim/commands.py b/pySim/commands.py index 33aec12..df00737 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -216,13 +216,19 @@ def update_record(self, ef, rec_no:int, data:str, force_len:bool=False, verify:bool=False, conserve:bool=False): - r = self.select_path(ef) - if not force_len: - rec_length = self.__record_len(r) - if (len(data) // 2 != rec_length): - raise ValueError('Invalid data length (expected %d, got %d)' % (rec_length, len(data) // 2)) - else: + if force_len: + # enforce the record length by the actual length of the given data input rec_length = len(data) // 2 + else: + # determine the record length from the select response of the file and pad + # the input data with 0xFF if necessary. In cases where the input data + # exceed we throw an exception. + res = self.select_path(ef) + rec_length = self.__record_len(res) + if (len(data) // 2 > rec_length): + raise ValueError('Data length exceeds record length (expected max %d, got %d)' % (rec_length, len(data) // 2)) + elif (len(data) // 2 < rec_length): + data = rpad(data, rec_length) # Save write cycles by reading+comparing before write if conserve: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9a5df0e46c3dd2e87d447c5c01cf15844b0eed07 Gerrit-Change-Number: 24008 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 16:20:40 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 16:20:40 +0000 Subject: Change in pysim[master]: pySim_prog: remove unused import for dec_addr_tlv References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/24009 ) Change subject: pySim_prog: remove unused import for dec_addr_tlv ...................................................................... pySim_prog: remove unused import for dec_addr_tlv The function dec_addr_tlv is imported from utils, but not used Change-Id: I2a962d544f288259f16c1dca92715953d1c24d82 Related: OS#4963 --- M pySim-read.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/09/24009/1 diff --git a/pySim-read.py b/pySim-read.py index ae10c1a..bcecac1 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -36,7 +36,7 @@ from pySim.transport import init_reader, argparse_add_reader_args from pySim.cards import card_detect, Card, UsimCard, IsimCard from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn -from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, dec_addr_tlv +from pySim.utils import format_xplmn_w_act, dec_spn, dec_st from pySim.utils import h2s, format_ePDGSelection option_parser = argparse.ArgumentParser(prog='pySim-read', -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I2a962d544f288259f16c1dca92715953d1c24d82 Gerrit-Change-Number: 24009 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 16:20:41 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 16:20:41 +0000 Subject: Change in pysim[master]: utils: split string formatting from dec_addr_tlv References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/24010 ) Change subject: utils: split string formatting from dec_addr_tlv ...................................................................... utils: split string formatting from dec_addr_tlv The function dec_addr_tlv() takes an encoded FQDN or IPv4 address and fromats it into a human readable string that contains the human readable form and the encoded hex form. Unfortunately this limits the usecase of dec_addr_tlv. Lets split the string generation into a separate function so that we can use dec_addr_tlv universally Change-Id: Id017b0786089adac4d6c5be688742eaa9699e529 Related: OS#4963 --- M pySim/cards.py M pySim/utils.py 2 files changed, 21 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/10/24010/1 diff --git a/pySim/cards.py b/pySim/cards.py index 719bf0c..71cc3b8 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -29,6 +29,19 @@ from smartcard.util import toBytes from pytlv.TLV import * +def format_addr(addr, addr_type='00'): + """helper function to format an FQDN or IPv4 address into a printable string""" + res = "" + if addr_type == '00': #FQDN + res += "\t%s # %s\n" % (s2h(addr), addr) + elif addr_type == '01': #IPv4 + octets = addr.split(".") + addr_hex = "" + for o in octets: + addr_hex += ("%02x" % int(o)) + res += "\t%s # %s\n" % (addr_hex, addr) + return res + class Card(object): def __init__(self, scc): @@ -299,7 +312,8 @@ def read_epdgid(self): (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['ePDGId']) if sw == '9000': - return (dec_addr_tlv(res), sw) + addr, addr_type = dec_addr_tlv(res) + return (format_addr(addr, addr_type), sw) else: return (None, sw) @@ -358,7 +372,8 @@ 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) + addr, addr_type = dec_addr_tlv(res) + content = format_addr(addr, addr_type) pcscf_recs += "%s" % (len(content) and content or '\tNot available\n') else: pcscf_recs += "\tP-CSCF: Can't read, response code = %s\n" % (sw) diff --git a/pySim/utils.py b/pySim/utils.py index bcfa2ac..b788826 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -606,8 +606,6 @@ # Convert from hex str to int bytes list addr_tlv_bytes = h2i(hexstr) - s = "" - # Get list of tuples containing parsed TLVs tlvs = TLV_parser(addr_tlv_bytes) @@ -632,15 +630,16 @@ 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)) + return (i2s(content), '00') + 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 (content, '01') - return s + return (None, None) def enc_addr_tlv(addr, addr_type='00'): """ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id017b0786089adac4d6c5be688742eaa9699e529 Gerrit-Change-Number: 24010 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 16:37:49 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 16:37:49 +0000 Subject: Change in pysim[master]: commands: pad short data input in update_record() 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/+/24008 to look at the new patch set (#2). Change subject: commands: pad short data input in update_record() ...................................................................... commands: pad short data input in update_record() The method update_record as a "force_len" parameter, which is somewhat irretatating. Some explainatory comments and a reformat of the if statement will help to make it more understandable to the api user. In the non force_len case the method determines the record length from the select response and throws an exception if the data input does not match that length. This makes sense if the data input exceeds the record length of the file but if the data input is less then the record length the situation is fixable by padding the input with 0xff. This also a quite common case because in some situation it is not guaranteed that the data will fill the entire record. Change-Id: I9a5df0e46c3dd2e87d447c5c01cf15844b0eed07 Related: OS#4963 --- M pySim/commands.py 1 file changed, 12 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/08/24008/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9a5df0e46c3dd2e87d447c5c01cf15844b0eed07 Gerrit-Change-Number: 24008 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 Fri Apr 30 16:46:26 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 16:46:26 +0000 Subject: Change in pysim[master]: commands: pad short data input in update_record() 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/+/24008 to look at the new patch set (#3). Change subject: commands: pad short data input in update_record() ...................................................................... commands: pad short data input in update_record() The method update_record as a "force_len" parameter, which is somewhat irretatating. Some explainatory comments and a reformat of the if statement will help to make it more understandable to the api user. In the non force_len case the method determines the record length from the select response and throws an exception if the data input does not match that length. This makes sense if the data input exceeds the record length of the file but if the data input is less then the record length the situation is fixable by padding the input with 0xff. This also a quite common case because in some situation it is not guaranteed that the data will fill the entire record. Change-Id: I9a5df0e46c3dd2e87d447c5c01cf15844b0eed07 Related: OS#4963 --- M pySim/commands.py 1 file changed, 13 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/08/24008/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9a5df0e46c3dd2e87d447c5c01cf15844b0eed07 Gerrit-Change-Number: 24008 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 Fri Apr 30 16:58:31 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 16:58:31 +0000 Subject: Change in pysim[master]: ts_31_103: finish decoder and fix encoder for EF.PCSCF References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/24011 ) Change subject: ts_31_103: finish decoder and fix encoder for EF.PCSCF ...................................................................... ts_31_103: finish decoder and fix encoder for EF.PCSCF The encoder/decoder functions in class EF_PCSCF look rather unfinshed because of problems with dec_addr_tlv(), since those problems are fixed by a previous patch we can now finish the decoder function and fix the decoder as well. Change-Id: I7613b8b71624dc5802aca93163788a2a2d4ca345 Related: OS#4963 --- M pySim/ts_31_103.py 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/11/24011/1 diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index d5641b3..1009ba3 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -120,10 +120,12 @@ def __init__(self, fid='6f09', sfid=None, name='EF.P-CSCF', desc='P-CSCF Address'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) def _decode_record_hex(self, raw_hex): - # FIXME: this doesn't do JSON output - return dec_addr_tlv(raw_hex) + addr, addr_type = dec_addr_tlv(raw_hex) + return {"addr": addr, "addr_type": addr_type} def _encode_record_hex(self, json_in): - return enc_addr_tlv(json_in) + addr = json_in['addr'] + addr_type = json_in['addr_type'] + return enc_addr_tlv(addr, addr_type) # TS 31.103 Section 4.2.9 class EF_GBABP(TransparentEF): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I7613b8b71624dc5802aca93163788a2a2d4ca345 Gerrit-Change-Number: 24011 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 17:02:52 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 30 Apr 2021 17:02:52 +0000 Subject: Change in pysim[master]: filesystem: add unit tests for encoder/decoder methods References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/24012 ) Change subject: filesystem: add unit tests for encoder/decoder methods ...................................................................... filesystem: add unit tests for encoder/decoder methods Some files have a custom _encode... and _decode... metod. Those methods can be detected automatically and tested with a test vector that is directly defined in the respective file class. Change-Id: I02d884547f4982e0b8ed7ef21b8cda75237942e2 Related: OS#4963 --- M pySim/filesystem.py M pySim/ts_102_221.py M pySim/ts_31_102.py M pySim/ts_31_103.py M pySim/ts_51_011.py A tests/test_files.py 6 files changed, 126 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/12/24012/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index dec521e..f0c985c 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -34,7 +34,7 @@ from typing import cast, Optional, Iterable, List, Any, Dict, Tuple -from pySim.utils import sw_match, h2b, b2h, is_hex +from pySim.utils import sw_match, h2b, b2h, is_hex, JsonEncoder from pySim.construct import filter_dict from pySim.exceptions import * from pySim.jsonpath import js_path_find, js_path_modify @@ -378,6 +378,58 @@ sels.update({x.name:x for x in self.parent.children.values() if x != self}) return sels + def test_encode_decode(self, verbose=False): + """Unit-test to verify the encoder and decoder function of a certain + file. To run this, simply define a _encode_decode_testvector[] testvector + list inside the specific file implementation. The list shall contain at + least one dictionary with at least one set of abstract data. + """ + + # Find out which encoder/decoder functions are present + has_dec_rec = hasattr(self.__class__, '_decode_record_hex') and callable(getattr(self.__class__, '_decode_record_hex')) + has_enc_rec = hasattr(self.__class__, '_encode_record_hex') and callable(getattr(self.__class__, '_encode_record_hex')) + has_dec = hasattr(self.__class__, '_decode_hex') and callable(getattr(self.__class__, '_decode_hex')) + has_enc = hasattr(self.__class__, '_encode_hex') and callable(getattr(self.__class__, '_encode_hex')) + has_testvec = hasattr(self.__class__, '_encode_decode_testvector') + + # Check if a decoder, encoder and a testvector is present + if has_dec_rec and has_enc_rec: + print("Testing %s (record oriented)" % (self.name)) + encode = self._encode_record_hex + decode = self._decode_record_hex + if not has_testvec: + print(" Cannot test: Please define _encode_decode_testvector[] in %s" % (self.name)) + return + elif has_dec and has_enc: + print("Testing %s (transparent)" % (self.name)) + encode = self._encode_hex + decode = self._decode_hex + if not has_testvec: + print(" Cannot test: Please define _encode_decode_testvector[] in %s" % (self.name)) + return + else: + return + + # Encode+Decode the test data and make sure the end result matches the + # input + for testvec_json in self.__class__._encode_decode_testvector: + print(" testvec_json: " + str(testvec_json)) + testvec = json.loads(testvec_json) + if verbose: + print(" testvec: " + str(testvec)) + encoded = encode(testvec) + if verbose: + print(" encoded: " + str(encoded)) + decoded = decode(encoded) + if verbose: + print(" decoded: " + str(decoded)) + decoded_json = json.dumps(decoded, cls=JsonEncoder) + if verbose: + print(" decoded_json: " + str(decoded_json)) + if testvec_json != decoded_json: + raise ValueError("The encoded end result (decoded_json) does not match the original input (testvec_json)") + else: + print(" Ok.") class TransparentEF(CardEF): """Transparent EF (Entry File) in the smart card filesystem. diff --git a/pySim/ts_102_221.py b/pySim/ts_102_221.py index 88a36a1..ab4ecf6 100644 --- a/pySim/ts_102_221.py +++ b/pySim/ts_102_221.py @@ -189,6 +189,7 @@ # TS 102 221 Section 13.2 class EF_ICCID(TransparentEF): + _encode_decode_testvector = ['{"iccid": "8988211000000433188"}'] def __init__(self, fid='2fe2', sfid=0x02, name='EF.ICCID', desc='ICC Identification'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size={10,10}) diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index de729be..e7f5fbb 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -291,6 +291,7 @@ # TS 31.102 4.4.11.8 class EF_SUCI_Calc_Info(TransparentEF): + _encode_decode_testvector = ['{"prot_scheme_id_list": [{"priority": 0, "identifier": 2, "key_index": 1}, {"priority": 1, "identifier": 1, "key_index": 2}, {"priority": 2, "identifier": 0, "key_index": 0}], "hnet_pubkey_list": [{"hnet_pubkey_identifier": 27, "hnet_pubkey": "0272da71976234ce833a6907425867b82e074d44ef907dfb4b3e21c1c2256ebcd1"}, {"hnet_pubkey_identifier": 30, "hnet_pubkey": "5a8d38864820197c3394b92613b20b91633cbd897119273bf8e4a6f4eec0a650"}]}'] def __init__(self, fid="4f07", sfid=0x07, name='EF.SUCI_Calc_Info', size={2, None}, desc='SUCI Calc Info'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index 1009ba3..bac7a7d 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -117,6 +117,8 @@ # TS 31.103 Section 4.2.8 class EF_PCSCF(LinFixedEF): + _encode_decode_testvector = ['{"addr": "192.168.100.110", "addr_type": "01"}', + '{"addr": "hello,world", "addr_type": "00"}'] def __init__(self, fid='6f09', sfid=None, name='EF.P-CSCF', desc='P-CSCF Address'): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc) def _decode_record_hex(self, raw_hex): diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 8e4428c..06f4c0e 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -376,6 +376,8 @@ # TS 51.011 Section 10.5.5 class EF_MSISDN(LinFixedEF): + _encode_decode_testvector = ['{"msisdn": [1, 1, "+4916012345678"]}', + '{"msisdn": [1, 3, "123456"]}'] def __init__(self, fid='6f40', sfid=None, name='EF.MSISDN', desc='MSISDN'): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={15, 34}) def _decode_record_hex(self, raw_hex_data): @@ -465,6 +467,8 @@ # TS 51.011 Section 10.3.2 class EF_IMSI(TransparentEF): + _encode_decode_testvector = ['{"imsi": "001010000000102"}', + '{"imsi": "123456789012345"}'] def __init__(self, fid='6f07', sfid=None, name='EF.IMSI', desc='IMSI', size={9,9}): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) def _decode_hex(self, raw_hex): @@ -474,6 +478,9 @@ # TS 51.011 Section 10.3.4 class EF_PLMNsel(TransRecEF): + _encode_decode_testvector = ['{"mcc": "123", "mnc": "45"}', + '{"mcc": "001", "mnc": "01"}', + '{"mcc": "456", "mnc": "123"}'] def __init__(self, fid='6f30', sfid=None, name='EF.PLMNsel', desc='PLMN selector', size={24,None}, rec_len=3): super().__init__(fid, name=name, sfid=sfid, desc=desc, size=size, rec_len=rec_len) @@ -517,6 +524,9 @@ # TS 51.011 Section 10.3.11 class EF_SPN(TransparentEF): + _encode_decode_testvector = ['{"spn": ["testme", false, false]}', + '{"spn": ["", true, false]}', + '{"spn": ["hello world", false, true]}'] def __init__(self, fid='6f46', sfid=None, name='EF.SPN', desc='Service Provider Name', size={17,17}): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) def _decode_hex(self, raw_hex): @@ -638,6 +648,10 @@ 'corporate'/BcdAdapter(Bytes(4))) # TS 51.011 Section 10.3.30 class EF_CNL(TransRecEF): + _encode_decode_testvector = ['{"mcc": "", "mnc": "", "network_subset": 255, "service_provider_id": 255, "corporate_id": 255}', + '{"mcc": "001", "mnc": "01", "network_subset": 23, "service_provider_id": 42, "corporate_id": 5}', + '{"mcc": "123", "mnc": "567", "network_subset": 255, "service_provider_id": 255, "corporate_id": 255}', + '{"mcc": "262", "mnc": "12", "network_subset": 111, "service_provider_id": 0, "corporate_id": 0}'] def __init__(self, fid='6f32', sfid=None, name='EF.CNL', size={6,None}, rec_len=6, desc='Co-operative Network List'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) @@ -676,6 +690,10 @@ # TS 51.011 Section 10.3.35..37 class EF_xPLMNwAcT(TransRecEF): + _encode_decode_testvector = ['{"mcc": "001", "mnc": "01", "act": ["UTRAN", "E-UTRAN", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"]}', + '{"mcc": "001", "mnc": "01", "act": ["UTRAN", "E-UTRAN WB-S1", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"]}', + '{"mcc": "001", "mnc": "01", "act": ["UTRAN", "E-UTRAN NB-S1", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"]}', + '{"mcc": "001", "mnc": "01", "act": ["UTRAN", "E-UTRAN WB-S1", "E-UTRAN NB-S1", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"]}'] def __init__(self, fid, sfid=None, name=None, desc=None, size={40,None}, rec_len=5): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) def _decode_record_hex(self, in_hex): diff --git a/tests/test_files.py b/tests/test_files.py new file mode 100755 index 0000000..a855afa --- /dev/null +++ b/tests/test_files.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 + +import unittest +from pySim import utils +from pySim.ts_31_102 import EF_SUCI_Calc_Info + +from typing import List + +import json +import gc + +from pySim.ts_51_011 import EF, DF, EF_SST_map +from pySim.ts_31_102 import EF_UST_map, EF_USIM_ADF_map +from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map + +from pySim.filesystem import CardEF, CardMF, CardDF, CardADF +from pySim.ts_51_011 import CardProfileSIM, DF_TELECOM, DF_GSM +from pySim.ts_102_221 import CardProfileUICC +from pySim.ts_31_102 import CardApplicationUSIM +from pySim.ts_31_103 import CardApplicationISIM + +# Check if a file (specified by its name) exists in a given list with files +def file_in_list(file_list, name): + for f in file_list: + if f.name == name: + return True + return False + +class DecTestCase(unittest.TestCase): + + def testFileContentDecoderEncoder(self): + # Create files in memory + profile = CardProfileUICC() + profile.add_application(CardApplicationUSIM) + profile.add_application(CardApplicationISIM) + df_telecom = DF_TELECOM() + df_gsm = DF_GSM() + + # Collect one sample of each EF from memory + test_candidates = [] + for obj in gc.get_objects(): + if isinstance(obj, CardEF): + if not file_in_list(test_candidates, obj.name): + test_candidates.append(obj) + + # Execute integrated encoder/decoder unit tests + for obj in test_candidates: + obj.test_encode_decode() + +if __name__ == "__main__": + unittest.main() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I02d884547f4982e0b8ed7ef21b8cda75237942e2 Gerrit-Change-Number: 24012 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 17:41:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 17:41:33 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 586 PS4, Line 586: int downtime_seconds = BTS_DOWNTIME_SAMPLE_INTERVAL - uptime_seconds; > Let's back up a bit maybe. [?] "Downtime is added to the stat_item. When the statsd system exports these values every X seconds, we have between 0 and X seconds of downtime in that period. Sum up all these periods and you can see total downtime for each BTS during any given timeframe." Ok so that's the intention of hte new version of the patch. But from what I uderstand reading the code, it looks as if the first time it's indeed going to set the stat to soemthing between 0 and BTS_DOWNTIME_SAMPLE_INTERVAL, but next time this function is called, the item will again be set to 0. So from your grafana or whatever you'll only be able to see the first BTS_DOWNTIME_SAMPLE_INTERVAL of downtime AFAIU. Now, a proposal from my side would be: What about having a 2 stats "become_up" and "become_down" (feel free to rename it, I put them like this for you to get the idea), which count the transitions down->up and up->down. That means, at any point of time you can now if the BTS is up, or is down (if become_up > become_down, then it's up, otherwise it's down). You can also track uptime/downtime periods by checking the timestamp of when the stat changed value. You can then see easily in a plot like grafana or using python scripts when events happened. 1- BSC starts: become_up=0, become_down=0 ... a few seconds pas.... 2- BTS connects: become_up=1, become_down=0 ... a few hours pass ... 3- BTS disconnects: become_up=1, become_down=1 ... instantaneously or even a few hours later ... 4- BTS connects: become_up=2, become_down=1 What do you think? does this proposal fullfill your needs? AFAIU it does fullfill "currently there is no way determine a BTS uptime other than by polling it via the VTY" Do I understand correctly that your target is to put those stats in some persistent/temporary database to be able to plot and find out what's going on over time? then my proposal would work afaiu. The only not "exact" value would be the exact time at which the event happened, where you'd have an error deviation of the number of seconds you configured osmo-bsc to push the stats update, which is usually pretty low, in the order of seconds? Even then, no events are lost, only the timing is a few seconds inaccurate. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 5 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Fri, 30 Apr 2021 17:41:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: iedemam 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 Apr 30 17:42:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 17:42:25 +0000 Subject: Change in osmo-pcu[master]: bts: constify arg in func bts_ms_store() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23992 ) Change subject: bts: constify arg in func bts_ms_store() ...................................................................... bts: constify arg in func bts_ms_store() Change-Id: I4cc8c4fc075cdd07e689511df8f1c267e5360014 --- M src/bts.cpp M src/bts.h 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/bts.cpp b/src/bts.cpp index bcf4d1b..4fe529e 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -1066,7 +1066,7 @@ return ms; } -struct GprsMsStorage *bts_ms_store(struct gprs_rlcmac_bts *bts) +struct GprsMsStorage *bts_ms_store(const struct gprs_rlcmac_bts *bts) { return bts->ms_store; } diff --git a/src/bts.h b/src/bts.h index a8b4d7b..ea44fb7 100644 --- a/src/bts.h +++ b/src/bts.h @@ -301,7 +301,7 @@ enum pcu_gsmtap_category categ, uint8_t channel, const struct rach_ind_params *rip); -struct GprsMsStorage *bts_ms_store(struct gprs_rlcmac_bts *bts); +struct GprsMsStorage *bts_ms_store(const struct gprs_rlcmac_bts *bts); struct GprsMs *bts_ms_by_tlli(struct gprs_rlcmac_bts *bts, uint32_t tlli, uint32_t old_tlli); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4cc8c4fc075cdd07e689511df8f1c267e5360014 Gerrit-Change-Number: 23992 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 17:42:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 17:42:27 +0000 Subject: Change in osmo-pcu[master]: sched: Rename func to describe its used only for RLCMAC CTRL blocks In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/23993 ) Change subject: sched: Rename func to describe its used only for RLCMAC CTRL blocks ...................................................................... sched: Rename func to describe its used only for RLCMAC CTRL blocks Change-Id: I20e15047af2aac4d51e1dae263ab16e479bb0c46 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 85c9be8..bb65ae1 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -41,7 +41,7 @@ struct gprs_rlcmac_ul_tbf *ul_ack; }; -static void get_tbf_candidates(const struct gprs_rlcmac_bts *bts, uint8_t trx, +static void get_ctrl_msg_tbf_candidates(const struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, struct tbf_sched_candidates *tbf_cand) { struct gprs_rlcmac_ul_tbf *ul_tbf; @@ -483,7 +483,7 @@ if (usf_tbf && req_mcs_kind == EGPRS && ms_mode(usf_tbf->ms()) != EGPRS) req_mcs_kind = EGPRS_GMSK; - get_tbf_candidates(bts, trx, ts, &tbf_cand); + get_ctrl_msg_tbf_candidates(bts, trx, ts, &tbf_cand); /* Prio 1: select control message */ if ((msg = sched_select_ctrl_msg(pdch, fn, block_nr, &tbf_cand))) { -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/23993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I20e15047af2aac4d51e1dae263ab16e479bb0c46 Gerrit-Change-Number: 23993 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 17:43:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 17:43:04 +0000 Subject: Change in osmo-bsc[master]: manual: Include QoS chapter and add osmo-bsc specific example In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24007 ) Change subject: manual: Include QoS chapter and add osmo-bsc specific example ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3b1d44fc545725172142b903190a3ff5094805dd Gerrit-Change-Number: 24007 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 17:43: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 Apr 30 17:57:01 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Fri, 30 Apr 2021 17:57:01 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 586 PS4, Line 586: int downtime_seconds = BTS_DOWNTIME_SAMPLE_INTERVAL - uptime_seconds; > "Downtime is added to the stat_item. [?] I appreciate the suggestion but this is now even more complicated. Adding two stats and needing another separate service to derive uptime and downtime doesn't satisfy the goal of tracking uptime / downtime inside the BSC. Also stat events aren't stored with high precision after their initial transmission so it will be impossible to see if a BTS is up or down as soon as the UP and DOWN events match in granularity. Order is lost. I agree: counting downtime if the system is completely down is impossible unless another separate service is monitoring it. The BSC cannot count downtime if itself is down. My initial proposal was to count uptime. Counting uptime is accurate and you're already doing it, it's just not stored in a stat. That's all I'm trying to accomplish. Downtime is easily derived by subtracting uptime seconds from the total seconds in the time window you're looking at. Can we go back to the initial proposal? Every X seconds, I add X seconds of uptime to the uptime counter stored in a stat_item. Done. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 5 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Fri, 30 Apr 2021 17:57:01 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: iedemam 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 Apr 30 18:09:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 18:09:33 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor handling of version specific TRXD parts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23832 ) Change subject: osmo-bts-trx: refactor handling of version specific TRXD parts ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23832/6/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23832/6/src/osmo-bts-trx/trx_if.c at 737 PS6, Line 737: bi->fn = osmo_load32be(buf + 1); I know it was already this way before, but I find this mixture of buf[x] and buf +x in each line a bit confusing. why not &buf[1] ? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Gerrit-Change-Number: 23832 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 18:09:33 +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 Apr 30 18:11:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 18:11:39 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement TRXDv2 protocol support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23833 ) Change subject: osmo-bts-trx: implement TRXDv2 protocol support ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 1114 PS7, Line 1114: LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, > I agree it should not be changed if this code just moves it around. [?] Oh sorry, I didn't see that it was already there, I though you were adding it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3532a6693bb335043ec390049138308991083e66 Gerrit-Change-Number: 23833 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 18:11:39 +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 Fri Apr 30 18:22:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 30 Apr 2021 18:22:08 +0000 Subject: Change in osmo-bsc[master]: stats: add BTS uptime counter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 ) Change subject: stats: add BTS uptime counter ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/23234/4/src/osmo-bsc/bts.c at 586 PS4, Line 586: int downtime_seconds = BTS_DOWNTIME_SAMPLE_INTERVAL - uptime_seconds; > I appreciate the suggestion but this is now even more complicated. [?] while I still prefer my proposal (due to what I mentioned already about abusing stats here), I'm fine with counting uptime as you want. IIRC my important comment a while ago regarding that "counting uptime" was on how you planned to do it, which you are describing again in your last comment: "Can we go back to the initial proposal? Every X seconds, I add X seconds of uptime to the uptime counter stored in a stat_item. Done" Adding X every time easily leads to drifting. Why not simply storing a "became_up" timestamp in each struct bts whenever the BTS becomes up, and then every X seconds do osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_DOWNTIME], now()-became_up). And of course if the BTS is down whenever the callback is called, set the stat to 0 or -1 or whatever :) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c Gerrit-Change-Number: 23234 Gerrit-PatchSet: 5 Gerrit-Owner: iedemam Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Fri, 30 Apr 2021 18:22:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: iedemam 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 Apr 30 19:02:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 19:02:04 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor handling of version specific TRXD parts In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23832 ) Change subject: osmo-bts-trx: refactor handling of version specific TRXD parts ...................................................................... Patch Set 6: Code-Review+2 (1 comment) 1+1 https://gerrit.osmocom.org/c/osmo-bts/+/23832/6/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23832/6/src/osmo-bts-trx/trx_if.c at 737 PS6, Line 737: bi->fn = osmo_load32be(buf + 1); > I know it was already this way before, but I find this mixture of buf[x] and buf +x in each line a b [?] To me there is absolutely no difference in readability, both variants doing the same thing. I prefer to use the former when it's expected that only one octet will be read and/or written, and the later when several octets staring from position +x will be processed. Given that you are usually not happy against the later, I recently started to use &buf[x] in the most cases. Otherwise it's less likely to get CR+1 from you :D -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Gerrit-Change-Number: 23832 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 19:02:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 19:02:16 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 19:02:16 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: refactor handling of version specific TRXD parts In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23832 ) Change subject: osmo-bts-trx: refactor handling of version specific TRXD parts ...................................................................... osmo-bts-trx: refactor handling of version specific TRXD parts This is a preparatory change for the upcoming TRXDv2 support: * move common TRXDv0/v1 header parser into a separate function; * move burst handling into a single, version independent function; ** determine modulation and burst length in trx_data_parse_pdu_v0(); Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 58 insertions(+), 81 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index d2ad877..46b4601 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -729,15 +729,41 @@ TRX_UL_V1HDR_LEN, /* TRXDv1 */ }; -/* TRXD header dissector for version 0 */ -static int trx_data_handle_hdr_v0(struct phy_instance *phy_inst, - struct trx_ul_burst_ind *bi, - const uint8_t *buf, size_t buf_len) +/* Header dissector for TRXDv0 (and part of TRXDv1) */ +static inline void trx_data_handle_hdr_v0_part(struct trx_ul_burst_ind *bi, + const uint8_t *buf) { bi->tn = buf[0] & 0b111; bi->fn = osmo_load32be(buf + 1); bi->rssi = -(int8_t)buf[5]; bi->toa256 = (int16_t) osmo_load16be(buf + 6); +} + +/* TRXD header dissector for version 0x00 */ +static int trx_data_handle_hdr_v0(struct phy_instance *phy_inst, + struct trx_ul_burst_ind *bi, + const uint8_t *buf, size_t buf_len) +{ + /* Parse TRXDv0 specific header part */ + trx_data_handle_hdr_v0_part(bi, buf); + buf_len -= TRX_UL_V0HDR_LEN; + + /* Guess modulation and burst length by the rest octets. + * NOTE: a legacy transceiver may append two garbage bytes. */ + switch (buf_len) { + case EGPRS_BURST_LEN + 2: + case EGPRS_BURST_LEN: + bi->mod = TRX_MOD_T_8PSK; + break; + case GSM_BURST_LEN + 2: + case GSM_BURST_LEN: + bi->mod = TRX_MOD_T_GMSK; + break; + default: + LOGPPHI(phy_inst, DTRX, LOGL_NOTICE, + "Rx TRXD PDU with odd burst length %zu\n", buf_len); + return -EINVAL; + } return TRX_UL_V0HDR_LEN; } @@ -783,14 +809,9 @@ { int rc; - /* Parse v0 specific part */ - rc = trx_data_handle_hdr_v0(phy_inst, bi, buf, buf_len); - if (rc < 0) - return rc; - - /* Move closer to the v1 specific part */ - buf_len -= rc; - buf += rc; + /* Parse TRXDv0 specific header part */ + trx_data_handle_hdr_v0_part(bi, buf); + buf += TRX_UL_V0HDR_LEN; /* MTS (Modulation and Training Sequence) */ rc = trx_data_parse_mts(phy_inst, bi, buf[0]); @@ -804,31 +825,28 @@ return TRX_UL_V1HDR_LEN; } -/* TRXD burst handler for PDU version 0 */ -static int trx_data_handle_burst_v0(struct phy_instance *phy_inst, - struct trx_ul_burst_ind *bi, - const uint8_t *buf, size_t buf_len) +/* TRXD burst handler (version independent) */ +static int trx_data_handle_burst(struct trx_ul_burst_ind *bi, + const uint8_t *buf, size_t buf_len) { size_t i; - /* Verify burst length */ - switch (buf_len) { - /* Legacy transceivers append two padding bytes */ - case EGPRS_BURST_LEN + 2: - case GSM_BURST_LEN + 2: - bi->burst_len = buf_len - 2; - break; - case EGPRS_BURST_LEN: - case GSM_BURST_LEN: - bi->burst_len = buf_len; - break; - - default: - LOGPPHI(phy_inst, DTRX, LOGL_NOTICE, - "Rx TRXD message with odd burst length %zu\n", buf_len); - return -EINVAL; + /* NOPE.ind contains no burst */ + if (bi->flags & TRX_BI_F_NOPE_IND) { + bi->burst_len = 0; + return 0; } + /* Modulation types defined in 3GPP TS 45.002 */ + static const size_t bl[] = { + [TRX_MOD_T_GMSK] = 148, /* 1 bit per symbol */ + [TRX_MOD_T_8PSK] = 444, /* 3 bits per symbol */ + }; + + bi->burst_len = bl[bi->mod]; + if (buf_len < bi->burst_len) + return -EINVAL; + /* Convert unsigned soft-bits [254..0] to soft-bits [-127..127] */ for (i = 0; i < bi->burst_len; i++) { if (buf[i] == 255) @@ -840,30 +858,6 @@ return 0; } -/* TRXD burst handler for PDU version 1 */ -static int trx_data_handle_burst_v1(struct phy_instance *phy_inst, - struct trx_ul_burst_ind *bi, - const uint8_t *buf, size_t buf_len) -{ - /* Modulation types defined in 3GPP TS 45.002 */ - static const size_t bl[] = { - [TRX_MOD_T_GMSK] = 148, /* 1 bit per symbol */ - [TRX_MOD_T_8PSK] = 444, /* 3 bits per symbol */ - }; - - /* Verify burst length */ - if (bl[bi->mod] != buf_len) { - LOGPPHI(phy_inst, DTRX, LOGL_NOTICE, - "Rx TRXD message with odd burst length %zu, " - "expected %zu\n", buf_len, bl[bi->mod]); - return -EINVAL; - } - - /* The PDU format is the same as for version 0. - * NOTE: other modulation types to be handled separately. */ - return trx_data_handle_burst_v0(phy_inst, bi, buf, buf_len); -} - static const char *trx_data_desc_msg(const struct trx_ul_burst_ind *bi) { struct osmo_strbuf sb; @@ -914,7 +908,6 @@ struct trx_ul_burst_ind bi; ssize_t hdr_len, buf_len; uint8_t pdu_ver; - int rc; buf_len = recv(ofd->fd, buf, sizeof(buf), 0); if (buf_len <= 0) { @@ -948,11 +941,10 @@ /* Parse header depending on the PDU version */ switch (pdu_ver) { - case 0: - /* Legacy protocol has no version indicator */ + case 0: /* TRXDv0 */ hdr_len = trx_data_handle_hdr_v0(l1h->phy_inst, &bi, buf, buf_len); break; - case 1: + case 1: /* TRXDv1 */ hdr_len = trx_data_handle_hdr_v1(l1h->phy_inst, &bi, buf, buf_len); break; default: @@ -971,32 +963,17 @@ return -EINVAL; } - if (bi.flags & TRX_BI_F_NOPE_IND) { - bi.burst_len = 0; - goto skip_burst; - } - /* We're done with the header now */ buf_len -= hdr_len; - /* Handle burst bits */ - switch (pdu_ver) { - case 0: - rc = trx_data_handle_burst_v0(l1h->phy_inst, &bi, buf + hdr_len, buf_len); - break; - case 1: - rc = trx_data_handle_burst_v1(l1h->phy_inst, &bi, buf + hdr_len, buf_len); - break; - default: - /* Shall not happen, just to make GCC happy */ - OSMO_ASSERT(0); + /* Calculate burst length and parse it (if present) */ + if (trx_data_handle_burst(&bi, buf + hdr_len, buf_len) != 0) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Rx malformed TRXDv%u PDU: odd burst length=%zd\n", + pdu_ver, buf_len); + return -EINVAL; } - /* Burst parsing error */ - if (rc < 0) - return rc; - -skip_burst: /* Print header & burst info */ LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, "Rx %s (pdu_ver=%u): %s\n", (bi.flags & TRX_BI_F_NOPE_IND) ? "NOPE.ind" : "UL burst", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7aedd85a8d4f6d6191cd3b75272a688208fb2879 Gerrit-Change-Number: 23832 Gerrit-PatchSet: 7 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 Apr 30 19:02:16 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 19:02:16 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: enlarge and share TRXD message buffer In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23865 ) Change subject: osmo-bts-trx: enlarge and share TRXD message buffer ...................................................................... osmo-bts-trx: enlarge and share TRXD message buffer Starting from TRXDv2, several PDUs may be batched together and sent in all together a single datagram. This requires us to increase the buffer size that we use for sending and receiving TRXD messages. Let's use 65536 matching the default MTU value for 'lo' interface on Linux. Given that 65536 is quite a big number, let's allocate a shared Rx/Tx buffer statically to avoid [potential] stack overflow. Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 2 files changed, 15 insertions(+), 10 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-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 46b4601..073cad8 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -900,20 +900,24 @@ return buf; } +/* TRXD buffer used by Rx/Tx handlers */ +static uint8_t trx_data_buf[TRXD_MSG_BUF_SIZE]; + /* Parse TRXD message from transceiver, compose an UL burst indication. */ static int trx_data_read_cb(struct osmo_fd *ofd, unsigned int what) { + const uint8_t *buf = &trx_data_buf[0]; struct trx_l1h *l1h = ofd->data; - uint8_t buf[TRXD_MSG_BUF_SIZE]; struct trx_ul_burst_ind bi; ssize_t hdr_len, buf_len; uint8_t pdu_ver; - buf_len = recv(ofd->fd, buf, sizeof(buf), 0); + buf_len = recv(ofd->fd, trx_data_buf, sizeof(trx_data_buf), 0); if (buf_len <= 0) { - strerror_r(errno, (char *)buf, sizeof(buf)); + strerror_r(errno, (char *) trx_data_buf, sizeof(trx_data_buf)); LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "recv() failed on TRXD with rc=%zd (%s)\n", buf_len, buf); + "recv() failed on TRXD with rc=%zd (%s)\n", + buf_len, trx_data_buf); return buf_len; } @@ -993,7 +997,7 @@ { ssize_t snd_len; uint8_t pdu_ver = l1h->config.trxd_pdu_ver_use; - uint8_t buf[TRXD_MSG_BUF_SIZE]; + uint8_t *buf = &trx_data_buf[0]; if ((br->burst_len != GSM_BURST_LEN) && (br->burst_len != EGPRS_BURST_LEN)) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Tx burst length %zu invalid\n", @@ -1026,11 +1030,12 @@ /* we must be sure that TRX is on */ if (trx_if_powered(l1h)) { - snd_len = send(l1h->trx_ofd_data.fd, buf, br->burst_len + 6, 0); + snd_len = send(l1h->trx_ofd_data.fd, trx_data_buf, br->burst_len + 6, 0); if (snd_len <= 0) { - strerror_r(errno, (char *)buf, sizeof(buf)); + strerror_r(errno, (char *) trx_data_buf, sizeof(trx_data_buf)); LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "send() failed on TRXD with rc=%zd (%s)\n", snd_len, buf); + "send() failed on TRXD with rc=%zd (%s)\n", + snd_len, trx_data_buf); return -2; } } else diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index ca3d51b..f40dbb5 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -2,8 +2,8 @@ /* TRXC read/send buffer size */ #define TRXC_MSG_BUF_SIZE 1500 -/* TRXD read/send buffer size */ -#define TRXD_MSG_BUF_SIZE 512 +/* TRXD read/send buffer size (max. lo MTU) */ +#define TRXD_MSG_BUF_SIZE 65536 struct trx_dl_burst_req; struct trx_l1h; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I729451c8ecdc7ff2631beb423f15523db16b3ee3 Gerrit-Change-Number: 23865 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 19:02:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 19:02:17 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: assert PDU version in trx_if_send_burst() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23866 ) Change subject: osmo-bts-trx: assert PDU version in trx_if_send_burst() ...................................................................... osmo-bts-trx: assert PDU version in trx_if_send_burst() If somehow the TRXC logic negotiates a non-supported TRXD PDU version, then it's a serious bug in the code. Let's add an assert() for that. Change-Id: I301377bcebd5e2bbcfc18b3637253ef261bb5b2e --- M src/osmo-bts-trx/trx_if.c 1 file changed, 2 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 073cad8..9e2cd75 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1016,9 +1016,8 @@ break; default: - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "Requested TRXD PDU version %u is not supported\n", pdu_ver); - return -ENOTSUP; + /* Shall not happen */ + OSMO_ASSERT(0); } buf[0] = ((pdu_ver & 0x0f) << 4) | br->tn; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I301377bcebd5e2bbcfc18b3637253ef261bb5b2e Gerrit-Change-Number: 23866 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 19:02:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 19:02:17 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: reduce code nasting in trx_if_send_burst() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23867 ) Change subject: osmo-bts-trx: reduce code nasting in trx_if_send_burst() ...................................................................... osmo-bts-trx: reduce code nasting in trx_if_send_burst() If the PHY is not powered on and we are not supposed to send any bursts to it, then trx_if_send_burst() should just return early. Change-Id: I578bd5a731ad88ebff283c75bb7eb268d9e7e787 Related: SYS#4895, OS#4941, OS#4006 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 15 insertions(+), 12 deletions(-) Approvals: laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 9e2cd75..18c5011 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -999,6 +999,13 @@ uint8_t pdu_ver = l1h->config.trxd_pdu_ver_use; uint8_t *buf = &trx_data_buf[0]; + /* Make sure that the PHY is powered on */ + if (!trx_if_powered(l1h)) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "Ignoring Tx data, transceiver is powered off\n"); + return -ENODEV; + } + if ((br->burst_len != GSM_BURST_LEN) && (br->burst_len != EGPRS_BURST_LEN)) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Tx burst length %zu invalid\n", br->burst_len); @@ -1027,18 +1034,14 @@ /* copy ubits {0,1} */ memcpy(buf + 6, br->burst, br->burst_len); - /* we must be sure that TRX is on */ - if (trx_if_powered(l1h)) { - snd_len = send(l1h->trx_ofd_data.fd, trx_data_buf, br->burst_len + 6, 0); - if (snd_len <= 0) { - strerror_r(errno, (char *) trx_data_buf, sizeof(trx_data_buf)); - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, - "send() failed on TRXD with rc=%zd (%s)\n", - snd_len, trx_data_buf); - return -2; - } - } else - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Ignoring TX data, transceiver powered off.\n"); + snd_len = send(l1h->trx_ofd_data.fd, trx_data_buf, br->burst_len + 6, 0); + if (snd_len <= 0) { + strerror_r(errno, (char *) trx_data_buf, sizeof(trx_data_buf)); + LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, + "send() failed on TRXD with rc=%zd (%s)\n", + snd_len, trx_data_buf); + return -2; + } return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I578bd5a731ad88ebff283c75bb7eb268d9e7e787 Gerrit-Change-Number: 23867 Gerrit-PatchSet: 4 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 Fri Apr 30 19:08:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 19:08:04 +0000 Subject: Change in osmo-bts[master]: vty: fix the use of deprecated osmo_bts_feature_name() 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/+/23916 to look at the new patch set (#3). Change subject: vty: fix the use of deprecated osmo_bts_feature_name() ...................................................................... vty: fix the use of deprecated osmo_bts_feature_name() Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba Depends: I9dfdb5e81037b6000effbd340af4e5db0dcfd69c --- M TODO-RELEASE M src/common/vty.c 2 files changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/23916/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67863da286b0fd1ec42088bce12d3c76e4be30ba Gerrit-Change-Number: 23916 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 Fri Apr 30 19:32:27 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 19:32:27 +0000 Subject: Change in osmo-bsc[master]: fix test_gsm48_multirate_config: dump the complete AMR lv buffer In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24001 ) Change subject: fix test_gsm48_multirate_config: dump the complete AMR lv buffer ...................................................................... fix test_gsm48_multirate_config: dump the complete AMR lv buffer It's acceptable to verify an outcome by printing to an expected output. It's unacceptable to commit those expected outputs without first verifying that they are in fact correct! In this case, the output has obviously not been even read, since the length byte clearly indicates that one byte is missing from each buffer dump. I have now verified by hand against 3GPP TS 44.018 that each one of the generated octets are indeed correct. Change-Id: I92fcc7afe018a4a8dc91f0f2167e3a7835f623c9 --- M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok 2 files changed, 8 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index 7545381..9a1d3cf 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -810,7 +810,7 @@ rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 4); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, - osmo_hexdump_nospc(lv, lv[0])); + osmo_hexdump_nospc(lv, 1 + lv[0])); /* Test #2: 4 active set members, but wrong mode order: */ mr.ms_mode[3].mode = 2; @@ -832,7 +832,7 @@ rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 3); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, - osmo_hexdump_nospc(lv, lv[0])); + osmo_hexdump_nospc(lv, 1 + lv[0])); /* Test #4: 3 active set members, but wrong mode order: */ mr.ms_mode[0].mode = 2; @@ -852,7 +852,7 @@ rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 2); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, - osmo_hexdump_nospc(lv, lv[0])); + osmo_hexdump_nospc(lv, 1 + lv[0])); /* Test #6: 2 active set members, but wrong mode order: */ mr.ms_mode[1].mode = 2; @@ -870,7 +870,7 @@ rc = gsm48_multirate_config(lv, gsm48_ie, mr.ms_mode, 1); OSMO_ASSERT(rc == 0); printf("gsm48_multirate_config(): rc=%i, lv=%s\n", rc, - osmo_hexdump_nospc(lv, lv[0])); + osmo_hexdump_nospc(lv, 1 + lv[0])); /* Test #8: 0 active set members: */ mr.ms_mode[0].mode = 0; diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok index 7e054f4..f1aa463 100644 --- a/tests/gsm0408/gsm0408_test.ok +++ b/tests/gsm0408/gsm0408_test.ok @@ -239,8 +239,8 @@ test_gsm48_ra_id_by_bts[4]: digits='999999' lac=0xffff=htons(65535) rac=0xff=255 pass test_gsm48_ra_id_by_bts[5]: digits='09f909' lac=0xcdab=htons(43981) rac=0xab=171 pass test_gsm48_ra_id_by_bts[6]: digits='090990' lac=0xcdab=htons(43981) rac=0xab=171 pass -gsm48_multirate_config(): rc=0, lv=0620b40bf330 -gsm48_multirate_config(): rc=0, lv=0520340bf3 -gsm48_multirate_config(): rc=0, lv=0420140b -gsm48_multirate_config(): rc=0, lv=0220 +gsm48_multirate_config(): rc=0, lv=0620b40bf330d8 +gsm48_multirate_config(): rc=0, lv=0520340bf330 +gsm48_multirate_config(): rc=0, lv=0420140bf0 +gsm48_multirate_config(): rc=0, lv=022004 Done. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I92fcc7afe018a4a8dc91f0f2167e3a7835f623c9 Gerrit-Change-Number: 24001 Gerrit-PatchSet: 1 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 Fri Apr 30 19:38:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 19:38:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_assignment_codec_fr_by_mode_modify In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 ) Change subject: bsc: add TC_assignment_codec_fr_by_mode_modify ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/3/bsc/MSC_ConnectionHandler.ttcn File bsc/MSC_ConnectionHandler.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/3/bsc/MSC_ConnectionHandler.ttcn at 789 PS3, Line 789: PDU_ML3_NW_MS > Makes more sense to use 'PDU_RRM_ChannelModeModify_NW_MS' here, because 'PDU_ML3_NW_MS' may technica [?] keeping the entire PDU allows also examining upper layers of the message, if we would ever want to https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808/3/bsc/MSC_ConnectionHandler.ttcn at 1246 PS3, Line 1246: var RSL_IE_Body chan_mode_ie; > This is a very imperative/C-style approach. [?] i copied code i found elsewhere about RSL message handling. I'd much rather have a record / union of members instead of an IE list. Since we unfortunately do have an IE list, f_rsl_find_ie() is conceptually much cleaner than assuming IE ordering -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf4efaed986de0bbd2b663313e837352cc139f0f Gerrit-Change-Number: 23808 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 19:38:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 19:38:20 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 19:38:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: f_channel_needs_modify(): ask actual TCH lchan mode via VTY In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 ) Change subject: f_channel_needs_modify(): ask actual TCH lchan mode via VTY ...................................................................... f_channel_needs_modify(): ask actual TCH lchan mode via VTY I am introducing a BSC test case that runs through a assigning a TCH channel for signalling, and then using Channel Mode Modify to change its mode from signalling to speech. For this to work, f_channel_needs_modify() needs to actually look up the channel mode of the TCH and not assume that a TCH is always in speech mode. Related: SYS#4895 Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 --- M bsc/MSC_ConnectionHandler.ttcn 1 file changed, 18 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 245528f..aa9f395 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -45,6 +45,7 @@ import from TELNETasp_PortType all; import from Osmocom_VTY_Functions all; +import from TCCConversion_Functions all; /*********************************************************************** @@ -955,21 +956,30 @@ /* Determine if the channel mode specified within rsl_chan_nr requires a * MODE MODIFY in to match the channel mode specified by given BSSMAP * ChannelType */ -function f_channel_needs_modify(BSSMAP_IE_ChannelType bssmap, RslChannelNr rsl_chan_nr) +function f_channel_needs_modify(TELNETasp_PT vty, BSSMAP_IE_ChannelType bssmap, RslChannelNr rsl_chan_nr) return boolean { - /* FIXME: This tests the rsl_chan_nr to determine if we are on a - * signalling channel or not. Unfortunately this may lead to false - * results if we are on a TCH. The problem is that a TCH may be also - * used in signalling mode, but this function assumes that only SDCCH4 - * and SDCCH8 are used as signalling channels at all. */ - var boolean current_signalling := false; var boolean desired_signalling := false; select (rsl_chan_nr) { case (t_RslChanNr_SDCCH4(?, ?)) { current_signalling := true; } case (t_RslChanNr_SDCCH8(?, ?)) { current_signalling := true; } + case (t_RslChanNr_Bm(?)) { + /* TCH/F, always subslot 0 */ + var charstring res := f_vty_transceive_ret(vty, "show lchan 0 0 " & int2str(rsl_chan_nr.tn) & " 0"); + if (f_strstr(res, "Channel Mode / Codec: SIGNALLING", 0) >= 0) { + current_signalling := true; + } + } + case (t_RslChanNr_Lm(?, ?)) { + /* TCH/H */ + var charstring res := f_vty_transceive_ret(vty, "show lchan 0 0 " & int2str(rsl_chan_nr.tn) + & " " & int2str(rsl_chan_nr.u.lm.sub_chan)); + if (f_strstr(res, "Channel Mode / Codec: SIGNALLING", 0) >= 0) { + current_signalling := true; + } + } } if (bssmap.speechOrDataIndicator == '0011'B) { @@ -1134,7 +1144,7 @@ * channel, we must now check if the mode of the current * channel is compatible. If not we expect the BSC to modify * the mode */ - exp_modify := f_channel_needs_modify(ass_cmd.pdu.bssmap.assignmentRequest.channelType, g_chan_nr); + exp_modify := f_channel_needs_modify(BSCVTY, ass_cmd.pdu.bssmap.assignmentRequest.channelType, g_chan_nr); } /* Some test situations will involve MGCP transactions on a media -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If30e2cec65da91cb5899ee29e2afb6696437a4c9 Gerrit-Change-Number: 23807 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 19:38:21 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 30 Apr 2021 19:38:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_assignment_codec_fr_by_mode_modify In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 ) Change subject: bsc: add TC_assignment_codec_fr_by_mode_modify ...................................................................... bsc: add TC_assignment_codec_fr_by_mode_modify Test the lchan mode modification code path of OsmoBSC, in preparation of adding VAMOS bits to the mode modification procedure. Related: SYS#4895 Change-Id: Idf4efaed986de0bbd2b663313e837352cc139f0f --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn 2 files changed, 111 insertions(+), 27 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index bc243b1..b07e693 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3612,36 +3612,39 @@ f_establish_fully(ass_cmd, exp_compl); - /* Verify that the RSL-side activation actually matches our expectations */ - var RSL_Message rsl := f_rslem_get_last_act(RSL_PROC, 0, g_chan_nr); + if (not g_pars.expect_channel_mode_modify) { + /* Verify that the RSL-side activation actually matches our expectations */ + var RSL_Message rsl := f_rslem_get_last_act(RSL_PROC, 0, g_chan_nr); - var RSL_IE_Body mode_ie; - if (f_rsl_find_ie(rsl, RSL_IE_CHAN_MODE, mode_ie) == false) { - setverdict(fail, "Couldn't find CHAN_MODE IE"); - mtc.stop; - } - var template RSL_IE_Body t_mode_ie := f_rsl_chmod_tmpl_from_codec(g_pars.ass_codec_list.codecElements[0]); - if (not match(mode_ie, t_mode_ie)) { - setverdict(fail, "RSL Channel Mode IE doesn't match expectation"); - } - - var RSL_IE_Body mr_conf; - if (g_pars.expect_mr_conf_ie != omit) { - if (f_rsl_find_ie(rsl, RSL_IE_MR_CONFIG, mr_conf) == false) { - setverdict(fail, "Missing MR CONFIG IE in RSL Chan Activ"); + var RSL_IE_Body mode_ie; + if (f_rsl_find_ie(rsl, RSL_IE_CHAN_MODE, mode_ie) == false) { + setverdict(fail, "Couldn't find CHAN_MODE IE"); mtc.stop; } - log("found RSL MR CONFIG IE: ", mr_conf); - - if (not match(mr_conf, g_pars.expect_mr_conf_ie)) { - setverdict(fail, "RSL MR CONFIG IE does not match expectation. Expected: ", - g_pars.expect_mr_conf_ie); + var template RSL_IE_Body t_mode_ie := f_rsl_chmod_tmpl_from_codec(g_pars.ass_codec_list.codecElements[0]); + if (not match(mode_ie, t_mode_ie)) { + log("mode_ie ", mode_ie, " != t_mode_ie ", t_mode_ie); + setverdict(fail, "RSL Channel Mode IE doesn't match expectation"); } - } else { - if (f_rsl_find_ie(rsl, RSL_IE_MR_CONFIG, mr_conf) == true) { + + var RSL_IE_Body mr_conf; + if (g_pars.expect_mr_conf_ie != omit) { + if (f_rsl_find_ie(rsl, RSL_IE_MR_CONFIG, mr_conf) == false) { + setverdict(fail, "Missing MR CONFIG IE in RSL Chan Activ"); + mtc.stop; + } log("found RSL MR CONFIG IE: ", mr_conf); - setverdict(fail, "Found MR CONFIG IE in RSL Chan Activ, expecting omit"); - mtc.stop; + + if (not match(mr_conf, g_pars.expect_mr_conf_ie)) { + setverdict(fail, "RSL MR CONFIG IE does not match expectation. Expected: ", + g_pars.expect_mr_conf_ie); + } + } else { + if (f_rsl_find_ie(rsl, RSL_IE_MR_CONFIG, mr_conf) == true) { + log("found RSL MR CONFIG IE: ", mr_conf); + setverdict(fail, "Found MR CONFIG IE in RSL Chan Activ, expecting omit"); + mtc.stop; + } } } } @@ -3803,6 +3806,30 @@ f_shutdown_helper(); } +/* Establish signalling on a TCH/F lchan, and then switch to speech mode without a new Assignment. */ +testcase TC_assignment_codec_fr_by_mode_modify() runs on test_CT { + var TestHdlrParams pars := f_gen_test_hdlr_pars(); + var MSC_ConnHdlr vc_conn; + + f_init(1, true); + f_sleep(1.0); + + /* By disabling all SDCCH, the MS should be given a TCH/F for signalling. Then activating an FR codec should + * merely do a Channel Mode Modify, and not assign to a new lchan. f_establish_fully() already accounts for + * expecting a Channel Mode Modify if the channel type is compatible. */ + f_disable_all_sdcch(); + f_disable_all_tch_h(); + + pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars.expect_channel_mode_modify := true; + vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars); + vc_conn.done; + + f_enable_all_sdcch(); + f_enable_all_tch(); + f_shutdown_helper(); +} + /* 'amr start-mode auto' should not keep the (unused) 'smod' bits from previous configuration */ testcase TC_assignment_codec_amr_startmode_cruft() runs on test_CT { var TestHdlrParams pars := f_gen_test_hdlr_pars(); @@ -4062,6 +4089,20 @@ f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 5 sub-slot 1 unused"); } +private function f_disable_all_sdcch() runs on test_CT { + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 0 borken"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 1 borken"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 2 borken"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 3 borken"); +} + +private function f_enable_all_sdcch() runs on test_CT { + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 0 unused"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 1 unused"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 2 unused"); + f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 3 unused"); +} + /* Allow HR only */ private function f_TC_assignment_codec_xr_exhausted_req_hr(charstring id) runs on MSC_ConnHdlr { g_pars := f_gen_test_hdlr_pars(); @@ -8608,6 +8649,7 @@ execute( TC_ciph_mode_a5_3() ); execute( TC_assignment_codec_fr() ); + execute( TC_assignment_codec_fr_by_mode_modify() ); execute( TC_assignment_codec_hr() ); execute( TC_assignment_codec_efr() ); execute( TC_assignment_codec_amr_f() ); diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index aa9f395..6b93ca5 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -589,7 +589,8 @@ charstring host_aoip_tla, TestHdlrParamsMSCPool mscpool, boolean media_mgw_offer_ipv6, - OCT3 last_used_eutran_plmn optional + OCT3 last_used_eutran_plmn optional, + boolean expect_channel_mode_modify }; /* Note: Do not use valueof() to get a value of this template, use @@ -625,7 +626,8 @@ l3_info := omit }, media_mgw_offer_ipv6 := true, - last_used_eutran_plmn := omit + last_used_eutran_plmn := omit, + expect_channel_mode_modify := false } function f_create_chan_and_exp() runs on MSC_ConnHdlr { @@ -784,7 +786,9 @@ boolean assignment_done, RslChannelNr old_chan_nr, /* Modify related bits */ + PDU_ML3_NW_MS rr_channel_mode_modify_msg optional, boolean rr_modify_seen, + RSL_Message rsl_mode_modify_msg optional, boolean modify_done } @@ -796,7 +800,9 @@ old_lchan_rll_rel_req_seen := false, assignment_done := false, old_chan_nr := -, + rr_channel_mode_modify_msg := omit, rr_modify_seen := false, + rsl_mode_modify_msg := omit, modify_done := false } @@ -908,6 +914,7 @@ var PDU_ML3_NW_MS l3 := dec_PDU_ML3_NW_MS(rsl.ies[2].body.l3_info.payload); log("Rx L3 from net: ", l3); if (ischosen(l3.msgs.rrm.channelModeModify)) { + st.rr_channel_mode_modify_msg := l3; f_rsl_reply(ts_RRM_ModeModifyAck(l3.msgs.rrm.channelModeModify.channelDescription, l3.msgs.rrm.channelModeModify.channelMode), rsl); st.rr_modify_seen := true; @@ -915,6 +922,7 @@ repeat; } [st.voice_call and st.rr_modify_seen] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_MODE_MODIFY_REQ)) -> value rsl { + st.rsl_mode_modify_msg := rsl; RSL.send(ts_RSL_MODE_MODIFY_ACK(g_chan_nr)); st.modify_done := true; repeat; @@ -1144,6 +1152,7 @@ * channel, we must now check if the mode of the current * channel is compatible. If not we expect the BSC to modify * the mode */ + st.is_assignment := false; exp_modify := f_channel_needs_modify(BSCVTY, ass_cmd.pdu.bssmap.assignmentRequest.channelType, g_chan_nr); } @@ -1218,6 +1227,39 @@ mtc.stop; } + if (exp_modify) { + /* Verify that the RR Channel Mode Modify and RSL MODE MODIFY message asked for the expected channel + * mode. */ + /* TODO: more precisely expect the different types of speech? */ + var OCT1 rr_channel_mode := st.rr_channel_mode_modify_msg.msgs.rrm.channelModeModify.channelMode.mode; + + if (st.voice_call and rr_channel_mode == '00'O) { + setverdict(fail, "f_establish_fully(): Expected RR Channel Mode Modify", + " to a speech mode, but got channelMode == ", rr_channel_mode); + mtc.stop; + } else if (not st.voice_call and rr_channel_mode != '00'O) { + setverdict(fail, "f_establish_fully(): Expected RR Channel Mode Modify", + " to signalling mode, but got channelMode == ", rr_channel_mode); + mtc.stop; + } + + var RSL_IE_Body chan_mode_ie; + if (not f_rsl_find_ie(st.rsl_mode_modify_msg, RSL_IE_CHAN_MODE, chan_mode_ie)) { + setverdict(fail, "RSL MODE MODIFY message lacks a Channel Mode IE"); + mtc.stop; + } + var RSL_SpeechDataInd rsl_spd_ind := chan_mode_ie.chan_mode.spd_ind; + if (st.voice_call and rsl_spd_ind != RSL_SPDI_SPEECH) { + setverdict(fail, "f_establish_fully(): Expected RSL MODE MODIFY", + " to a speech mode, but got spd_ind == ", rsl_spd_ind); + mtc.stop; + } else if (not st.voice_call and rsl_spd_ind != RSL_SPDI_SIGN) { + setverdict(fail, "f_establish_fully(): Expected RSL MODE MODIFY", + " to signalling mode, but got spd_ind == ", rsl_spd_ind); + mtc.stop; + } + } + /* When the BSC detects that LCLS is possible it will cross the * connetions that point to the PBX side of the MGW. In our case this * is mgcp_conn[1]. The BSC performs this operation already before the -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idf4efaed986de0bbd2b663313e837352cc139f0f Gerrit-Change-Number: 23808 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 19:40:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 19:40:32 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement TRXDv2 protocol support 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/+/23833 to look at the new patch set (#8). Change subject: osmo-bts-trx: implement TRXDv2 protocol support ...................................................................... osmo-bts-trx: implement TRXDv2 protocol support Change-Id: I3532a6693bb335043ec390049138308991083e66 Related: SYS#4895, OS#4941, OS#4006 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 3 files changed, 170 insertions(+), 69 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/33/23833/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3532a6693bb335043ec390049138308991083e66 Gerrit-Change-Number: 23833 Gerrit-PatchSet: 8 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 Apr 30 19:49:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 19:49:20 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement TRXDv2 protocol support In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/23833 ) Change subject: osmo-bts-trx: implement TRXDv2 protocol support ...................................................................... Patch Set 8: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/include/osmo-bts/scheduler.h File include/osmo-bts/scheduler.h: https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/include/osmo-bts/scheduler.h at 256 PS7, Line 256: uint8_t _pdu_num; /*!< Number of this PDU within the datagram */ > This field basically holds the number of parsed PDUs, so when it's 0 we expect TDMA frame number to [?] Clarified. https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 726 PS7, Line 726: #define TRX_UL_V2HDR_LEN 1 + 1 + 1 + 1 + 2 + 2 > Ack Done. https://gerrit.osmocom.org/c/osmo-bts/+/23833/7/src/osmo-bts-trx/trx_if.c at 987 PS7, Line 987: loop: > * the indent level here is not deep at all [?] Done. I am not happy about this change though, and still don't see why do you both consider using 'goto' the evil. I don't see any benefits in this particular case. Diff looks ugly as expected. Splitting into smaller functions further looks pointless to me. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/23833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3532a6693bb335043ec390049138308991083e66 Gerrit-Change-Number: 23833 Gerrit-PatchSet: 8 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 19:49:20 +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 Fri Apr 30 19:54:06 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 19:54:06 +0000 Subject: Change in osmo-bts[master]: scheduler: drop Uplink loss detection from Downlink path In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/20674 ) Change subject: scheduler: drop Uplink loss detection from Downlink path ...................................................................... Patch Set 4: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/20674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic292d180ba64206fb4d88adb284f9f9d058b4587 Gerrit-Change-Number: 20674 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 30 Apr 2021 19:54: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 Fri Apr 30 19:56:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 19:56:42 +0000 Subject: Change in pysim[master]: utils: specify paremeters of enc_plmn() as string In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/23998 ) Change subject: utils: specify paremeters of enc_plmn() as string ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/23998/1/pySim/utils.py File pySim/utils.py: https://gerrit.osmocom.org/c/pysim/+/23998/1/pySim/utils.py at a137 PS1, Line 137: def enc_plmn(mcc, mnc): > I think it should/could even be Hexstr, as we use this in other places where we expect a string of h [?] Ack, and the returned value too. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/23998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I57cf8e2de357650aef2a06fbffc7615ccb2a45b4 Gerrit-Change-Number: 23998 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 19:56:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 20:02:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:02:31 +0000 Subject: Change in pysim[master]: utils: specify type of parameter name in enc_spn In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/24005 ) Change subject: utils: specify type of parameter name in enc_spn ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I43a1e68afe9e756346bc0cfe8bda4ac665ac6c54 Gerrit-Change-Number: 24005 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 20:02:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 20:06:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:06:27 +0000 Subject: Change in pysim[master]: ts_51_011: fix encoder of EF_SPN: In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/24006 ) Change subject: ts_51_011: fix encoder of EF_SPN: ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/pysim/+/24006/3/pySim/ts_51_011.py File pySim/ts_51_011.py: https://gerrit.osmocom.org/c/pysim/+/24006/3/pySim/ts_51_011.py at a525 PS3, Line 525: return enc_spn(abstract['spn']) You could just use list/tuple expansion here (note the star symbol): return enc_spn(*abstract['spn']) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0a405793c8909d4279e634b93dcb76e5cb2963f3 Gerrit-Change-Number: 24006 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 20:06:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 20:08:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:08:34 +0000 Subject: Change in pysim[master]: pySim_prog: remove unused import for dec_addr_tlv In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/24009 ) Change subject: pySim_prog: remove unused import for dec_addr_tlv ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I2a962d544f288259f16c1dca92715953d1c24d82 Gerrit-Change-Number: 24009 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 20:08:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 20:12:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:12:21 +0000 Subject: Change in pysim[master]: utils: split string formatting from dec_addr_tlv In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/24010 ) Change subject: utils: split string formatting from dec_addr_tlv ...................................................................... Patch Set 2: (4 comments) https://gerrit.osmocom.org/c/pysim/+/24010/2/pySim/cards.py File pySim/cards.py: https://gerrit.osmocom.org/c/pysim/+/24010/2/pySim/cards.py at a302 PS2, Line 302: return (dec_addr_tlv(res), sw) Same here, let's use tuple/list expansion: return (*dec_addr_tlv(res), sw) https://gerrit.osmocom.org/c/pysim/+/24010/2/pySim/cards.py at a361 PS2, Line 361: content = dec_addr_tlv(res) Same here. https://gerrit.osmocom.org/c/pysim/+/24010/2/pySim/cards.py at 32 PS2, Line 32: def format_addr(addr, addr_type='00'): Would be nice to always have type hints with the new API. https://gerrit.osmocom.org/c/pysim/+/24010/2/pySim/utils.py File pySim/utils.py: https://gerrit.osmocom.org/c/pysim/+/24010/2/pySim/utils.py at 642 PS2, Line 642: return (None, None) Shouldn't this be considered an error? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id017b0786089adac4d6c5be688742eaa9699e529 Gerrit-Change-Number: 24010 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 20:12: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 Apr 30 20:17:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:17:52 +0000 Subject: Change in pysim[master]: filesystem: add unit tests for encoder/decoder methods In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/24012 ) Change subject: filesystem: add unit tests for encoder/decoder methods ...................................................................... Patch Set 1: (1 comment) I am not familiar with the new pySim API, but it feels like you're re-inventing Python's unittest framework in this change. https://gerrit.osmocom.org/c/pysim/+/24012/1/pySim/filesystem.py File pySim/filesystem.py: https://gerrit.osmocom.org/c/pysim/+/24012/1/pySim/filesystem.py at 383 PS1, Line 383: file. To run this, simply define a _encode_decode_testvector[] testvector Mix of tabs and spaces, please do s/\t/ /g. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I02d884547f4982e0b8ed7ef21b8cda75237942e2 Gerrit-Change-Number: 24012 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 20:17: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 Fri Apr 30 20:24:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:24:17 +0000 Subject: Change in pysim[master]: filesystem: add unit tests for encoder/decoder methods In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/24012 ) Change subject: filesystem: add unit tests for encoder/decoder methods ...................................................................... Patch Set 1: Code-Review-1 > Patch Set 1: > > (1 comment) > > I am not familiar with the new pySim API, but it feels like you're re-inventing Python's unittest framework in this change. Ideally the implementation should not be mixed with the unit tests, and there should be separate tests for separate API parts. This eliminates the need for custom and verbose logging, and helps to locate the problematic part faster. Also, unittest provides really nice API for tests: self.assertEqual, self.assertRaises, self.subTest, etc. which you don't seem to be using at all... -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I02d884547f4982e0b8ed7ef21b8cda75237942e2 Gerrit-Change-Number: 24012 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 30 Apr 2021 20:24:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Apr 30 20:33:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:33:07 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/trxd_proto.py: fix encoding of TRXDv0 Tx PDUs References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/24013 ) Change subject: trx_toolkit/trxd_proto.py: fix encoding of TRXDv0 Tx PDUs ...................................................................... trx_toolkit/trxd_proto.py: fix encoding of TRXDv0 Tx PDUs Change-Id: I9da59f7e7c47dd1cac833839165ba05de6b18144 Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/trxd_proto.py 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/13/24013/1 diff --git a/src/target/trx_toolkit/trxd_proto.py b/src/target/trx_toolkit/trxd_proto.py index 7afa484..ded0336 100644 --- a/src/target/trx_toolkit/trxd_proto.py +++ b/src/target/trx_toolkit/trxd_proto.py @@ -125,9 +125,10 @@ class PDUv1Tx(PDUv0Tx): # Same structure as PDUv0Tx, only the version is different - def __init__(self, *args, **kw): - PDUv0Tx.__init__(self, *args, **kw) - self.STRUCT[0]._fields[0].val = 1 + STRUCT = ( + Header(ver=1), + *PDUv0Tx.STRUCT[1:] + ) class PDUv2Rx(codec.Envelope): -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/24013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I9da59f7e7c47dd1cac833839165ba05de6b18144 Gerrit-Change-Number: 24013 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 Apr 30 20:33:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:33:07 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/trxd_proto.py: fix missing field name for codec.Spare References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/24014 ) Change subject: trx_toolkit/trxd_proto.py: fix missing field name for codec.Spare ...................................................................... trx_toolkit/trxd_proto.py: fix missing field name for codec.Spare Change-Id: I110dbcebf86cf978f2de7275a91c48b999fade32 Fixes: I482f72fd9305c51f43a0339d03904fb693d90ac9 Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/trxd_proto.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/14/24014/1 diff --git a/src/target/trx_toolkit/trxd_proto.py b/src/target/trx_toolkit/trxd_proto.py index ded0336..74a3124 100644 --- a/src/target/trx_toolkit/trxd_proto.py +++ b/src/target/trx_toolkit/trxd_proto.py @@ -162,7 +162,7 @@ MTS(), codec.Uint('pwr'), codec.Int('scpir'), - codec.Spare(len=3), + codec.Spare('spare', len=3), BurstBits('hard-bits'), ) @@ -171,7 +171,7 @@ MTS(), codec.Uint('pwr'), codec.Int('scpir'), - codec.Spare(len=3), + codec.Spare('spare', len=3), codec.Uint32BE('fn'), BurstBits('hard-bits'), codec.Sequence(item=BPDU()).f('bpdu'), -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/24014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I110dbcebf86cf978f2de7275a91c48b999fade32 Gerrit-Change-Number: 24014 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 Apr 30 20:33:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:33:07 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/gsm_shared.py: s/GSM_BURST_LEN/GMSK_BURST_LEN/g References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/24015 ) Change subject: trx_toolkit/gsm_shared.py: s/GSM_BURST_LEN/GMSK_BURST_LEN/g ...................................................................... trx_toolkit/gsm_shared.py: s/GSM_BURST_LEN/GMSK_BURST_LEN/g Change-Id: I7268196eb9fd822f0e7b65899e4c83c48a20ba5b --- M src/target/trx_toolkit/data_msg.py M src/target/trx_toolkit/gsm_shared.py M src/target/trx_toolkit/rand_burst_gen.py 3 files changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/15/24015/1 diff --git a/src/target/trx_toolkit/data_msg.py b/src/target/trx_toolkit/data_msg.py index f5d570f..5e42964 100644 --- a/src/target/trx_toolkit/data_msg.py +++ b/src/target/trx_toolkit/data_msg.py @@ -347,7 +347,7 @@ raise ValueError("Tx burst bits are not set") # FIXME: properly handle IDLE / NOPE indications - if len(self.burst) not in (GSM_BURST_LEN, EDGE_BURST_LEN): + if len(self.burst) not in (GMSK_BURST_LEN, EDGE_BURST_LEN): raise ValueError("Tx burst has odd length %u" % len(self.burst)) def rand_pwr(self, min = None, max = None): @@ -411,9 +411,9 @@ if length >= EDGE_BURST_LEN: self.burst = list(burst[:EDGE_BURST_LEN]) else: - self.burst = list(burst[:GSM_BURST_LEN]) + self.burst = list(burst[:GMSK_BURST_LEN]) - def rand_burst(self, length = GSM_BURST_LEN): + def rand_burst(self, length = GMSK_BURST_LEN): ''' Generate a random message specific burst. ''' self.burst = [random.randint(0, 1) for _ in range(length)] @@ -578,7 +578,7 @@ raise ValueError("Rx burst bits are not set") # ... and can be either of GSM (GMSK) or EDGE (8-PSK) - if len(self.burst) not in (GSM_BURST_LEN, EDGE_BURST_LEN): + if len(self.burst) not in (GMSK_BURST_LEN, EDGE_BURST_LEN): raise ValueError("Rx burst has odd length %u" % len(self.burst)) def _validate_burst_v1(self): diff --git a/src/target/trx_toolkit/gsm_shared.py b/src/target/trx_toolkit/gsm_shared.py index aac152e..7c50245 100644 --- a/src/target/trx_toolkit/gsm_shared.py +++ b/src/target/trx_toolkit/gsm_shared.py @@ -29,8 +29,8 @@ GSM_HYPERFRAME = 2048 * GSM_SUPERFRAME # Burst length -GSM_BURST_LEN = 148 -EDGE_BURST_LEN = GSM_BURST_LEN * 3 +GMSK_BURST_LEN = 148 +EDGE_BURST_LEN = GMSK_BURST_LEN * 3 class BurstType(Enum): """ Burst types defined in 3GPP TS 45.002 """ diff --git a/src/target/trx_toolkit/rand_burst_gen.py b/src/target/trx_toolkit/rand_burst_gen.py index 0eb2e8f..b9846ab 100644 --- a/src/target/trx_toolkit/rand_burst_gen.py +++ b/src/target/trx_toolkit/rand_burst_gen.py @@ -80,7 +80,7 @@ # Generate a frequency correction burst def gen_fb(self): - return [0] * GSM_BURST_LEN + return [0] * GMSK_BURST_LEN # Generate a synchronization burst def gen_sb(self, tsc = None): -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/24015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7268196eb9fd822f0e7b65899e4c83c48a20ba5b Gerrit-Change-Number: 24015 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 Apr 30 20:33:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:33:08 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_msg.py: update entries in enum Modulation References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/24016 ) Change subject: trx_toolkit/data_msg.py: update entries in enum Modulation ...................................................................... trx_toolkit/data_msg.py: update entries in enum Modulation Change-Id: Ia96b263bbb162b6c40f2cf81616118cc297299a5 Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/data_msg.py 1 file changed, 7 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/16/24016/1 diff --git a/src/target/trx_toolkit/data_msg.py b/src/target/trx_toolkit/data_msg.py index 5e42964..1222e52 100644 --- a/src/target/trx_toolkit/data_msg.py +++ b/src/target/trx_toolkit/data_msg.py @@ -31,11 +31,13 @@ class Modulation(Enum): """ Modulation types defined in 3GPP TS 45.002 """ - ModGMSK = (0b0000, 148) - Mod8PSK = (0b0100, 444) - ModAQPSK = (0b0110, 296) - Mod16QAM = (0b1000, 592) - Mod32QAM = (0b1010, 740) + ModGMSK = (0b0000, 1 * GMSK_BURST_LEN) + Mod8PSK = (0b0100, 3 * GMSK_BURST_LEN) + ModGMSK_AB = (0b0110, 1 * GMSK_BURST_LEN) + ModRFU = (0b0111, 0) # Reserved for Future Use + Mod16QAM = (0b1000, 4 * GMSK_BURST_LEN) + Mod32QAM = (0b1010, 5 * GMSK_BURST_LEN) + ModAQPSK = (0b1100, 2 * GMSK_BURST_LEN) def __init__(self, coding, bl): # Coding in TRXD header -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/24016 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ia96b263bbb162b6c40f2cf81616118cc297299a5 Gerrit-Change-Number: 24016 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 Apr 30 20:33:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:33:08 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_msg.py: remove obsolete documentation References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/24017 ) Change subject: trx_toolkit/data_msg.py: remove obsolete documentation ...................................................................... trx_toolkit/data_msg.py: remove obsolete documentation We do have TRXC/TRXD documentation in osmo-gsm-manuals repository. These big comments are out of sync with what we have in the manuals, so let's better remove them to avoid maintaining docs in several places. Change-Id: I47786cf3039f712efadc85bc4e1c3ae89e79ff25 Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/data_msg.py 1 file changed, 3 insertions(+), 170 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/17/24017/1 diff --git a/src/target/trx_toolkit/data_msg.py b/src/target/trx_toolkit/data_msg.py index 1222e52..c62db35 100644 --- a/src/target/trx_toolkit/data_msg.py +++ b/src/target/trx_toolkit/data_msg.py @@ -60,67 +60,7 @@ return None class DATAMSG(abc.ABC): - """ TRXD (DATA) message codec (common part). - - The DATA messages are used to carry bursts in both directions - between L1 and TRX. There exist two kinds of them: - - - L12TRX (L1 -> TRX) - to be transmitted bursts, - - TRX2L1 (TRX -> L1) - received bursts. - - Both of them have quite similar structure, and start with - the common fixed-size message header (no TLVs): - - +---------------+-----------------+------------+ - | common header | specific header | burst bits | - +---------------+-----------------+------------+ - - while the message specific headers and bit types are different. - - The common header is represented by this class, which is the - parent of both DATAMSG_L12TRX and DATAMSG_TRX2L2 (see below), - and has the following fields: - - +-----------------+----------------+-------------------+ - | VER (1/2 octet) | TN (1/2 octet) | FN (4 octets, BE) | - +-----------------+----------------+-------------------+ - - where: - - - VER is the header version indicator (1/2 octet MSB), - - TN is TDMA time-slot number (1/2 octet LSB), and - - FN is TDMA frame number (4 octets, big endian). - - == Header version indication - - It may be necessary to extend the message specific header - with more information. Since this is not a TLV-based - protocol, we need to include the header format version. - - +-----------------+------------------------+ - | 7 6 5 4 3 2 1 0 | bit numbers | - +-----------------+------------------------+ - | X X X X . . . . | header version (0..15) | - +-----------------+------------------------+ - | . . . . . X X X | TDMA TN (0..7) | - +-----------------+------------------------+ - | . . . . X . . . | RESERVED (0) | - +-----------------+------------------------+ - - Instead of prepending an additional byte, it was decided to use - 4 MSB bits of the first octet, which used to be zero-initialized - due to the value range of TDMA TN. Therefore, the legacy header - format has implicit version 0x00. - - Otherwise Wireshark (or trx_sniff.py) would need to guess the - header version, or alternatively follow the control channel - looking for the version setting command. - - The reserved bit number 3 can be used in the future to extend - the TDMA TN range to (0..15), in case anybody would need - to transfer UMTS bursts. - - """ + ''' TRXD (DATA) message coding API (common part). ''' # NOTE: up to 16 versions can be encoded CHDR_VERSION_MAX = 0b1111 @@ -289,26 +229,7 @@ self.burst = None class DATAMSG_L12TRX(DATAMSG): - """ L12TRX (L1 -> TRX) message codec. - - This message represents a Downlink burst on the BTS side, - or an Uplink burst on the MS side, and has the following - message specific fixed-size header preceding the burst bits: - - == Versions 0x00, 0x01 - - +-----+--------------------+ - | PWR | hard-bits (1 or 0) | - +-----+--------------------+ - - where PWR (1 octet) is relative (to the full-scale amplitude) - transmit power level in dB. The absolute value is set on - the control interface. - - Each hard-bit (1 or 0) of the burst is represented using one - byte (0x01 or 0x00 respectively). - - """ + ''' L12TRX (L1 -> TRX) message coding API. ''' # Constants PWR_MIN = 0x00 @@ -435,95 +356,7 @@ return msg class DATAMSG_TRX2L1(DATAMSG): - """ TRX2L1 (TRX -> L1) message codec. - - This message represents an Uplink burst on the BTS side, - or a Downlink burst on the MS side, and has the following - message specific fixed-size header preceding the burst bits: - - == Version 0x00 - - +------+-----+--------------------+ - | RSSI | ToA | soft-bits (254..0) | - +------+-----+--------------------+ - - == Version 0x01 - - +------+-----+-----+-----+--------------------+ - | RSSI | ToA | MTS | C/I | soft-bits (254..0) | - +------+-----+-----+-----+--------------------+ - - where: - - - RSSI (1 octet) - Received Signal Strength Indication - encoded without the negative sign. - - ToA (2 octets) - Timing of Arrival in units of 1/256 - of symbol (big endian). - - MTS (1 octet) - Modulation and Training Sequence info. - - C/I (2 octets) - Carrier-to-Interference ratio (big endian). - - == Coding of MTS: Modulation and Training Sequence info - - 3GPP TS 45.002 version 15.1.0 defines several modulation types, - and a few sets of training sequences for each type. The most - common are GMSK and 8-PSK (which is used in EDGE). - - +-----------------+---------------------------------------+ - | 7 6 5 4 3 2 1 0 | bit numbers (value range) | - +-----------------+---------------------------------------+ - | X . . . . . . . | IDLE / nope frame indication (0 or 1) | - +-----------------+---------------------------------------+ - | . X X X X . . . | Modulation, TS set number (see below) | - +-----------------+---------------------------------------+ - | . . . . . X X X | Training Sequence Code (0..7) | - +-----------------+---------------------------------------+ - - The bit number 7 (MSB) is set to high when either nothing has been - detected, or during IDLE frames, so we can deliver noise levels, - and avoid clock gaps on the L1 side. Other bits are ignored, - and should be set to low (0) in this case. - - == Coding of modulation and TS set number - - GMSK has 4 sets of training sequences (see tables 5.2.3a-d), - while 8-PSK (see tables 5.2.3f-g) and the others have 2 sets. - Access and Synchronization bursts also have several synch. - sequences. - - +-----------------+---------------------------------------+ - | 7 6 5 4 3 2 1 0 | bit numbers (value range) | - +-----------------+---------------------------------------+ - | . 0 0 X X . . . | GMSK, 4 TS sets (0..3) | - +-----------------+---------------------------------------+ - | . 0 1 0 X . . . | 8-PSK, 2 TS sets (0..1) | - +-----------------+---------------------------------------+ - | . 0 1 1 X . . . | AQPSK, 2 TS sets (0..1) | - +-----------------+---------------------------------------+ - | . 1 0 0 X . . . | 16QAM, 2 TS sets (0..1) | - +-----------------+---------------------------------------+ - | . 1 0 1 X . . . | 32QAM, 2 TS sets (0..1) | - +-----------------+---------------------------------------+ - | . 1 1 1 X . . . | RESERVED (0) | - +-----------------+---------------------------------------+ - - == C/I: Carrier-to-Interference ratio - - The C/I value can be computed from the training sequence of each - burst, where we can compare the "ideal" training sequence with - the actual training sequence and then express that in centiBels. - - == Coding of the burst bits - - Unlike the transmitted bursts, the received bursts are designated - using the soft-bits notation, so the receiver can indicate its - assurance from 0 to -127 that a given bit is 1, and from 0 to +127 - that a given bit is 0. The Viterbi algorithm allows to approximate - the original sequence of hard-bits (1 or 0) using these values. - - Each soft-bit (-127..127) of the burst is encoded as an unsigned - value in range (0..255) respectively using the constant shift. - - """ + ''' TRX2L1 (TRX -> L1) message coding API. ''' # rxlev2dbm(0..63) gives us [-110..-47], plus -10 dbm for noise RSSI_MIN = -120 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/24017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I47786cf3039f712efadc85bc4e1c3ae89e79ff25 Gerrit-Change-Number: 24017 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 Apr 30 20:33:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:33:08 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit: use RxMsg/TxMsg instead of TRX2L1/L12TRX References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/24018 ) Change subject: trx_toolkit: use RxMsg/TxMsg instead of TRX2L1/L12TRX ...................................................................... trx_toolkit: use RxMsg/TxMsg instead of TRX2L1/L12TRX I intentionally do not use 'Downlink' and 'Uplink' terms in this project because both MS and BTS transmit and receive on the opposite directions. A burst coming from demodulator may be a Downlink or an Uplink burst depending on the context, so we definitely need more precise terms. Back then when I started to work on TRX toolkit, I decided to use the 'TRX2L1' and 'L12TRX' for receive and transmit directions respectively. Now I find them hard to read, so let's replace them with 'Rx' and 'Tx'. Change-Id: I688f24a3c09dd7e1cc00b5530ec26c8e8cfd8f7c Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/burst_fwd.py M src/target/trx_toolkit/burst_gen.py M src/target/trx_toolkit/burst_send.py M src/target/trx_toolkit/ctrl_if_trx.py M src/target/trx_toolkit/data_dump.py M src/target/trx_toolkit/data_if.py M src/target/trx_toolkit/data_msg.py M src/target/trx_toolkit/fake_trx.py M src/target/trx_toolkit/test_data_dump.py M src/target/trx_toolkit/test_data_msg.py M src/target/trx_toolkit/transceiver.py M src/target/trx_toolkit/trx_sniff.py 12 files changed, 117 insertions(+), 121 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/18/24018/1 diff --git a/src/target/trx_toolkit/burst_fwd.py b/src/target/trx_toolkit/burst_fwd.py index 0b69fe2..2e9e97b 100644 --- a/src/target/trx_toolkit/burst_fwd.py +++ b/src/target/trx_toolkit/burst_fwd.py @@ -37,8 +37,8 @@ - actual RX / TX frequencies, - list of active timeslots. - Each to be distributed L12TRX message is being transformed - into a TRX2L1 message, and then forwarded to transceivers + Each to be distributed 'TxMsg' message is being transformed + into a 'RxMsg' message, and then forwarded to transceivers with partially initialized header. All uninitialized header fields (such as rssi and toa256) shall be set by each transceiver individually before sending towards the L1. @@ -69,6 +69,6 @@ if trx.get_rx_freq(rx_msg.fn) != tx_freq: continue - # Transform from L12TRX to TRX2L1 and forward - tx_msg = rx_msg.gen_trx2l1(ver = trx.data_if._hdr_ver) + # Transform from TxMsg to RxMsg and forward + tx_msg = rx_msg.trans(ver = trx.data_if._hdr_ver) trx.handle_data_msg(src_trx, rx_msg, tx_msg) diff --git a/src/target/trx_toolkit/burst_gen.py b/src/target/trx_toolkit/burst_gen.py index 7f154b3..f93d868 100755 --- a/src/target/trx_toolkit/burst_gen.py +++ b/src/target/trx_toolkit/burst_gen.py @@ -68,9 +68,9 @@ # Init an empty DATA message if self.argv.conn_mode == "TRX": - msg = DATAMSG_L12TRX(ver = self.argv.hdr_ver) + msg = TxMsg(ver = self.argv.hdr_ver) elif self.argv.conn_mode == "L1": - msg = DATAMSG_TRX2L1(ver = self.argv.hdr_ver) + msg = RxMsg(ver = self.argv.hdr_ver) # Generate a random frame number or use provided one fn_init = msg.rand_fn() if self.argv.tdma_fn is None \ @@ -176,7 +176,7 @@ help = "How many bursts to send (default %(default)s)") bg_group.add_argument("-v", "--hdr-version", metavar = "VER", dest = "hdr_ver", type = int, - default = 0, choices = DATAMSG.KNOWN_VERSIONS, + default = 0, choices = Msg.KNOWN_VERSIONS, help = "TRXD header version (default %(default)s)") bg_group.add_argument("-f", "--frame-number", metavar = "FN", dest = "tdma_fn", type = int, diff --git a/src/target/trx_toolkit/burst_send.py b/src/target/trx_toolkit/burst_send.py index 717414d..4e16571 100755 --- a/src/target/trx_toolkit/burst_send.py +++ b/src/target/trx_toolkit/burst_send.py @@ -79,11 +79,10 @@ def msg_pass_filter(self, msg): # Direction filter - l12trx = self.argv.conn_mode == "TRX" - if isinstance(msg, DATAMSG_L12TRX) and not l12trx: - return False - elif isinstance(msg, DATAMSG_TRX2L1) and l12trx: - return False + if isinstance(msg, RxMsg) and self.argv.conn_mode == "TRX": + return False # cannot send RxMsg to TRX + if isinstance(msg, TxMsg) and self.argv.conn_mode == "L1": + return False # cannot send TxMsg to L1 # Timeslot filter if self.argv.pf_tn is not None: diff --git a/src/target/trx_toolkit/ctrl_if_trx.py b/src/target/trx_toolkit/ctrl_if_trx.py index ea08e7e..5034b75 100644 --- a/src/target/trx_toolkit/ctrl_if_trx.py +++ b/src/target/trx_toolkit/ctrl_if_trx.py @@ -25,7 +25,7 @@ import logging as log from ctrl_if import CTRLInterface -from data_msg import DATAMSG +from data_msg import Msg class CTRLInterfaceTRX(CTRLInterface): """ CTRL interface handler for common transceiver management commands. @@ -222,7 +222,7 @@ # ... and store current for logging ver_cur = self.trx.data_if._hdr_ver - if ver_req < 0 or ver_req > DATAMSG.CHDR_VERSION_MAX: + if ver_req < 0 or ver_req > Msg.CHDR_VERSION_MAX: log.error("(%s) Incorrect TRXD header version %u" % (self.trx, ver_req)) return -1 diff --git a/src/target/trx_toolkit/data_dump.py b/src/target/trx_toolkit/data_dump.py index 9a68556..8510e2d 100644 --- a/src/target/trx_toolkit/data_dump.py +++ b/src/target/trx_toolkit/data_dump.py @@ -28,18 +28,18 @@ class DATADump: # Constants - TAG_L12TRX = b'\x01' - TAG_TRX2L1 = b'\x02' + TAG_TxMsg = b'\x01' + TAG_RxMsg = b'\x02' HDR_LENGTH = 3 # Generates raw bytes from a DATA message # Return value: raw message bytes def dump_msg(self, msg): # Determine a message type - if isinstance(msg, DATAMSG_L12TRX): - tag = self.TAG_L12TRX - elif isinstance(msg, DATAMSG_TRX2L1): - tag = self.TAG_TRX2L1 + if isinstance(msg, TxMsg): + tag = self.TAG_TxMsg + elif isinstance(msg, RxMsg): + tag = self.TAG_RxMsg else: raise ValueError("Unknown message type") @@ -61,12 +61,10 @@ tag = hdr[:1] # Check if tag is known - if tag == self.TAG_L12TRX: - # L1 -> TRX - msg = DATAMSG_L12TRX() - elif tag == self.TAG_TRX2L1: - # TRX -> L1 - msg = DATAMSG_TRX2L1() + if tag == self.TAG_TxMsg: + msg = TxMsg() + elif tag == self.TAG_RxMsg: + msg = RxMsg() else: # Unknown tag return False diff --git a/src/target/trx_toolkit/data_if.py b/src/target/trx_toolkit/data_if.py index 07f3d32..1cded9b 100644 --- a/src/target/trx_toolkit/data_if.py +++ b/src/target/trx_toolkit/data_if.py @@ -35,7 +35,7 @@ log.debug("Init TRXD interface (%s)" % self.desc_link()) def set_hdr_ver(self, ver): - if not ver in DATAMSG.KNOWN_VERSIONS: + if not ver in Msg.KNOWN_VERSIONS: return False self._hdr_ver = ver @@ -43,7 +43,7 @@ def pick_hdr_ver(self, ver_req): # Pick a version that is lower or equal to ver_req - for ver in DATAMSG.KNOWN_VERSIONS[::-1]: + for ver in Msg.KNOWN_VERSIONS[::-1]: if ver <= ver_req: return ver @@ -64,16 +64,16 @@ data, _ = self.sock.recvfrom(512) return data - def recv_l12trx_msg(self): + def recv_tx_msg(self): # Read raw data from socket data = self.recv_raw_data() - # Attempt to parse as a L12TRX message + # Attempt to parse a TRXD Tx message try: - msg = DATAMSG_L12TRX() + msg = TxMsg() msg.parse_msg(bytearray(data)) except: - log.error("Failed to parse a L12TRX message " + log.error("Failed to parse a TRXD Tx message " "from R:%s:%u" % (self.remote_addr, self.remote_port)) return None @@ -84,16 +84,16 @@ return msg - def recv_trx2l1_msg(self): + def recv_rx_msg(self): # Read raw data from socket data = self.recv_raw_data() - # Attempt to parse as a L12TRX message + # Attempt to parse a TRXD Rx message try: - msg = DATAMSG_TRX2L1() + msg = RxMsg() msg.parse_msg(bytearray(data)) except: - log.error("Failed to parse a TRX2L1 message " + log.error("Failed to parse a TRXD Rx message " "from R:%s:%u" % (self.remote_addr, self.remote_port)) return None @@ -106,10 +106,10 @@ def send_msg(self, msg, legacy = False): try: - # Validate and encode TRXD message + # Validate and encode a TRXD message payload = msg.gen_msg(legacy) except ValueError as e: - log.error("Failed to encode a TRX2L1 message ('%s') " + log.error("Failed to encode a TRXD message ('%s') " "due to error: %s" % (msg.desc_hdr(), e)) # TODO: we may want to send a NOPE.ind here return diff --git a/src/target/trx_toolkit/data_msg.py b/src/target/trx_toolkit/data_msg.py index c62db35..7e785f9 100644 --- a/src/target/trx_toolkit/data_msg.py +++ b/src/target/trx_toolkit/data_msg.py @@ -59,7 +59,7 @@ return mod return None -class DATAMSG(abc.ABC): +class Msg(abc.ABC): ''' TRXD (DATA) message coding API (common part). ''' # NOTE: up to 16 versions can be encoded @@ -228,8 +228,8 @@ else: self.burst = None -class DATAMSG_L12TRX(DATAMSG): - ''' L12TRX (L1 -> TRX) message coding API. ''' +class TxMsg(Msg): + ''' Tx (L1 -> TRX) message coding API. ''' # Constants PWR_MIN = 0x00 @@ -257,7 +257,7 @@ ''' Validate the message fields (throws ValueError). ''' # Validate common fields - DATAMSG.validate(self) + Msg.validate(self) if self.pwr is None: raise ValueError("Tx Attenuation level is not set") @@ -287,14 +287,14 @@ def rand_hdr(self): ''' Randomize message specific header. ''' - DATAMSG.rand_hdr(self) + Msg.rand_hdr(self) self.pwr = self.rand_pwr() def desc_hdr(self): ''' Generate human-readable header description. ''' # Describe the common part - result = DATAMSG.desc_hdr(self) + result = Msg.desc_hdr(self) if self.pwr is not None: result += ("pwr=%u " % self.pwr) @@ -340,11 +340,11 @@ ''' Generate a random message specific burst. ''' self.burst = [random.randint(0, 1) for _ in range(length)] - def gen_trx2l1(self, ver = None): - ''' Transform this message to TRX2L1 message. ''' + def trans(self, ver = None): + ''' Transform this message into RxMsg. ''' # Allocate a new message - msg = DATAMSG_TRX2L1(fn = self.fn, tn = self.tn, + msg = RxMsg(fn = self.fn, tn = self.tn, ver = self.ver if ver is None else ver) # Convert burst bits @@ -355,8 +355,8 @@ return msg -class DATAMSG_TRX2L1(DATAMSG): - ''' TRX2L1 (TRX -> L1) message coding API. ''' +class RxMsg(Msg): + ''' Rx (TRX -> L1) message coding API. ''' # rxlev2dbm(0..63) gives us [-110..-47], plus -10 dbm for noise RSSI_MIN = -120 @@ -442,7 +442,7 @@ ''' Validate the message header fields (throws ValueError). ''' # Validate common fields - DATAMSG.validate(self) + Msg.validate(self) if self.rssi is None: raise ValueError("RSSI is not set") @@ -512,7 +512,7 @@ def rand_hdr(self): ''' Randomize message specific header. ''' - DATAMSG.rand_hdr(self) + Msg.rand_hdr(self) self.rssi = self.rand_rssi() self.toa256 = self.rand_toa256() @@ -531,7 +531,7 @@ ''' Generate human-readable header description. ''' # Describe the common part - result = DATAMSG.desc_hdr(self) + result = Msg.desc_hdr(self) if self.rssi is not None: result += ("rssi=%d " % self.rssi) @@ -679,11 +679,11 @@ self.burst = [random.randint(-127, 127) for _ in range(length)] - def gen_l12trx(self, ver = None): - ''' Transform this message to L12TRX message. ''' + def trans(self, ver = None): + ''' Transform this message to TxMsg. ''' # Allocate a new message - msg = DATAMSG_L12TRX(fn = self.fn, tn = self.tn, + msg = TxMsg(fn = self.fn, tn = self.tn, ver = self.ver if ver is None else ver) # Convert burst bits diff --git a/src/target/trx_toolkit/fake_trx.py b/src/target/trx_toolkit/fake_trx.py index 6f46473..573527b 100755 --- a/src/target/trx_toolkit/fake_trx.py +++ b/src/target/trx_toolkit/fake_trx.py @@ -213,7 +213,7 @@ msg.tsc_set = 0 msg.tsc = 0 - # Takes (partially initialized) TRX2L1 message, + # Takes (partially initialized) TRXD Rx message, # simulates RF path parameters (such as RSSI), # and sends towards the L1 def handle_data_msg(self, src_trx, src_msg, msg): diff --git a/src/target/trx_toolkit/test_data_dump.py b/src/target/trx_toolkit/test_data_dump.py index 9cd9b79..f7b4fde 100644 --- a/src/target/trx_toolkit/test_data_dump.py +++ b/src/target/trx_toolkit/test_data_dump.py @@ -50,12 +50,12 @@ # Burst bits (if present) self.assertEqual(a.burst, b.burst) - # TRX2L1 specific fields - if isinstance(a, DATAMSG_L12TRX): + # TxMsg specific fields + if isinstance(a, TxMsg): self.assertEqual(a.pwr, b.pwr) - # L12TRX specific fields - if isinstance(a, DATAMSG_TRX2L1): + # RxMsg specific fields + if isinstance(a, RxMsg): # Version independent fields self.assertEqual(a.toa256, b.toa256) self.assertEqual(a.rssi, b.rssi) @@ -88,8 +88,8 @@ # Generate a mixed list of random messages def _gen_rand_message_mix(self, count, ver = 1): msg_list = [] - msg_list += self._gen_rand_messages(DATAMSG_TRX2L1, count) - msg_list += self._gen_rand_messages(DATAMSG_L12TRX, count) + msg_list += self._gen_rand_messages(RxMsg, count) + msg_list += self._gen_rand_messages(TxMsg, count) random.shuffle(msg_list) return msg_list @@ -100,15 +100,15 @@ msg = self._ddf.parse_msg(0) self._compare_msg(msg, msg_ref) - # Store one TRX2L1 message in a file, read it back and compare - def test_store_and_parse_trx2l1(self): - self._test_store_and_parse(DATAMSG_TRX2L1) + # Store one Rx message in a file, read it back and compare + def test_store_and_parse_rx_msg(self): + self._test_store_and_parse(RxMsg) - # Store one L12TRX message in a file, read it back and compare - def test_store_and_parse_l12trx(self): - self._test_store_and_parse(DATAMSG_L12TRX) + # Store one Tx message in a file, read it back and compare + def test_store_and_parse_tx_msg(self): + self._test_store_and_parse(TxMsg) - # Store multiple TRX2L1/L12TRX messages in a file, read them back and compare + # Store multiple Rx/Tx messages in a file, read them back and compare def test_store_and_parse_all(self): # Store a mixed list of random messages (19 + 19) msg_list_ref = self._gen_rand_message_mix(19) @@ -143,7 +143,7 @@ def test_parse_len_overflow(self): # Write a malformed message directly - self._tf.write(DATADump.TAG_L12TRX) + self._tf.write(DATADump.TAG_TxMsg) self._tf.write(b'\x00\x63') # 99 self._tf.write(b'\xff' * 90) diff --git a/src/target/trx_toolkit/test_data_msg.py b/src/target/trx_toolkit/test_data_msg.py index 991dd25..24fda67 100644 --- a/src/target/trx_toolkit/test_data_msg.py +++ b/src/target/trx_toolkit/test_data_msg.py @@ -24,9 +24,9 @@ import unittest -from data_msg import DATAMSG, DATAMSG_L12TRX, DATAMSG_TRX2L1 +from data_msg import Msg, TxMsg, RxMsg -class DATAMSG_Test(unittest.TestCase): +class Msg_Test(unittest.TestCase): # Compare message a with message b def _compare_msg(self, a, b): # Make sure we're comparing messages of the same type @@ -40,12 +40,12 @@ # Burst bits (if present) self.assertEqual(a.burst, b.burst) - # TRX2L1 specific fields - if isinstance(a, DATAMSG_L12TRX): + # TxMsg specific fields + if isinstance(a, TxMsg): self.assertEqual(a.pwr, b.pwr) - # L12TRX specific fields - if isinstance(a, DATAMSG_TRX2L1): + # RxMsg specific fields + if isinstance(a, RxMsg): # Version independent fields self.assertEqual(a.toa256, b.toa256) self.assertEqual(a.rssi, b.rssi) @@ -62,38 +62,38 @@ def test_validate(self): # Unknown version with self.assertRaises(ValueError): - msg = DATAMSG_TRX2L1(fn = 0, tn = 0, ver = 100) + msg = RxMsg(fn = 0, tn = 0, ver = 100) msg.validate() # Uninitialized field with self.assertRaises(ValueError): - msg = DATAMSG_TRX2L1() + msg = RxMsg() msg.validate() with self.assertRaises(ValueError): - msg = DATAMSG_TRX2L1(fn = None, tn = 0) + msg = RxMsg(fn = None, tn = 0) msg.validate() # Out-of-range value(s) with self.assertRaises(ValueError): - msg = DATAMSG_TRX2L1(fn = -1, tn = 0) + msg = RxMsg(fn = -1, tn = 0) msg.validate() with self.assertRaises(ValueError): - msg = DATAMSG_TRX2L1(fn = 0, tn = 10) + msg = RxMsg(fn = 0, tn = 10) msg.validate() # Validate header and burst randomization def test_rand_hdr_burst(self): - msg_l12trx = DATAMSG_L12TRX() - msg_trx2l1 = DATAMSG_TRX2L1() + tx_msg = TxMsg() + rx_msg = RxMsg() for i in range(100): - msg_l12trx.rand_burst() - msg_trx2l1.rand_burst() - msg_l12trx.rand_hdr() - msg_trx2l1.rand_hdr() + tx_msg.rand_burst() + rx_msg.rand_burst() + tx_msg.rand_hdr() + rx_msg.rand_hdr() - msg_l12trx.validate() - msg_trx2l1.validate() + tx_msg.validate() + rx_msg.validate() def _test_enc_dec(self, msg, legacy = False, nope_ind = False): # Prepare a given message (randomize) @@ -120,22 +120,22 @@ # Validate encoding and decoding def test_enc_dec(self): - for ver in DATAMSG.KNOWN_VERSIONS: - with self.subTest("L1 -> TRX message", ver = ver): - msg = DATAMSG_L12TRX(ver = ver) + for ver in Msg.KNOWN_VERSIONS: + with self.subTest("TxMsg", ver = ver): + msg = TxMsg(ver = ver) self._test_enc_dec(msg) - with self.subTest("TRX -> L1 message", ver = ver): - msg = DATAMSG_TRX2L1(ver = ver) + with self.subTest("RxMsg", ver = ver): + msg = RxMsg(ver = ver) self._test_enc_dec(msg) if ver >= 1: - with self.subTest("TRX -> L1 NOPE.ind", ver = ver): - msg = DATAMSG_TRX2L1(ver = ver) + with self.subTest("RxMsg NOPE.ind", ver = ver): + msg = RxMsg(ver = ver) self._test_enc_dec(msg, nope_ind = True) - with self.subTest("TRX -> L1 message (legacy)"): - msg = DATAMSG_TRX2L1(ver = 0) + with self.subTest("RxMsg (legacy transceiver)"): + msg = RxMsg(ver = 0) self._test_enc_dec(msg, legacy = True) # Validate bit conversations @@ -144,16 +144,16 @@ sbits_ref = list(range(-127, 128)) # Test both usbit2sbit() and sbit2usbit() - sbits = DATAMSG.usbit2sbit(usbits_ref) - usbits = DATAMSG.sbit2usbit(sbits) + sbits = Msg.usbit2sbit(usbits_ref) + usbits = Msg.sbit2usbit(sbits) self.assertEqual(usbits[:255], usbits_ref[:255]) self.assertEqual(usbits[255], 254) # Test both sbit2ubit() and ubit2sbit() - ubits = DATAMSG.sbit2ubit(sbits_ref) + ubits = Msg.sbit2ubit(sbits_ref) self.assertEqual(ubits, ([1] * 127 + [0] * 128)) - sbits = DATAMSG.ubit2sbit(ubits) + sbits = Msg.ubit2sbit(ubits) self.assertEqual(sbits, ([-127] * 127 + [127] * 128)) def _test_transform(self, msg): @@ -162,31 +162,31 @@ msg.rand_burst() # Perform message transformation - if isinstance(msg, DATAMSG_L12TRX): - msg_trans = msg.gen_trx2l1() + if isinstance(msg, TxMsg): + msg_trans = msg.trans() else: - msg_trans = msg.gen_l12trx() + msg_trans = msg.trans() self.assertEqual(msg_trans.ver, msg.ver) self.assertEqual(msg_trans.fn, msg.fn) self.assertEqual(msg_trans.tn, msg.tn) - if isinstance(msg, DATAMSG_TRX2L1): - burst = DATAMSG.sbit2ubit(msg.burst) + if isinstance(msg, RxMsg): + burst = Msg.sbit2ubit(msg.burst) self.assertEqual(msg_trans.burst, burst) else: - burst = DATAMSG.ubit2sbit(msg.burst) + burst = Msg.ubit2sbit(msg.burst) self.assertEqual(msg_trans.burst, burst) # Validate message transformation def test_transform(self): - for ver in DATAMSG.KNOWN_VERSIONS: - with self.subTest("L1 -> TRX message", ver = ver): - msg = DATAMSG_L12TRX(ver = ver) + for ver in Msg.KNOWN_VERSIONS: + with self.subTest("TxMsg", ver = ver): + msg = TxMsg(ver = ver) self._test_transform(msg) - with self.subTest("TRX -> L1 message", ver = ver): - msg = DATAMSG_TRX2L1(ver = ver) + with self.subTest("RxMsg", ver = ver): + msg = RxMsg(ver = ver) self._test_transform(msg) if __name__ == '__main__': diff --git a/src/target/trx_toolkit/transceiver.py b/src/target/trx_toolkit/transceiver.py index 19b998e..d041070 100644 --- a/src/target/trx_toolkit/transceiver.py +++ b/src/target/trx_toolkit/transceiver.py @@ -258,7 +258,7 @@ def recv_data_msg(self): # Read and parse data from socket - msg = self.data_if.recv_l12trx_msg() + msg = self.data_if.recv_tx_msg() if not msg: return None diff --git a/src/target/trx_toolkit/trx_sniff.py b/src/target/trx_toolkit/trx_sniff.py index 0cb62d3..8b6f80c 100755 --- a/src/target/trx_toolkit/trx_sniff.py +++ b/src/target/trx_toolkit/trx_sniff.py @@ -101,10 +101,10 @@ msg_raw = bytearray(trx.load) # Determine a burst direction (L1 <-> TRX) - l12trx = udp.sport > udp.dport + tx_dir = udp.sport > udp.dport # Create an empty DATA message - msg = DATAMSG_L12TRX() if l12trx else DATAMSG_TRX2L1() + msg = TxMsg() if tx_dir else RxMsg() # Attempt to parse the payload as a DATA message try: @@ -124,8 +124,7 @@ return # Debug print - log.debug("%s burst: %s" \ - % ("L1 -> TRX" if l12trx else "TRX -> L1", msg.desc_hdr())) + log.debug("%s burst: %s", "L1 -> TRX" if tx_dir else "TRX -> L1", msg.desc_hdr()) # Poke message handler self.msg_handle(msg) @@ -139,10 +138,10 @@ # Direction filter if self.argv.direction is not None: if self.argv.direction == "TRX": # L1 -> TRX - if not isinstance(msg, DATAMSG_L12TRX): + if not isinstance(msg, TxMsg): return False elif self.argv.direction == "L1": # TRX -> L1 - if not isinstance(msg, DATAMSG_TRX2L1): + if not isinstance(msg, RxMsg): return False # Timeslot filter @@ -159,7 +158,7 @@ return False # Message type specific filtering - if isinstance(msg, DATAMSG_TRX2L1): + if isinstance(msg, RxMsg): # NOPE.ind filter if not self.argv.pf_nope_ind and msg.nope_ind: return False -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/24018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I688f24a3c09dd7e1cc00b5530ec26c8e8cfd8f7c Gerrit-Change-Number: 24018 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 Apr 30 20:34:10 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:34:10 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_msg.py: migrate to codec.py and trxd_proto.py References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/24019 ) Change subject: trx_toolkit/data_msg.py: migrate to codec.py and trxd_proto.py ...................................................................... trx_toolkit/data_msg.py: migrate to codec.py and trxd_proto.py Change-Id: I21329419bff0b94a14b42b79fcdb460a662ad4bc Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/burst_fwd.py M src/target/trx_toolkit/data_dump.py M src/target/trx_toolkit/data_if.py M src/target/trx_toolkit/data_msg.py M src/target/trx_toolkit/fake_trx.py M src/target/trx_toolkit/test_data_dump.py M src/target/trx_toolkit/test_data_msg.py M src/target/trx_toolkit/transceiver.py M src/target/trx_toolkit/trx_sniff.py 9 files changed, 283 insertions(+), 672 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/19/24019/1 diff --git a/src/target/trx_toolkit/burst_fwd.py b/src/target/trx_toolkit/burst_fwd.py index 2e9e97b..03ce6e6 100644 --- a/src/target/trx_toolkit/burst_fwd.py +++ b/src/target/trx_toolkit/burst_fwd.py @@ -3,7 +3,7 @@ # TRX Toolkit # Burst forwarding between transceivers # -# (C) 2017-2020 by Vadim Yanitskiy +# (C) 2017-2021 by Vadim Yanitskiy # Contributions by sysmocom - s.f.m.c. GmbH # # All Rights Reserved @@ -25,6 +25,7 @@ import logging as log from trx_list import TRXList +from data_msg import RxMsg class BurstForwarder(TRXList): """ Performs burst forwarding between transceivers. @@ -48,11 +49,11 @@ def forward_msg(self, src_trx, rx_msg): # Originating Transceiver may use frequency hopping, # so let's precalculate its Tx frequency in advance - tx_freq = src_trx.get_tx_freq(rx_msg.fn) + tx_freq = src_trx.get_tx_freq(rx_msg.c['fn']) if src_trx.rf_muted: - del rx_msg.burst # burst bits are omited - rx_msg.burst = None + # Burst bits are omited + rx_msg.c['burst'].clear() # Iterate over all known transceivers for trx in self.trx_list: @@ -62,13 +63,13 @@ # Check transceiver state if not trx.running: continue - if rx_msg.tn not in trx.ts_list: + if rx_msg.c['tn'] not in trx.ts_list: continue # Match Tx/Rx frequencies of the both transceivers - if trx.get_rx_freq(rx_msg.fn) != tx_freq: + if trx.get_rx_freq(rx_msg.c['fn']) != tx_freq: continue - # Transform from TxMsg to RxMsg and forward - tx_msg = rx_msg.trans(ver = trx.data_if._hdr_ver) + # Transform from L12TRX to TRX2L1 and forward + tx_msg = rx_msg.trans(RxMsg, trx.data_if._hdr_ver) trx.handle_data_msg(src_trx, rx_msg, tx_msg) diff --git a/src/target/trx_toolkit/data_dump.py b/src/target/trx_toolkit/data_dump.py index 8510e2d..fe8a2d8 100644 --- a/src/target/trx_toolkit/data_dump.py +++ b/src/target/trx_toolkit/data_dump.py @@ -44,7 +44,7 @@ raise ValueError("Unknown message type") # Generate a message payload - msg_raw = msg.gen_msg() + msg_raw = msg.to_bytes() # Calculate and pack the message length msg_len = len(msg_raw) @@ -118,7 +118,7 @@ # a parsed message in case of success, # or None in case of EOF or header parsing error, # or False in case of message parsing error. - def _parse_msg(self): + def _from_bytes(self): # Attempt to read a message header hdr_raw = self.f.read(self.HDR_LENGTH) if len(hdr_raw) != self.HDR_LENGTH: @@ -142,7 +142,7 @@ # Attempt to parse a message try: msg_raw = bytearray(msg_raw) - msg.parse_msg(msg_raw) + msg.from_bytes(msg_raw) except: log.error("Couldn't parse a message, skipping...") return False @@ -155,7 +155,7 @@ # a parsed message in case of success, # or None in case of EOF, out of range, or header parsing error, # or False in case of message parsing error. - def parse_msg(self, idx): + def from_bytes(self, idx): # Move descriptor to the beginning of requested message rc = self._seek2msg(idx) if not rc: @@ -163,7 +163,7 @@ return None # Attempt to parse a message - return self._parse_msg() + return self._from_bytes() # Parses all messages from a given file # Return value: @@ -185,7 +185,7 @@ # Read the capture in loop... while True: # Attempt to parse a message - msg = self._parse_msg() + msg = self._from_bytes() # EOF or broken header if msg is None: diff --git a/src/target/trx_toolkit/data_if.py b/src/target/trx_toolkit/data_if.py index 1cded9b..f754c6c 100644 --- a/src/target/trx_toolkit/data_if.py +++ b/src/target/trx_toolkit/data_if.py @@ -23,6 +23,8 @@ import logging as log +from typing import Optional + from udp_link import UDPLink from data_msg import * @@ -50,64 +52,43 @@ # No suitable version found return -1 - def match_hdr_ver(self, msg): - if msg.ver == self._hdr_ver: - return True - - log.error("(%s) Rx DATA message (%s) with unexpected header " - "version %u (!= expected %u), ignoring..." - % (self.desc_link(), msg.desc_hdr(), - msg.ver, self._hdr_ver)) - return False - - def recv_raw_data(self): + def recv_raw_data(self) -> bytes: data, _ = self.sock.recvfrom(512) return data - def recv_tx_msg(self): + def recv_tx_msg(self) -> Optional[TxMsg]: # Read raw data from socket data = self.recv_raw_data() # Attempt to parse a TRXD Tx message try: - msg = TxMsg() - msg.parse_msg(bytearray(data)) + msg = TxMsg(self._hdr_ver) + msg.from_bytes(data) except: log.error("Failed to parse a TRXD Tx message " "from R:%s:%u" % (self.remote_addr, self.remote_port)) return None - # Make sure the header version matches - # the configured one (self._hdr_ver) - if not self.match_hdr_ver(msg): - return None - return msg - def recv_rx_msg(self): + def recv_rx_msg(self) -> Optional[RxMsg]: # Read raw data from socket data = self.recv_raw_data() # Attempt to parse a TRXD Rx message try: - msg = RxMsg() - msg.parse_msg(bytearray(data)) + msg = RxMsg(self._hdr_ver) + msg.from_bytes(data) except: log.error("Failed to parse a TRXD Rx message " "from R:%s:%u" % (self.remote_addr, self.remote_port)) return None - # Make sure the header version matches - # the configured one (self._hdr_ver) - if not self.match_hdr_ver(msg): - return None - return msg - def send_msg(self, msg, legacy = False): + def send_msg(self, msg: RxMsg) -> None: try: - # Validate and encode a TRXD message - payload = msg.gen_msg(legacy) + payload = msg.to_bytes() except ValueError as e: log.error("Failed to encode a TRXD message ('%s') " "due to error: %s" % (msg.desc_hdr(), e)) diff --git a/src/target/trx_toolkit/data_msg.py b/src/target/trx_toolkit/data_msg.py index 7e785f9..570cfa0 100644 --- a/src/target/trx_toolkit/data_msg.py +++ b/src/target/trx_toolkit/data_msg.py @@ -3,7 +3,8 @@ # TRX Toolkit # DATA interface message definitions and helpers # -# (C) 2018-2019 by Vadim Yanitskiy +# (C) 2018-2021 by Vadim Yanitskiy +# (C) 2021 by sysmocom - s.f.m.c. GmbH # # All Rights Reserved # @@ -25,35 +26,39 @@ import struct import abc -from typing import List +from typing import Any, Type, List, Tuple, Dict from enum import Enum from gsm_shared import * +import trxd_proto +import codec + class Modulation(Enum): """ Modulation types defined in 3GPP TS 45.002 """ - ModGMSK = (0b0000, 1 * GMSK_BURST_LEN) - Mod8PSK = (0b0100, 3 * GMSK_BURST_LEN) - ModGMSK_AB = (0b0110, 1 * GMSK_BURST_LEN) - ModRFU = (0b0111, 0) # Reserved for Future Use - Mod16QAM = (0b1000, 4 * GMSK_BURST_LEN) - Mod32QAM = (0b1010, 5 * GMSK_BURST_LEN) - ModAQPSK = (0b1100, 2 * GMSK_BURST_LEN) + ModGMSK = (0b0000, 0b1100, 1 * GMSK_BURST_LEN) + Mod8PSK = (0b0100, 0b1110, 3 * GMSK_BURST_LEN) + ModGMSK_AB = (0b0110, 0b1111, 1 * GMSK_BURST_LEN) + ModRFU = (0b0111, 0b1111, 0) # Reserved for Future Use + Mod16QAM = (0b1000, 0b1110, 4 * GMSK_BURST_LEN) + Mod32QAM = (0b1010, 0b1110, 5 * GMSK_BURST_LEN) + ModAQPSK = (0b1100, 0b1100, 2 * GMSK_BURST_LEN) - def __init__(self, coding, bl): + def __init__(self, val: int, mask: int, bl: int): # Coding in TRXD header - self.coding = coding + self.val = val + self.mask = mask # Burst length self.bl = bl @classmethod - def pick(self, coding): + def pick(self, val: int): for mod in list(self): - if mod.coding == coding: + if (val & mod.mask) == mod.val: return mod return None @classmethod - def pick_by_bl(self, bl): + def pick_by_bl(self, bl: int): for mod in list(self): if mod.bl == bl: return mod @@ -66,66 +71,87 @@ CHDR_VERSION_MAX = 0b1111 KNOWN_VERSIONS = (0, 1) - def __init__(self, fn = None, tn = None, burst = None, ver = 0): - self.burst = burst - self.ver = ver - self.fn = fn - self.tn = tn + # PDU codecs for all known versions + CODECS = NotImplemented # type: Tuple[codec.Envelope, ...] - @property - def CHDR_LEN(self): - ''' The common header length. ''' - return 1 + 4 # (VER + TN) + FN + # Default PDU content for child types + DEF_CONT = NotImplemented # type: Dict[str, Any] + + def __init__(self, ver: int, cont: Dict[str, Any] = { }): + # TRXD PDU version + if not ver in self.KNOWN_VERSIONS: + raise ValueError("Unknown TRXD PDU version %d" % ver) + self._ver = ver + + # TRXD PDU codec + self.codec = self.CODECS[ver] + + # Content of the message + self.c = { + # Default TDMA frame/timeslot number + 'fn' : 0, + 'tn' : 0, + # NOPE / IDLE frame indication + 'nope' : False, + # Modulation type and TSC info + 'mod_type' : Modulation.ModGMSK, + 'tsc_set' : 0, + 'tsc' : 0, + # Burst hard-/soft-bits + 'burst' : [], + # Default fields for particular class + **self.DEF_CONT, + # Fields provided during instantiation + **cont + } # type: Dict[str, Any] + + def __getitem__(self, key: str) -> Any: + return self.c[key] + + def __setitem__(self, key: str, val: Any) -> None: + self.c[key] = val + + def __delitem__(self, key: str) -> None: + del self.c[key] @abc.abstractmethod - def gen_hdr(self): - ''' Generate message specific header. ''' - - @abc.abstractmethod - def parse_hdr(self, hdr): - ''' Parse message specific header. ''' - - @abc.abstractmethod - def gen_burst(self): + def gen_burst(self) -> None: ''' Generate message specific burst. ''' @abc.abstractmethod - def parse_burst(self, burst): + def parse_burst(self) -> None: ''' Parse message specific burst. ''' @abc.abstractmethod - def rand_burst(self): + def rand_burst(self) -> None: ''' Generate a random message specific burst. ''' - def rand_fn(self): + @abc.abstractmethod + def trans_burst(self) -> List[int]: + ''' Convert between hard-bits and soft-bits. ''' + + def rand_fn(self) -> int: ''' Generate a random frame number. ''' return random.randint(0, GSM_HYPERFRAME) - def rand_tn(self): + def rand_tn(self) -> int: ''' Generate a random timeslot number. ''' return random.randint(0, 7) - def rand_hdr(self): + def rand_hdr(self) -> None: ''' Randomize the message header. ''' - self.fn = self.rand_fn() - self.tn = self.rand_tn() + self.c['fn'] = self.rand_fn() + self.c['tn'] = self.rand_tn() - def desc_hdr(self): + def desc_hdr(self) -> str: ''' Generate human-readable header description. ''' result = "" - if self.ver > 0: - result += ("ver=%u " % self.ver) - - if self.fn is not None: - result += ("fn=%u " % self.fn) - - if self.tn is not None: - result += ("tn=%u " % self.tn) - - if self.burst is not None and len(self.burst) > 0: - result += ("bl=%u " % len(self.burst)) + result += ("ver=%u " % self._ver) + result += ("fn=%u tn=%u " % (self.c['fn'], self.c['tn'])) + if self.c['burst']: + result += ("bl=%u " % len(self.c['burst'])) return result @@ -149,131 +175,76 @@ ''' Convert bits {1..0} to soft-bits {-127..127}. ''' return [-127 if b else 127 for b in bits] - def validate(self): + def validate(self) -> None: ''' Validate the message fields (throws ValueError). ''' - if not self.ver in self.KNOWN_VERSIONS: - raise ValueError("Unknown TRXD header version %d" % self.ver) + if self.c['fn'] < 0 or self.c['fn'] > GSM_HYPERFRAME: + raise ValueError("TDMA frame-number %d is out of range" % self.c['fn']) - if self.fn is None: - raise ValueError("TDMA frame-number is not set") + if self.c['tn'] < 0 or self.c['tn'] > 7: + raise ValueError("TDMA time-slot %d is out of range" % self.c['tn']) - if self.fn < 0 or self.fn > GSM_HYPERFRAME: - raise ValueError("TDMA frame-number %d is out of range" % self.fn) - - if self.tn is None: - raise ValueError("TDMA time-slot is not set") - - if self.tn < 0 or self.tn > 7: - raise ValueError("TDMA time-slot %d is out of range" % self.tn) - - def gen_msg(self, legacy = False): + def to_bytes(self) -> bytes: ''' Generate a TRX DATA message. ''' + if not self.c['nope']: + self.gen_burst() + return self.codec._to_bytes(self.c) - # Validate all the fields - self.validate() - - # Allocate an empty byte-array - buf = bytearray() - - # Put version (4 bits) and TDMA TN (3 bits) - buf.append((self.ver << 4) | (self.tn & 0x07)) - - # Put TDMA FN (4 octets, BE) - buf += struct.pack(">L", self.fn) - - # Generate message specific header part - hdr = self.gen_hdr() - buf += hdr - - # Generate burst - if self.burst is not None: - buf += self.gen_burst() - - # This is a rudiment from (legacy) OpenBTS transceiver, - # some L1 implementations still expect two dummy bytes. - if legacy and self.ver == 0x00: - buf += bytearray(2) - - return buf - - def parse_msg(self, msg): + def from_bytes(self, msg: bytes) -> None: ''' Parse a TRX DATA message. ''' + self.codec._from_bytes(self.c, msg) + if not self.c['nope']: + self.parse_burst() - # Make sure we have at least common header - if len(msg) < self.CHDR_LEN: - raise ValueError("Message is to short: missing common header") + def trans(self, cls: Type['Msg'], ver: int) -> 'Msg': + ''' Transform between L12TRX and TRX2L1. ''' - # Parse the header version first - self.ver = (msg[0] >> 4) - if not self.ver in self.KNOWN_VERSIONS: - raise ValueError("Unknown TRXD header version %d" % self.ver) + # Allocate a new message + msg = cls(ver, { + 'fn' : self.c['fn'], + 'tn' : self.c['tn'], + }) - # Parse TDMA TN and FN - self.tn = (msg[0] & 0x07) - self.fn = struct.unpack(">L", msg[1:5])[0] - - # Make sure we have the whole header, - # including the version specific fields - if len(msg) < self.HDR_LEN: - raise ValueError("Message is to short: missing version specific header") - - # Specific message part - self.parse_hdr(msg) - - # Copy burst, skipping header - msg_burst = msg[self.HDR_LEN:] - if len(msg_burst) > 0: - self.parse_burst(msg_burst) + # Convert burst bits + if self.c['burst'] and not self.c['nope']: + msg.c['burst'] = self.trans_burst() else: - self.burst = None + msg.c['nope'] = True + + return msg class TxMsg(Msg): ''' Tx (L1 -> TRX) message coding API. ''' + # PDU codecs for all known versions + CODECS = ( + trxd_proto.PDUv0Tx(), + trxd_proto.PDUv1Tx(), + ) + + DEF_CONT = { + # Power reduction (in dB) + 'pwr' : 0, + } + # Constants PWR_MIN = 0x00 PWR_MAX = 0xff - # Specific message fields - pwr = None - - @property - def HDR_LEN(self): - ''' Calculate header length depending on its version. ''' - - # Common header length - length = self.CHDR_LEN - - # Message specific header length - if self.ver in (0x00, 0x01): - length += 1 # PWR - else: - raise IndexError("Unhandled version %u" % self.ver) - - return length - - def validate(self): + def validate(self) -> None: ''' Validate the message fields (throws ValueError). ''' # Validate common fields Msg.validate(self) - if self.pwr is None: - raise ValueError("Tx Attenuation level is not set") - - if self.pwr < self.PWR_MIN or self.pwr > self.PWR_MAX: - raise ValueError("Tx Attenuation %d is out of range" % self.pwr) + if self.c['pwr'] < self.PWR_MIN or self.c['pwr'] > self.PWR_MAX: + raise ValueError("Tx Attenuation %d is out of range" % self.c['pwr']) # FIXME: properly handle IDLE / NOPE indications - if self.burst is None: - raise ValueError("Tx burst bits are not set") + if len(self.c['burst']) not in (GMSK_BURST_LEN, EDGE_BURST_LEN): + raise ValueError("Tx burst has odd length %u" % len(self.c['burst'])) - # FIXME: properly handle IDLE / NOPE indications - if len(self.burst) not in (GMSK_BURST_LEN, EDGE_BURST_LEN): - raise ValueError("Tx burst has odd length %u" % len(self.burst)) - - def rand_pwr(self, min = None, max = None): + def rand_pwr(self, min = None, max = None) -> int: ''' Generate a random power level. ''' if min is None: @@ -284,80 +255,55 @@ return random.randint(min, max) - def rand_hdr(self): + def rand_hdr(self) -> None: ''' Randomize message specific header. ''' Msg.rand_hdr(self) - self.pwr = self.rand_pwr() + self.c['pwr'] = self.rand_pwr() - def desc_hdr(self): + def desc_hdr(self) -> str: ''' Generate human-readable header description. ''' # Describe the common part result = Msg.desc_hdr(self) - if self.pwr is not None: - result += ("pwr=%u " % self.pwr) + result += ("pwr=%u " % self.c['pwr']) # Strip useless whitespace and return return result.strip() - def gen_hdr(self): - ''' Generate message specific header part. ''' - - # Allocate an empty byte-array - buf = bytearray() - - # Put power - buf.append(self.pwr) - - return buf - - def parse_hdr(self, hdr): - ''' Parse message specific header part. ''' - - # Parse power level - self.pwr = hdr[5] - - def gen_burst(self): + def gen_burst(self) -> None: ''' Generate message specific burst. ''' + self.c['hard-bits'] = bytes(self.c['burst']) - # Copy burst 'as is' - return bytearray(self.burst) - - def parse_burst(self, burst): + def parse_burst(self) -> None: ''' Parse message specific burst. ''' + self.c['burst'] = list(self.c['hard-bits']) - length = len(burst) - - # Distinguish between GSM and EDGE - if length >= EDGE_BURST_LEN: - self.burst = list(burst[:EDGE_BURST_LEN]) - else: - self.burst = list(burst[:GMSK_BURST_LEN]) - - def rand_burst(self, length = GMSK_BURST_LEN): + def rand_burst(self, length = GMSK_BURST_LEN) -> None: ''' Generate a random message specific burst. ''' - self.burst = [random.randint(0, 1) for _ in range(length)] + self.c['burst'] = [random.randint(0, 1) for _ in range(length)] - def trans(self, ver = None): - ''' Transform this message into RxMsg. ''' - - # Allocate a new message - msg = RxMsg(fn = self.fn, tn = self.tn, - ver = self.ver if ver is None else ver) - - # Convert burst bits - if self.burst is not None: - msg.burst = self.ubit2sbit(self.burst) - else: - msg.nope_ind = True - - return msg + def trans_burst(self) -> List[int]: + ''' Transform hard-bits into soft-bits. ''' + return self.ubit2sbit(self.c['burst']) class RxMsg(Msg): ''' Rx (TRX -> L1) message coding API. ''' + # PDU codecs for all known versions + CODECS = ( + trxd_proto.PDUv0Rx(), + trxd_proto.PDUv1Rx(), + ) + + DEF_CONT = { + # Specific message fields + 'rssi' : -50, + 'toa256' : 0, + 'cir' : 0, + } + # rxlev2dbm(0..63) gives us [-110..-47], plus -10 dbm for noise RSSI_MIN = -120 RSSI_MAX = -47 @@ -373,121 +319,39 @@ CI_MIN = -1280 CI_MAX = 1280 - # IDLE frame / nope detection indicator - NOPE_IND = (1 << 7) - - # Specific message fields - rssi = None - toa256 = None - - # Version 0x01 specific (default values) - mod_type = Modulation.ModGMSK - nope_ind = False - - tsc_set = None - tsc = None - ci = None - - @property - def HDR_LEN(self): - ''' Calculate header length depending on its version. ''' - - # Common header length - length = self.CHDR_LEN - - # Message specific header length - if self.ver == 0x00: - # RSSI + ToA - length += 1 + 2 - elif self.ver == 0x01: - # RSSI + ToA + TS + C/I - length += 1 + 2 + 1 + 2 - else: - raise IndexError("Unhandled version %u" % self.ver) - - return length - - def _validate_burst_v0(self): - # Burst is mandatory - if self.burst is None: - raise ValueError("Rx burst bits are not set") - - # ... and can be either of GSM (GMSK) or EDGE (8-PSK) - if len(self.burst) not in (GMSK_BURST_LEN, EDGE_BURST_LEN): - raise ValueError("Rx burst has odd length %u" % len(self.burst)) - - def _validate_burst_v1(self): - # Burst is omitted in case of an IDLE / NOPE indication - if self.nope_ind and self.burst is None: - return - - if self.nope_ind and self.burst is not None: - raise ValueError("NOPE.ind comes with burst?!?") - if self.burst is None: - raise ValueError("Rx burst bits are not set") - - # Burst length depends on modulation type - if len(self.burst) != self.mod_type.bl: - raise ValueError("Rx burst has odd length %u" % len(self.burst)) - - def validate_burst(self): - ''' Validate the burst (throws ValueError). ''' - - if self.ver == 0x00: - self._validate_burst_v0() - elif self.ver >= 0x01: - self._validate_burst_v1() - - def validate(self): + def validate(self) -> None: ''' Validate the message header fields (throws ValueError). ''' # Validate common fields Msg.validate(self) - if self.rssi is None: - raise ValueError("RSSI is not set") + if self.c['rssi'] < self.RSSI_MIN or self.c['rssi'] > self.RSSI_MAX: + raise ValueError("RSSI %d is out of range" % self.c['rssi']) - if self.rssi < self.RSSI_MIN or self.rssi > self.RSSI_MAX: - raise ValueError("RSSI %d is out of range" % self.rssi) - - if self.toa256 is None: - raise ValueError("ToA256 is not set") - - if self.toa256 < self.TOA256_MIN or self.toa256 > self.TOA256_MAX: - raise ValueError("ToA256 %d is out of range" % self.toa256) + if self.c['toa256'] < self.TOA256_MIN or self.c['toa256'] > self.TOA256_MAX: + raise ValueError("ToA256 %d is out of range" % self.c['toa256']) # Version specific parameters (omited for NOPE.ind) - if self.ver >= 0x01 and not self.nope_ind: - if type(self.mod_type) is not Modulation: + if self._ver >= 1 and not self.c['nope']: + if type(self.c['mod_type']) is not Modulation: raise ValueError("Unknown Rx modulation type") - if self.tsc_set is None: - raise ValueError("TSC set is not set") - - if self.mod_type is Modulation.ModGMSK: - if self.tsc_set not in range(0, 4): - raise ValueError("TSC set %d is out of range" % self.tsc_set) + if self.c['mod_type'] is Modulation.ModGMSK: + if self.c['tsc_set'] not in range(0, 4): + raise ValueError("TSC set %d is out of range" % self.c['tsc_set']) else: - if self.tsc_set not in range(0, 2): - raise ValueError("TSC set %d is out of range" % self.tsc_set) + if self.c['tsc_set'] not in range(0, 2): + raise ValueError("TSC set %d is out of range" % self.c['tsc_set']) - if self.tsc is None: - raise ValueError("TSC is not set") - - if self.tsc not in self.TSC_RANGE: - raise ValueError("TSC %d is out of range" % self.tsc) + if self.c['tsc'] not in self.TSC_RANGE: + raise ValueError("TSC %d is out of range" % self.c['tsc']) # Version specific parameters (also present in NOPE.ind) - if self.ver >= 0x01: - if self.ci is None: - raise ValueError("C/I is not set") + if self._ver >= 1: + if self.c['cir'] < self.CI_MIN or self.c['cir'] > self.CI_MAX: + raise ValueError("C/I %d is out of range" % self.c['cir']) - if self.ci < self.CI_MIN or self.ci > self.CI_MAX: - raise ValueError("C/I %d is out of range" % self.ci) - - self.validate_burst() - - def rand_rssi(self, min = None, max = None): + def rand_rssi(self, min = None, max = None) -> int: ''' Generate a random RSSI value. ''' if min is None: @@ -498,7 +362,7 @@ return random.randint(min, max) - def rand_toa256(self, min = None, max = None): + def rand_toa256(self, min = None, max = None) -> int: ''' Generate a random ToA (Time of Arrival) value. ''' if min is None: @@ -509,185 +373,88 @@ return random.randint(min, max) - def rand_hdr(self): + def rand_hdr(self, nope: bool = False) -> None: ''' Randomize message specific header. ''' Msg.rand_hdr(self) - self.rssi = self.rand_rssi() - self.toa256 = self.rand_toa256() + self.c['rssi'] = self.rand_rssi() + self.c['toa256'] = self.rand_toa256() + self.c['nope'] = nope - if self.ver >= 0x01: - self.mod_type = random.choice(list(Modulation)) - if self.mod_type is Modulation.ModGMSK: - self.tsc_set = random.randint(0, 3) + if self._ver >= 1 and not nope: + self.c['mod_type'] = random.choice(list(Modulation)) + if self.c['mod_type'] is Modulation.ModGMSK: + self.c['tsc_set'] = random.randint(0, 3) else: - self.tsc_set = random.randint(0, 1) - self.tsc = random.choice(self.TSC_RANGE) + self.c['tsc_set'] = random.randint(0, 1) + self.c['tsc'] = random.choice(self.TSC_RANGE) + if self._ver >= 1: # C/I: Carrier-to-Interference ratio - self.ci = random.randint(self.CI_MIN, self.CI_MAX) + self.c['cir'] = random.randint(self.CI_MIN, self.CI_MAX) - def desc_hdr(self): + def desc_hdr(self) -> str: ''' Generate human-readable header description. ''' # Describe the common part result = Msg.desc_hdr(self) - if self.rssi is not None: - result += ("rssi=%d " % self.rssi) + result += ("rssi=%d " % self.c['rssi']) + result += ("toa256=%d " % self.c['toa256']) - if self.toa256 is not None: - result += ("toa256=%d " % self.toa256) - - if self.ver >= 0x01: - if not self.nope_ind: - if self.mod_type is not None: - result += ("%s " % self.mod_type) - if self.tsc_set is not None: - result += ("set=%u " % self.tsc_set) - if self.tsc is not None: - result += ("tsc=%u " % self.tsc) - if self.ci is not None: - result += ("C/I=%d cB " % self.ci) + if self._ver >= 0x01: + if not self.c['nope']: + result += ("%s " % self.c['mod_type']) + result += ("set=%u " % self.c['tsc_set']) + result += ("tsc=%u " % self.c['tsc']) + result += ("C/I=%d cB " % self.c['cir']) else: result += "(IDLE / NOPE IND) " # Strip useless whitespace and return return result.strip() - def gen_mts(self): - ''' Encode Modulation and Training Sequence info. ''' - - # IDLE / nope indication has no MTS info - if self.nope_ind: - return self.NOPE_IND - - # TSC: . . . . . X X X - mts = self.tsc & 0b111 - - # MTS: . X X X X . . . - mts |= self.mod_type.coding << 3 - mts |= self.tsc_set << 3 - - return mts - - def parse_mts(self, mts): - ''' Parse Modulation and Training Sequence info. ''' - - # IDLE / nope indication has no MTS info - self.nope_ind = (mts & self.NOPE_IND) > 0 - if self.nope_ind: - self.mod_type = None - self.tsc_set = None - self.tsc = None - return - - # TSC: . . . . . X X X - self.tsc = mts & 0b111 - - # MTS: . X X X X . . . - mts = (mts >> 3) & 0b1111 - if (mts & 0b1100) > 0: - # Mask: . . . . M M M S - self.mod_type = Modulation.pick(mts & 0b1110) - self.tsc_set = mts & 0b1 - else: - # GMSK: . . . . 0 0 S S - self.mod_type = Modulation.ModGMSK - self.tsc_set = mts & 0b11 - - def gen_hdr(self): - ''' Generate message specific header part. ''' - - # Allocate an empty byte-array - buf = bytearray() - - # Put RSSI - buf.append(-self.rssi) - - # Encode ToA (Time of Arrival) - # Big endian, 2 bytes (int32_t) - buf += struct.pack(">h", self.toa256) - - if self.ver >= 0x01: - # Modulation and Training Sequence info - mts = self.gen_mts() - buf.append(mts) - - # C/I: Carrier-to-Interference ratio (in centiBels) - buf += struct.pack(">h", self.ci) - - return buf - - def parse_hdr(self, hdr): - ''' Parse message specific header part. ''' - - # Parse RSSI - self.rssi = -(hdr[5]) - - # Parse ToA (Time of Arrival) - self.toa256 = struct.unpack(">h", hdr[6:8])[0] - - if self.ver >= 0x01: - # Modulation and Training Sequence info - self.parse_mts(hdr[8]) - - # C/I: Carrier-to-Interference ratio (in centiBels) - self.ci = struct.unpack(">h", hdr[9:11])[0] - - def gen_burst(self): + def gen_burst(self) -> None: ''' Generate message specific burst. ''' # Convert soft-bits to unsigned soft-bits - burst_usbits = self.sbit2usbit(self.burst) + burst = self.sbit2usbit(self.c['burst']) + self.c['soft-bits'] = bytes(burst) - # Encode to bytes - return bytearray(burst_usbits) - - def _parse_burst_v0(self, burst): + def _parse_burst_v0(self, burst: List[int]) -> List[int]: ''' Parse message specific burst for header version 0. ''' bl = len(burst) # We need to guess modulation by the length of burst - self.mod_type = Modulation.pick_by_bl(bl) - if self.mod_type is None: + self.c['mod_type'] = Modulation.pick_by_bl(bl) + if self.c['mod_type'] is None: # Some old transceivers append two dummy bytes - self.mod_type = Modulation.pick_by_bl(bl - 2) + self.c['mod_type'] = Modulation.pick_by_bl(bl - 2) - if self.mod_type is None: + if self.c['mod_type'] is None: raise ValueError("Odd burst length %u" % bl) - return burst[:self.mod_type.bl] + return burst[:self.c['mod_type'].bl] - def parse_burst(self, burst): + def parse_burst(self) -> None: ''' Parse message specific burst. ''' - burst = list(burst) - - if self.ver == 0x00: + burst = list(self.c['soft-bits']) + if self._ver == 0: burst = self._parse_burst_v0(burst) # Convert unsigned soft-bits to soft-bits - self.burst = self.usbit2sbit(burst) + self.c['burst'] = self.usbit2sbit(burst) - def rand_burst(self, length = None): + def rand_burst(self, length = None) -> None: ''' Generate a random message specific burst. ''' if length is None: - length = self.mod_type.bl + length = self.c['mod_type'].bl - self.burst = [random.randint(-127, 127) for _ in range(length)] + self.c['burst'] = [random.randint(-127, 127) for _ in range(length)] - def trans(self, ver = None): - ''' Transform this message to TxMsg. ''' - - # Allocate a new message - msg = TxMsg(fn = self.fn, tn = self.tn, - ver = self.ver if ver is None else ver) - - # Convert burst bits - if self.burst is not None: - msg.burst = self.sbit2ubit(self.burst) - - return msg + def trans_burst(self) -> List[int]: + ''' Transform soft-bits into hard-bits. ''' + return self.sbit2ubit(self.c['burst']) diff --git a/src/target/trx_toolkit/fake_trx.py b/src/target/trx_toolkit/fake_trx.py index 573527b..3226a0e 100755 --- a/src/target/trx_toolkit/fake_trx.py +++ b/src/target/trx_toolkit/fake_trx.py @@ -188,9 +188,9 @@ if self.burst_drop_amount == 0: return False - if msg.fn % self.burst_drop_period == 0: + if msg.c['fn'] % self.burst_drop_period == 0: log.info("(%s) Simulation: dropping burst (fn=%u %% %u == 0)" - % (self, msg.fn, self.burst_drop_period)) + % (self, msg.c['fn'], self.burst_drop_period)) self.burst_drop_amount -= 1 return True @@ -198,64 +198,63 @@ def _handle_data_msg_v1(self, src_msg, msg): # C/I (Carrier-to-Interference ratio) - msg.ci = self.ci + msg.c['cir'] = self.ci # Pick modulation type by burst length - bl = len(src_msg.burst) - msg.mod_type = Modulation.pick_by_bl(bl) + bl = len(src_msg.c['burst']) + msg.c['mod_type'] = Modulation.pick_by_bl(bl) # Pick TSC (Training Sequence Code) and TSC set - if msg.mod_type is Modulation.ModGMSK: - ss = TrainingSeqGMSK.pick(src_msg.burst) - msg.tsc = ss.tsc if ss is not None else 0 - msg.tsc_set = ss.tsc_set if ss is not None else 0 + if msg.c['mod_type'] is Modulation.ModGMSK: + ss = TrainingSeqGMSK.pick(src_msg.c['burst']) + msg.c['tsc'] = ss.tsc if ss is not None else 0 + msg.c['tsc_set'] = ss.tsc_set if ss is not None else 0 else: # TODO: other modulation types (at least 8-PSK) - msg.tsc_set = 0 - msg.tsc = 0 + msg.c['tsc_set'] = 0 + msg.c['tsc'] = 0 # Takes (partially initialized) TRXD Rx message, # simulates RF path parameters (such as RSSI), # and sends towards the L1 def handle_data_msg(self, src_trx, src_msg, msg): if self.rf_muted: - msg.nope_ind = True - elif not msg.nope_ind: + msg.c['nope'] = True + elif not msg.c['nope']: # Path loss simulation - msg.nope_ind = self.sim_burst_drop(msg) - if msg.nope_ind: + msg.c['nope'] = self.sim_burst_drop(msg) + if msg.c['nope']: # Before TRXDv1, we simply drop the message - if msg.ver < 0x01: + if msg._ver < 1: del msg return # Since TRXDv1, we should send a NOPE.ind - del msg.burst # burst bits are omited - msg.burst = None + msg.c['burst'].clear() # burst bits are omited # TODO: shoud we make these values configurable? - msg.toa256 = self.TOA256_NOISE_DEFAULT - msg.rssi = self.RSSI_NOISE_DEFAULT - msg.ci = self.CI_NOISE_DEFAULT + msg.c['toa256'] = self.TOA256_NOISE_DEFAULT + msg.c['rssi'] = self.RSSI_NOISE_DEFAULT + msg.c['cir'] = self.CI_NOISE_DEFAULT self.data_if.send_msg(msg) return # Complete message header - msg.toa256 = self.toa256 + msg.c['toa256'] = self.toa256 # Apply RSSI based on transmitter: if not self.fake_rssi_enabled: - msg.rssi = src_trx.tx_power - src_msg.pwr - self.PATH_LOSS_DEFAULT + msg.c['rssi'] = src_trx.tx_power - src_msg.c['pwr'] - self.PATH_LOSS_DEFAULT else: # Apply fake RSSI - msg.rssi = self.rssi + msg.c['rssi'] = self.rssi # Version specific fields - if msg.ver >= 0x01: + if msg._ver >= 1: self._handle_data_msg_v1(src_msg, msg) # Apply optional Timing Advance if src_trx.ta != 0: - msg.toa256 -= src_trx.ta * 256 + msg.c['toa256'] -= src_trx.ta * 256 Transceiver.handle_data_msg(self, msg) diff --git a/src/target/trx_toolkit/test_data_dump.py b/src/target/trx_toolkit/test_data_dump.py index f7b4fde..2dad6b2 100644 --- a/src/target/trx_toolkit/test_data_dump.py +++ b/src/target/trx_toolkit/test_data_dump.py @@ -97,7 +97,7 @@ msg_ref = self._gen_rand_message(cls) self._ddf.append_msg(msg_ref) - msg = self._ddf.parse_msg(0) + msg = self._ddf.from_bytes(0) self._compare_msg(msg, msg_ref) # Store one Rx message in a file, read it back and compare @@ -120,7 +120,7 @@ self._compare_msg(msg_list[i], msg_list_ref[i]) # Verify random access to stored messages - def test_parse_msg_idx(self): + def test_from_bytes_idx(self): # Store a mixed list of random messages (19 + 19) msg_list_ref = self._gen_rand_message_mix(19) self._ddf.append_all(msg_list_ref) @@ -128,13 +128,13 @@ # Random access for _ in range(100): idx = random.randrange(len(msg_list_ref)) - msg = self._ddf.parse_msg(idx) + msg = self._ddf.from_bytes(idx) self._compare_msg(msg, msg_list_ref[idx]) def test_parse_empty(self): with self.assertLogs(level = 'ERROR'): for idx in range(100): - msg = self._ddf.parse_msg(idx) + msg = self._ddf.from_bytes(idx) self.assertEqual(msg, None) def test_parse_all_empty(self): @@ -148,7 +148,7 @@ self._tf.write(b'\xff' * 90) with self.assertLogs(level = 'ERROR'): - msg = self._ddf.parse_msg(0) + msg = self._ddf.from_bytes(0) self.assertEqual(msg, None) def test_parse_unknown_tag(self): @@ -158,7 +158,7 @@ self._tf.write(b'\xff' * 90) with self.assertLogs(level = 'ERROR'): - msg = self._ddf.parse_msg(0) + msg = self._ddf.from_bytes(0) self.assertEqual(msg, None) if __name__ == '__main__': diff --git a/src/target/trx_toolkit/test_data_msg.py b/src/target/trx_toolkit/test_data_msg.py index 24fda67..b703ed4 100644 --- a/src/target/trx_toolkit/test_data_msg.py +++ b/src/target/trx_toolkit/test_data_msg.py @@ -5,6 +5,7 @@ # Unit test for TRXD message codec # # (C) 2019 by Vadim Yanitskiy +# (C) 2021 by sysmocom - s.f.m.c. GmbH # # All Rights Reserved # @@ -23,171 +24,33 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import unittest +import logging from data_msg import Msg, TxMsg, RxMsg class Msg_Test(unittest.TestCase): # Compare message a with message b - def _compare_msg(self, a, b): + def _compare_msg(self, a: Msg, b: Msg) -> None: # Make sure we're comparing messages of the same type self.assertEqual(a.__class__, b.__class__) - # Compare common header fields - self.assertEqual(a.ver, b.ver) - self.assertEqual(a.fn, b.fn) - self.assertEqual(a.tn, b.tn) + # PDU version and fields + self.assertEqual(a._ver, b._ver) + for field in a.__class__.DEF_CONT: + self.assertEqual(a[field], b[field]) - # Burst bits (if present) - self.assertEqual(a.burst, b.burst) - - # TxMsg specific fields - if isinstance(a, TxMsg): - self.assertEqual(a.pwr, b.pwr) - - # RxMsg specific fields - if isinstance(a, RxMsg): - # Version independent fields - self.assertEqual(a.toa256, b.toa256) - self.assertEqual(a.rssi, b.rssi) - - # Version specific fields - if a.ver >= 1: - self.assertEqual(a.nope_ind, b.nope_ind) - self.assertEqual(a.mod_type, b.mod_type) - self.assertEqual(a.tsc_set, b.tsc_set) - self.assertEqual(a.tsc, b.tsc) - self.assertEqual(a.ci, b.ci) - - # Make sure that message validation throws a ValueError - def test_validate(self): - # Unknown version - with self.assertRaises(ValueError): - msg = RxMsg(fn = 0, tn = 0, ver = 100) - msg.validate() - - # Uninitialized field - with self.assertRaises(ValueError): - msg = RxMsg() - msg.validate() - with self.assertRaises(ValueError): - msg = RxMsg(fn = None, tn = 0) - msg.validate() - - # Out-of-range value(s) - with self.assertRaises(ValueError): - msg = RxMsg(fn = -1, tn = 0) - msg.validate() - with self.assertRaises(ValueError): - msg = RxMsg(fn = 0, tn = 10) - msg.validate() - - # Validate header and burst randomization - def test_rand_hdr_burst(self): - tx_msg = TxMsg() - rx_msg = RxMsg() - - for i in range(100): - tx_msg.rand_burst() - rx_msg.rand_burst() - tx_msg.rand_hdr() - rx_msg.rand_hdr() - - tx_msg.validate() - rx_msg.validate() - - def _test_enc_dec(self, msg, legacy = False, nope_ind = False): - # Prepare a given message (randomize) - msg.rand_hdr() - - # NOPE.ind contains no burst - if not nope_ind: - msg.rand_burst() - else: - msg.nope_ind = True - msg.mod_type = None - msg.tsc_set = None - msg.tsc = None - - # Encode a given message to bytes - msg_enc = msg.gen_msg(legacy) - - # Decode a new message from bytes - msg_dec = msg.__class__() - msg_dec.parse_msg(msg_enc) - - # Compare decoded vs the original - self._compare_msg(msg, msg_dec) - - # Validate encoding and decoding - def test_enc_dec(self): + def test_enc_dec_default(self): + ''' Encode/decode/match test for default field values. ''' for ver in Msg.KNOWN_VERSIONS: - with self.subTest("TxMsg", ver = ver): - msg = TxMsg(ver = ver) - self._test_enc_dec(msg) + with self.subTest('TxMsg(ver=%u)' % ver): + a, b = TxMsg(ver), TxMsg(ver) + b.from_bytes(a.to_bytes()) + self._compare_msg(a, b) - with self.subTest("RxMsg", ver = ver): - msg = RxMsg(ver = ver) - self._test_enc_dec(msg) - - if ver >= 1: - with self.subTest("RxMsg NOPE.ind", ver = ver): - msg = RxMsg(ver = ver) - self._test_enc_dec(msg, nope_ind = True) - - with self.subTest("RxMsg (legacy transceiver)"): - msg = RxMsg(ver = 0) - self._test_enc_dec(msg, legacy = True) - - # Validate bit conversations - def test_bit_conv(self): - usbits_ref = list(range(0, 256)) - sbits_ref = list(range(-127, 128)) - - # Test both usbit2sbit() and sbit2usbit() - sbits = Msg.usbit2sbit(usbits_ref) - usbits = Msg.sbit2usbit(sbits) - self.assertEqual(usbits[:255], usbits_ref[:255]) - self.assertEqual(usbits[255], 254) - - # Test both sbit2ubit() and ubit2sbit() - ubits = Msg.sbit2ubit(sbits_ref) - self.assertEqual(ubits, ([1] * 127 + [0] * 128)) - - sbits = Msg.ubit2sbit(ubits) - self.assertEqual(sbits, ([-127] * 127 + [127] * 128)) - - def _test_transform(self, msg): - # Prepare given messages - msg.rand_hdr() - msg.rand_burst() - - # Perform message transformation - if isinstance(msg, TxMsg): - msg_trans = msg.trans() - else: - msg_trans = msg.trans() - - self.assertEqual(msg_trans.ver, msg.ver) - self.assertEqual(msg_trans.fn, msg.fn) - self.assertEqual(msg_trans.tn, msg.tn) - - if isinstance(msg, RxMsg): - burst = Msg.sbit2ubit(msg.burst) - self.assertEqual(msg_trans.burst, burst) - else: - burst = Msg.ubit2sbit(msg.burst) - self.assertEqual(msg_trans.burst, burst) - - # Validate message transformation - def test_transform(self): - for ver in Msg.KNOWN_VERSIONS: - with self.subTest("TxMsg", ver = ver): - msg = TxMsg(ver = ver) - self._test_transform(msg) - - with self.subTest("RxMsg", ver = ver): - msg = RxMsg(ver = ver) - self._test_transform(msg) + with self.subTest('RxMsg(ver=%u)' % ver): + a, b = RxMsg(ver), RxMsg(ver) + b.from_bytes(a.to_bytes()) + self._compare_msg(a, b) if __name__ == '__main__': unittest.main() diff --git a/src/target/trx_toolkit/transceiver.py b/src/target/trx_toolkit/transceiver.py index d041070..54e6a6b 100644 --- a/src/target/trx_toolkit/transceiver.py +++ b/src/target/trx_toolkit/transceiver.py @@ -269,7 +269,7 @@ return None # Make sure that indicated timeslot is configured - if msg.tn not in self.ts_list: + if msg.c['tn'] not in self.ts_list: log.warning("(%s) RX TRXD message (%s), but timeslot is not " "configured => dropping..." % (self, msg.desc_hdr())) return None @@ -278,4 +278,4 @@ def handle_data_msg(self, msg): # TODO: make legacy mode configurable (via argv?) - self.data_if.send_msg(msg, legacy = True) + self.data_if.send_msg(msg) diff --git a/src/target/trx_toolkit/trx_sniff.py b/src/target/trx_toolkit/trx_sniff.py index 8b6f80c..389a663 100755 --- a/src/target/trx_toolkit/trx_sniff.py +++ b/src/target/trx_toolkit/trx_sniff.py @@ -108,7 +108,7 @@ # Attempt to parse the payload as a DATA message try: - msg.parse_msg(msg_raw) + msg.from_bytes(msg_raw) msg.validate() except ValueError as e: desc = msg.desc_hdr() @@ -160,7 +160,7 @@ # Message type specific filtering if isinstance(msg, RxMsg): # NOPE.ind filter - if not self.argv.pf_nope_ind and msg.nope_ind: + if not self.argv.pf_nope_ind and msg.c['nope']: return False # RSSI filter -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/24019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I21329419bff0b94a14b42b79fcdb460a662ad4bc Gerrit-Change-Number: 24019 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 Apr 30 20:34:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:34:11 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_msg.py: enable TRXDv2 protocol support References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/24020 ) Change subject: trx_toolkit/data_msg.py: enable TRXDv2 protocol support ...................................................................... trx_toolkit/data_msg.py: enable TRXDv2 protocol support Change-Id: Ib76138ec6523970fca43a4d69919c178f5a4b411 Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/data_msg.py 1 file changed, 11 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/20/24020/1 diff --git a/src/target/trx_toolkit/data_msg.py b/src/target/trx_toolkit/data_msg.py index 570cfa0..18f1757 100644 --- a/src/target/trx_toolkit/data_msg.py +++ b/src/target/trx_toolkit/data_msg.py @@ -69,7 +69,7 @@ # NOTE: up to 16 versions can be encoded CHDR_VERSION_MAX = 0b1111 - KNOWN_VERSIONS = (0, 1) + KNOWN_VERSIONS = (0, 1, 2) # PDU codecs for all known versions CODECS = NotImplemented # type: Tuple[codec.Envelope, ...] @@ -91,6 +91,8 @@ # Default TDMA frame/timeslot number 'fn' : 0, 'tn' : 0, + # TRA (RF channel) number + 'trxn' : 0, # NOPE / IDLE frame indication 'nope' : False, # Modulation type and TSC info @@ -99,6 +101,10 @@ 'tsc' : 0, # Burst hard-/soft-bits 'burst' : [], + # BATCHed PDU indication + 'batch' : False, + # BATCHed PDUs + 'bpdu' : [], # Default fields for particular class **self.DEF_CONT, # Fields provided during instantiation @@ -220,11 +226,14 @@ CODECS = ( trxd_proto.PDUv0Tx(), trxd_proto.PDUv1Tx(), + trxd_proto.PDUv2Tx(), ) DEF_CONT = { # Power reduction (in dB) 'pwr' : 0, + # Subchannel Power Imbalance Ratio (in dB) + 'scpir' : 0, } # Constants @@ -295,6 +304,7 @@ CODECS = ( trxd_proto.PDUv0Rx(), trxd_proto.PDUv1Rx(), + trxd_proto.PDUv2Rx(), ) DEF_CONT = { -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/24020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ib76138ec6523970fca43a4d69919c178f5a4b411 Gerrit-Change-Number: 24020 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 Apr 30 20:34:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:34:12 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/data_if.py: enrich encoding/decoding error messages References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/24021 ) Change subject: trx_toolkit/data_if.py: enrich encoding/decoding error messages ...................................................................... trx_toolkit/data_if.py: enrich encoding/decoding error messages The keyword 'exc_info' of the logging API allows us to see a lot more detailed information about the exception being caught, for example: ''' [ERROR] data_if.py:68 Failed to parse a TRXD Tx message from r=127.0.0.1:5802 Traceback (most recent call last): File "/home/fixeria/trx_toolkit/codec.py", line 329, in _from_bytes offset += f.from_bytes(vals, data[offset:]) File "/home/fixeria/trx_toolkit/codec.py", line 94, in from_bytes self._from_bytes(vals, data[:length]) File "/home/fixeria/trx_toolkit/codec.py", line 239, in _from_bytes f.dec_val(vals, blob) File "/home/fixeria/trx_toolkit/codec.py", line 287, in dec_val raise DecodeError('Unexpected value %d, expected %d' codec.DecodeError: Unexpected value 6, expected 2 The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/fixeria/trx_toolkit/data_if.py", line 66, in recv_tx_msg msg.from_bytes(data) File "/home/fixeria/trx_toolkit/data_msg.py", line 201, in from_bytes self.codec._from_bytes(self.c, msg) File "/home/fixeria/trx_toolkit/codec.py", line 332, in _from_bytes raise DecodeError(self, f, offset) from e codec.DecodeError: (, , 0) ''' >From this example it can be seen that the 'codec.DecodeError' exception has occured while parsing the 'Header' part of the 'PDUv2Tx' at offset 0, and caused by an unexpected TRXD PDU version value. Change-Id: Iec80890e52f7aa24c145356b5f2e1f66a47fbd4c Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/data_if.py 1 file changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/21/24021/1 diff --git a/src/target/trx_toolkit/data_if.py b/src/target/trx_toolkit/data_if.py index f754c6c..5e8fe6e 100644 --- a/src/target/trx_toolkit/data_if.py +++ b/src/target/trx_toolkit/data_if.py @@ -64,9 +64,9 @@ try: msg = TxMsg(self._hdr_ver) msg.from_bytes(data) - except: - log.error("Failed to parse a TRXD Tx message " - "from R:%s:%u" % (self.remote_addr, self.remote_port)) + except Exception as e: + log.error("Failed to parse a TRXD Tx message from r=%s:%u", + self.remote_addr, self.remote_port, exc_info=e) return None return msg @@ -79,9 +79,9 @@ try: msg = RxMsg(self._hdr_ver) msg.from_bytes(data) - except: - log.error("Failed to parse a TRXD Rx message " - "from R:%s:%u" % (self.remote_addr, self.remote_port)) + except Exception as e: + log.error("Failed to parse a TRXD Rx message from r=%s:%u", + self.remote_addr, self.remote_port, exc_info=e) return None return msg @@ -89,9 +89,9 @@ def send_msg(self, msg: RxMsg) -> None: try: payload = msg.to_bytes() - except ValueError as e: - log.error("Failed to encode a TRXD message ('%s') " - "due to error: %s" % (msg.desc_hdr(), e)) + except Exception as e: + log.error("Failed to encode a TRXD message ('%s')", + msg.desc_hdr(), exc_info=e) # TODO: we may want to send a NOPE.ind here return -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/24021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Iec80890e52f7aa24c145356b5f2e1f66a47fbd4c Gerrit-Change-Number: 24021 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 Apr 30 20:34:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 30 Apr 2021 20:34:12 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/trx_sniff.py: enrich decoding error messages References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/24022 ) Change subject: trx_toolkit/trx_sniff.py: enrich decoding error messages ...................................................................... trx_toolkit/trx_sniff.py: enrich decoding error messages This change is similar to Iec80890e52f7aa24c145356b5f2e1f66a47fbd4c. Change-Id: I625f5ae0ed9373cbece5f2201759ed0b51f0db68 Related: OS#4006, SYS#4895 --- M src/target/trx_toolkit/trx_sniff.py 1 file changed, 2 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/22/24022/1 diff --git a/src/target/trx_toolkit/trx_sniff.py b/src/target/trx_toolkit/trx_sniff.py index 389a663..1e8d17e 100755 --- a/src/target/trx_toolkit/trx_sniff.py +++ b/src/target/trx_toolkit/trx_sniff.py @@ -110,11 +110,8 @@ try: msg.from_bytes(msg_raw) msg.validate() - except ValueError as e: - desc = msg.desc_hdr() - if desc == "": - desc = "parsing error" - log.warning("Ignoring an incorrect message (%s): %s" % (desc, e)) + except Exception as e: + log.warning("Failed to parse a TRXD message", exc_info=e) self.cnt_burst_dropped_num += 1 return -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/24022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I625f5ae0ed9373cbece5f2201759ed0b51f0db68 Gerrit-Change-Number: 24022 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: